excelTool.min_wev8.js
2.9 MB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
var wijmo;(function(wijmo){(function(_spread){var $=jQuery,keyword_null=null;var Feature=(function(){function Feature(prop,getter,setter){this.prop=prop;this.getter=getter;this.setter=setter}Feature.parse=function(name){if(name!==undefined&&name!==keyword_null&&name.length>0){var parts=name.split('.');var func=keyword_null;do
{var prop=parts.shift();var curFunc=new Feature(prop,function(){var self=this;if(!self.base){return _spread.features[self.prop]}return self.base.getter()[self.prop]},function(value){var self=this;if(self.base){var container=self.base.getter();if(container===keyword_null||container===undefined){self.base.setter(container={})}container[self.prop]=value}else
{_spread.features[self.prop]=value}});if(func){curFunc.base=func}func=curFunc}while(parts.length>0);return func}return keyword_null};Feature.ensure=function(name){var desc=Feature.parse(name);if(desc){desc.setter(true)}};Feature.check=function(list){var passed=true;$.each(list,function(i,v){var desc=Feature.parse(v);if(desc){if(!desc.getter()){return(passed=false)}}return true});return passed};return Feature})();function feature(name,depends){Feature.ensure(name);if(depends&&depends.length>0){if(!Feature.check(depends)){var console=window.console;if(console&&console.error){console.error("["+name+"]: One or more dependency in ["+depends+"] are not found!")}}}}_spread.feature=feature;_spread.features=(function(features){if(features){return features}return{core:{migrate:false,mousewheel:false,stringResource:false,common:false,imageLoader:false,theme:false,globalize:false,spreadpanelex:false,basecelltype:false,sheet_model:false,sheet_action:false,sheet_event:false,sheet_border:false,sheet_render:false,sheet_ui:false,sheet:false,spread:false,spread_ui:false},calc:{common:false,functions:false,functions_db:false,functions_eng:false,functions_fin:false,functions_lookup:false,functions_stat:false},filter:false,filter_ui:false,sparkline:false,table:false,binding:false,group:false,celltype:false,conditionalFormat:false,dataValidator:false,fill:false,fill_ui:false,formatter:false,search:false,touch:false,floatingObject:false,comment:false,sparklineEx:false,formulatextbox:false,formulatextbox_resource:false,basedialog:false}})(_spread.features)})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){(function(migrate){spread.feature("core.migrate");(function(window,$){var version=$().jquery?$().jquery.split('.'):"";if((parseInt(version[0],10)>1)||(parseInt(version[0],10)===1&&parseInt(version[1],10)>=9)){$.event.handle=$.event.dispatch;var matched,browser;$.uaMatch=function(ua){ua=ua.toLowerCase();var match=/(chrome)[ \/]([\w.]+)/.exec(ua)||/(webkit)[ \/]([\w.]+)/.exec(ua)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua)||/(msie) ([\w.]+)/.exec(ua)||ua.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua)||[];return{browser:match[1]||"",version:match[2]||"0"}};if(!$.browser){matched=$.uaMatch(navigator.userAgent);browser={};if(matched.browser){browser[matched.browser]=true;browser.version=matched.version}if(browser.chrome){browser.webkit=true}else if(browser.webkit){browser.safari=true}$.browser=browser}var oldToggle=$.fn.toggle;$.fn.toggle=function(fn,fn2){if(!$.isFunction(fn)||!$.isFunction(fn2)){return oldToggle.apply(this,arguments)}var args=arguments,guid=fn.guid||$.guid++,i=0,toggler;toggler=function(event){var lastToggle=($._data(this,"lastToggle"+fn.guid)||0)%i;$._data(this,"lastToggle"+fn.guid,lastToggle+1);event.preventDefault();return args[lastToggle].apply(this,arguments)||false};toggler.guid=guid;while(i<args.length){args[i++].guid=guid}return this.click(toggler)};var oldSelf=$.fn.andSelf||$.fn.addBack;$.fn.andSelf=function(){return oldSelf.apply(this,arguments)}}var uaForIE=navigator.userAgent.toLowerCase();var isIE11=uaForIE.indexOf("compatible")<0&&(/(trident)(?:.*? rv ([\w.]+)|)/.exec(uaForIE)!==null);if(isIE11){if($.browser){$.browser.mozilla=undefined;$.browser["msie"]=true}}var metrotest=function(){var errorName=null;var supported=null;try
{new ActiveXObject("")}catch(e){errorName=e.name}try
{supported=!!new ActiveXObject("htmlfile")}catch(e){supported=false}if(errorName!='ReferenceError'&&supported==false){supported=false}else
{supported=true}return!supported};if($.browser.msie&&metrotest()){$.browser.metroMode=true}})(window,jQuery)})(spread.migrate||(spread.migrate={}));var migrate=spread.migrate})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){(function(_mousewheel){spread.feature("core.mousewheel",["core.migrate"]);var domMS='DOMMouseScroll',mousewheel='mousewheel',cundefined='undefined',on='on',types=[domMS,mousewheel];if(typeof jQuery.event.special.gcmousewheel===cundefined){(function($){function handler(event){var args=[].slice.call(arguments,1),delta=0,returnValue=true;event=$.event.fix(event||window.event);event.type="gc"+mousewheel;if((typeof event.wheelDelta===cundefined||event.wheelDelta===null)&&(typeof event.detail===cundefined||event.detail===null)){event.wheelDelta=event.originalEvent.wheelDelta;event.detail=event.originalEvent.detail}if(event.wheelDelta){delta=event.wheelDelta/120}if(event.detail){delta=-event.detail/3}args.unshift(event,delta);return $.event.handle.apply((event.target||event.srcElement),args)}$.event.special.gcmousewheel={setup:function(){if(this.addEventListener){for(var i=types.length;i;){var t=types[--i];if(t===mousewheel){this.addEventListener(domMS,handler,false)}this.addEventListener(t,handler,false)}}else
{this.attachEvent(on+mousewheel,handler)}},teardown:function(){if(this.removeEventListener){for(var i=types.length;i;){var t=types[--i];if(t===mousewheel){this.removeEventListener(domMS,handler,false)}this.removeEventListener(t,handler,false)}}else
{this.detachEvent(on+mousewheel,handler)}}};$.fn.extend({handlegcmousewheel:function(fn){return fn?this.bind(mousewheel,fn):this.trigger(mousewheel)},unhandlegcmousewheel:function(fn){return this.unbind(mousewheel,fn)}})}(jQuery))}})(spread.mousewheel||(spread.mousewheel={}));var mousewheel=spread.mousewheel})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("core.stringResource");var _ENStringResource=(function(){function _ENStringResource(){}_ENStringResource.getHelpFuncs=function(){var fbxResource=wijmo.spread.FormulaTextBoxResource_EN;if(fbxResource){return fbxResource.Functions}return null};_ENStringResource.Exp_InvalidArgument="Invalid argument";_ENStringResource.Exp_InvalidCast="InvalidCastException";_ENStringResource.Exp_NotSupport="NotSupportException";_ENStringResource.Exp_FormulaInvalid="The formula you typed contains an invalid char: ";_ENStringResource.Exp_InvalidTokenAt="invalid token at ";_ENStringResource.Exp_InvalidArrayAt="Invalid array at ";_ENStringResource.Exp_InvalidCellReference="Invalid cell reference or name at ";_ENStringResource.Exp_InvalidFunctionName="Invalid function name";_ENStringResource.Exp_InvalidOverrideFunction="Cannot override built-in function";_ENStringResource.Exp_OverrideNotAllowed="Attempt to override function while override is not allowed";_ENStringResource.Exp_NoSyntax="no syntax '";_ENStringResource.Exp_MatchSyntax="'to match the syntax '";_ENStringResource.SingleQuotesFullStop="'.";_ENStringResource.SingleQuote="'";_ENStringResource.Exp_IsValid="' is invalid.";_ENStringResource.Exp_InvalidArray="Invalid array";_ENStringResource.AtIndexOn="' at index on ";_ENStringResource.FullStop=".";_ENStringResource.SingleQuoteAt="' at ";_ENStringResource.Exp_InvalidParameters="Invalid function parameters at ";_ENStringResource.Exp_InvalidArrayColumns="The length of array columns are unequal at ";_ENStringResource.Exp_ExprIsNull="The argument 'expr' is null";_ENStringResource.Exp_RuleIsNull="The argument 'rule' is null";_ENStringResource.CopyCells="Copy Cells";_ENStringResource.FillSeries="Fill Series";_ENStringResource.FillFormattingOnly="Fill Formatting Only";_ENStringResource.FillWithoutFormatting="Fill Without Formatting";_ENStringResource.Exp_NumberOnly="Only works for Numbers";_ENStringResource.Exp_RangeContainsMergedCell="Range should not have merged cell.";_ENStringResource.Exp_ChangeMergedCell="Cannot change part of merged cell.";_ENStringResource.Exp_TargetContainsMergedCells="Target range should not have merged cells.";_ENStringResource.Exp_MergedCellsIdentical="This operation requires the merged cells to be identically sized.";_ENStringResource.SortAscending="Sort Ascending";_ENStringResource.SortDescending="Sort Descending";_ENStringResource.OK="OK";_ENStringResource.Cancel="Cancel";_ENStringResource.Search="Search";_ENStringResource.CheckAll="Check all";_ENStringResource.UncheckAll="Uncheck all";_ENStringResource.Blanks="(Blanks)";_ENStringResource.Exp_FilterItemIsNull="FilterItem is null.";_ENStringResource.Exp_InvalidColumnIndex="Invalid column index.";_ENStringResource.Exp_TokenIsNull="token is null";_ENStringResource.Exp_InvalidBackslash="the '\\' cannot be evaluated";_ENStringResource.Exp_FormatIllegal="format is illegal.";_ENStringResource.Exp_ValueIsNull="value is null";_ENStringResource.Exp_PartIsNull="part is null";_ENStringResource.Exp_DuplicatedDescriptor="The type of descriptor was added.";_ENStringResource.Exp_TokenIllegal="token is illegal.";_ENStringResource.Exp_ValueIllegal="value is illegal.";_ENStringResource.Exp_StringIllegal="string is illegal.";_ENStringResource.Exp_InvalidNull="InvalidNullException";_ENStringResource.Exp_InvalidOperation="InvalidOperationException";_ENStringResource.Exp_ArgumentNull="ArgumentNullException";_ENStringResource.Exp_CriteriaIsNull="criteria is null";_ENStringResource.Exp_InvalidString="Invalid string";_ENStringResource.Exp_InvalidDateFormat="Invalid date format pattern";_ENStringResource.Exp_InvalidOADate="invalid OADate";_ENStringResource.Exp_InvalidExponentFormat="invalid exponent format";_ENStringResource.Exp_InvalidSemicolons="invalid format: too many semicolons";_ENStringResource.Exp_InvalidNumberGroupSize="NumberGroupSize must be between 1 and 9.";_ENStringResource.Exp_BadFormatSpecifier="Bad Format Specifier";_ENStringResource.Exp_InvalidNumberFormat="Invalid number format pattern";_ENStringResource.Exp_InvalidIndex="Invalid index";_ENStringResource.Exp_InvalidCount="Invalid count";_ENStringResource.Exp_InvalidLevel="Invalid level";_ENStringResource.Exp_GroupInfoIsNull="groupInfo is null";_ENStringResource.Exp_SheetIsNull="sheet is null.";_ENStringResource.Exp_DestSheetIsNull="destSheet is null";_ENStringResource.Exp_PasteExtentIsNull="pasteExtent is null";_ENStringResource.Exp_InvalidPastedArea="The pasted area should have the same size as the copy or cut area.";_ENStringResource.Exp_ChangePartOfArray="Cannot change part of an array.";_ENStringResource.Exp_ColumnReadOnly="The column you are trying to change is protected and therefore read-only.";_ENStringResource.Exp_RowReadOnly="The row you are trying to change is protected and therefore read-only.";_ENStringResource.Exp_CellReadOnly="The row you are trying to change is protected and therefore read-only.";_ENStringResource.Exp_FillRangeContainsMergedCell="Cannot fill range that contains a merged cell.";_ENStringResource.Exp_FillCellsReadOnly="The cells you are trying to fill is protected and therefore read-only.";_ENStringResource.Exp_OverlappingSpans="This operation will cause overlapping spans.";_ENStringResource.Exp_InvalidAndSpace="Invalid ";_ENStringResource.ColonSpace=": ";_ENStringResource.MustBeBetween=" (must be between ";_ENStringResource.SpaceAndSpace=" and ";_ENStringResource.RightBracketFullStop=").";_ENStringResource.Exp_SrcIsNull="The argument 'src' is null";_ENStringResource.Exp_DestIsNull="The argument 'dest' is null";_ENStringResource.Exp_InvalidCustomFunction="invalid custom function";_ENStringResource.Exp_InvalidCustomName="invalid custom name";_ENStringResource.Exp_IndexOutOfRange="Index is out of range!";_ENStringResource.Exp_InvalidRange="Invalid range";_ENStringResource.Exp_RangeIsNull="range is null";_ENStringResource.Exp_NotAFunction="is not a function";_ENStringResource.Exp_Format='Format';_ENStringResource.Exp_BraceMismatch='format: brace mis-match';_ENStringResource.Exp_InvalidFormat='invalid format';_ENStringResource.Exp_ArgumentOutOfRange="ArgumentOutOfRange";_ENStringResource.Exp_DragDropShiftTableCell="This operation is not allowed. The operation is attempting to shift cells in a table on your worksheet.";_ENStringResource.Exp_DragDropChangePartOfTable="Cannot complete operation: You are attempting to change a portion of a table row or column in a way that is not allowed.";_ENStringResource.Exp_TableEmptyNameError="The table name cannot be empty.";_ENStringResource.Exp_TableInvalidRow="Invalid row index or row count.";_ENStringResource.Exp_TableInvalidColumn="Invalid column index or column count.";_ENStringResource.Exp_TableIntersectError="The tables cannot be intersected.";_ENStringResource.Exp_TableHasSameNameError="The current worksheet already exists in a table with the same name.";_ENStringResource.Exp_TableDataSourceNullError="Table datasource cannot be null.";_ENStringResource.Exp_TableStyleAddCustomStyleError="The style with the same name already exists in the styles.";_ENStringResource.Exp_TableMoveOutOfRange="The table cannot be moved out of the sheet.";_ENStringResource.Exp_TableResizeOutOfRange="The invalid row count, column count and table cannot be resize out of the sheet.";_ENStringResource.Exp_PasteSourceCellsLocked="Source sheet's cells are locked.";_ENStringResource.Exp_InvalidCopyPasteSize="The copy and paste areas are not the same size.";_ENStringResource.Exp_PasteDestinationCellsLocked="The cell you are trying to change is protected and therefore read-only.";_ENStringResource.Exp_PasteChangeMergeCell="Cannot change part of a merged cell.";_ENStringResource.Tip_Row="Row: ";_ENStringResource.Tip_Column="Column: ";_ENStringResource.Tip_Height="Height: ";_ENStringResource.Tip_Width="Width: ";_ENStringResource.Tip_pixels=" pixels";_ENStringResource.NewTab="New...";_ENStringResource.Exp_EmptyNamedStyle="The name of named style cannot be empty or null";_ENStringResource.Exp_FloatingObjectHasSameNameError="The current worksheet already has a floating object with the same name.";_ENStringResource.Exp_FloatingObjectNameEmptyError="Floating object must have name";_ENStringResource.ToolStrip_PasteText="Paste";_ENStringResource.ToolStrip_CutText="Cut";_ENStringResource.ToolStrip_CopyText="Copy";_ENStringResource.ToolStrip_AutoFillText="AutoFill";_ENStringResource.Exp_ArrayFromulaPart="You cannot change part of an array.";_ENStringResource.Exp_ArrayFromulaSpan="Array formulas are not valid in merged cells.";_ENStringResource.Exp_ArrayFormulaTable="multi-cell array formulas are not allowed in tables.";_ENStringResource.Fbx_Summary="Summary";return _ENStringResource})();spread._ENStringResource=_ENStringResource;var _JPStringResource=(function(){function _JPStringResource(){}_JPStringResource.getHelpFuncs=function(){var fbxResource=wijmo.spread.FormulaTextBoxResource_JP;if(fbxResource){return fbxResource.Functions}return null};_JPStringResource.Exp_InvalidArgument="\u7121\u52b9\u306a\u5f15\u6570";_JPStringResource.Exp_InvalidCast="\u4f8b\u5916:\u7121\u52b9\u306a\u30ad\u30e3\u30b9\u30c8";_JPStringResource.Exp_NotSupport="\u4f8b\u5916:\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u306a\u3044\u6a5f\u80fd\u306e\u5229\u7528\u3092\u8a66\u307f\u307e\u3057\u305f";_JPStringResource.Exp_FormulaInvalid="\u5165\u529b\u3055\u308c\u305f\u6570\u5f0f\u306f\u7121\u52b9\u306a\u6587\u5b57\u3092\u542b\u3093\u3067\u3044\u307e\u3059 : ";_JPStringResource.Exp_InvalidTokenAt="\u7121\u52b9\u306a\u30c8\u30fc\u30af\u30f3 : ";_JPStringResource.Exp_InvalidArrayAt="\u7121\u52b9\u306a\u914d\u5217 : ";_JPStringResource.Exp_InvalidCellReference="\u30bb\u30eb\u540d\u3082\u3057\u304f\u306f\u30bb\u30eb\u53c2\u7167\u304c\u7121\u52b9\u3067\u3059 : ";_JPStringResource.Exp_InvalidFunctionName="\u7121\u52b9\u306a\u95a2\u6570\u540d";_JPStringResource.Exp_InvalidOverrideFunction="\u7d44\u8fbc\u95a2\u6570\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093";_JPStringResource.Exp_OverrideNotAllowed="\u8a31\u53ef\u3055\u308c\u3066\u3044\u306a\u3044\u95a2\u6570\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u306e\u5b9f\u884c\u3067\u3059";_JPStringResource.Exp_NoSyntax="\u69cb\u6587 '";_JPStringResource.Exp_MatchSyntax="' \u306f\u6b21\u306e\u69cb\u6587 '";_JPStringResource.SingleQuotesFullStop="' \u3068\u30de\u30c3\u30c1\u3057\u307e\u305b\u3093\u3067\u3057\u305f\u3002";_JPStringResource.SingleQuote="'";_JPStringResource.Exp_IsValid="' \u306f\u7121\u52b9\u3067\u3059\u3002";_JPStringResource.Exp_InvalidArray="\u7121\u52b9\u306a\u914d\u5217 : ";_JPStringResource.AtIndexOn="' \u8a72\u5f53\u3059\u308b\u30a4\u30f3\u30c7\u30c3\u30af\u30b9 : ";_JPStringResource.FullStop="";_JPStringResource.SingleQuoteAt="' \u4f4d\u7f6e : ";_JPStringResource.Exp_InvalidParameters="\u7121\u52b9\u306a\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u691c\u51fa : ";_JPStringResource.Exp_InvalidArrayColumns="\u914d\u5217\u306e\u30ab\u30e9\u30e0\u9577\u304c\u4e00\u81f4\u3057\u307e\u305b\u3093 \u4f4d\u7f6e : ";_JPStringResource.Exp_ExprIsNull="\u5f15\u6570 'expr' \u304c null \u3067\u3059";_JPStringResource.Exp_RuleIsNull="\u5f15\u6570 'rule' \u304c null \u3067\u3059";_JPStringResource.CopyCells="\u30bb\u30eb\u306e\u30b3\u30d4\u30fc";_JPStringResource.FillSeries="\u9023\u7d50\u30c7\u30fc\u30bf";_JPStringResource.FillFormattingOnly="\u66f8\u5f0f\u306e\u307f\u30b3\u30d4\u30fc";_JPStringResource.FillWithoutFormatting="\u66f8\u5f0f\u306a\u3057\u30b3\u30d4\u30fc";_JPStringResource.Exp_NumberOnly="\u6570\u5b57\u306e\u307f\u6709\u52b9\u3067\u3059";_JPStringResource.Exp_RangeContainsMergedCell="\u7d50\u5408\u3055\u308c\u305f\u30bb\u30eb\u304c\u7bc4\u56f2\u306b\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002";_JPStringResource.Exp_ChangeMergedCell="\u7d50\u5408\u3055\u308c\u305f\u30bb\u30eb\u306e\u4e00\u90e8\u3092\u5909\u66f4\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002";_JPStringResource.Exp_TargetContainsMergedCells="\u7d50\u5408\u3055\u308c\u305f\u30bb\u30eb\u304c\u6307\u5b9a\u306e\u7bc4\u56f2\u306b\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002";_JPStringResource.Exp_MergedCellsIdentical="\u3053\u306e\u64cd\u4f5c\u306b\u306f\u540c\u3058\u30b5\u30a4\u30ba\u306e\u7d50\u5408\u30bb\u30eb\u304c\u5fc5\u8981\u3067\u3059\u3002";_JPStringResource.SortAscending="\u6607\u9806";_JPStringResource.SortDescending="\u964d\u9806";_JPStringResource.OK="OK";_JPStringResource.Cancel="\u30ad\u30e3\u30f3\u30bb\u30eb";_JPStringResource.Search="\u691c\u7d22";_JPStringResource.CheckAll="\u3059\u3079\u3066\u9078\u629e";_JPStringResource.UncheckAll="\u3059\u3079\u3066\u89e3\u9664";_JPStringResource.Blanks="(\u7a7a\u767d\u30bb\u30eb)";_JPStringResource.Exp_FilterItemIsNull="\u30d5\u30a3\u30eb\u30bf\u9805\u76ee\u304c null \u3067\u3059\u3002";_JPStringResource.Exp_InvalidColumnIndex="\u7121\u52b9\u306a\u5217\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3067\u3059\u3002";_JPStringResource.Exp_TokenIsNull="\u30c8\u30fc\u30af\u30f3\u304c null \u3067\u3059";_JPStringResource.Exp_InvalidBackslash="'\\' \u3092\u8a55\u4fa1\u3067\u304d\u307e\u305b\u3093\u3002";_JPStringResource.Exp_FormatIllegal="\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u304c\u4e0d\u6b63\u3067\u3059\u3002";_JPStringResource.Exp_ValueIsNull="\u5024\u306f null \u3067\u3059";_JPStringResource.Exp_PartIsNull="part \u306f null \u3067\u3059";_JPStringResource.Exp_DuplicatedDescriptor="\u305d\u306e\u7a2e\u985e\u306e\u8a18\u8ff0\u5b50\u306f\u65e2\u306b\u8ffd\u52a0\u3055\u308c\u3066\u3044\u307e\u3059\u3002";_JPStringResource.Exp_TokenIllegal="\u30c8\u30fc\u30af\u30f3\u304c\u4e0d\u6b63\u3067\u3059\u3002";_JPStringResource.Exp_ValueIllegal="\u5024\u304c\u4e0d\u6b63\u3067\u3059\u3002";_JPStringResource.Exp_StringIllegal="\u6587\u5b57\u5217\u304c\u4e0d\u6b63\u3067\u3059\u3002";_JPStringResource.Exp_InvalidNull="\u7121\u52b9\u306a null \u306b\u3088\u308b\u4f8b\u5916";_JPStringResource.Exp_InvalidOperation="\u7121\u52b9\u306a\u64cd\u4f5c\u306b\u3088\u308b\u4f8b\u5916";_JPStringResource.Exp_ArgumentNull="null \u5f15\u6570\u306b\u3088\u308b\u4f8b\u5916";_JPStringResource.Exp_CriteriaIsNull="\u6761\u4ef6\u3068\u306a\u308b\u5f15\u6570\u304c null \u3067\u3059";_JPStringResource.Exp_InvalidString="\u7121\u52b9\u306a\u6587\u5b57\u5217";_JPStringResource.Exp_InvalidDateFormat="\u7121\u52b9\u306a\u65e5\u4ed8\u30d5\u30a9\u30fc\u30de\u30c3\u30c8";_JPStringResource.Exp_InvalidOADate="\u7121\u52b9\u306a OADate";_JPStringResource.Exp_InvalidExponentFormat="\u7121\u52b9\u306a\u6307\u6570\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3067\u3059";_JPStringResource.Exp_InvalidSemicolons="\u7121\u52b9\u306a\u30d5\u30a9\u30fc\u30de\u30c3\u30c8: \u30bb\u30df\u30b3\u30ed\u30f3\u304c\u591a\u3059\u304e\u307e\u3059";_JPStringResource.Exp_InvalidNumberGroupSize="NumberGroupSize \u306f1\u304b\u30899\u306e\u5024\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002";_JPStringResource.Exp_BadFormatSpecifier="\u8aa4\u3063\u305f\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u6307\u793a\u5b50";_JPStringResource.Exp_InvalidNumberFormat="\u7121\u52b9\u306a\u6570\u5024\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306e\u30d1\u30bf\u30fc\u30f3\u3067\u3059";_JPStringResource.Exp_InvalidIndex="\u7121\u52b9\u306a\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3067\u3059";_JPStringResource.Exp_InvalidCount="\u7121\u52b9\u306a\u30ab\u30a6\u30f3\u30c8\u3067\u3059";_JPStringResource.Exp_InvalidLevel="\u7121\u52b9\u306a\u30ec\u30d9\u30eb\u3067\u3059";_JPStringResource.Exp_GroupInfoIsNull="groupInfo \u304c null \u3067\u3059";_JPStringResource.Exp_SheetIsNull="sheet \u304c null\u3067\u3059\u3002";_JPStringResource.Exp_DestSheetIsNull="destSheet \u304c null \u3067\u3059\u3002";_JPStringResource.Exp_PasteExtentIsNull="pasteExtent \u304c null \u3067\u3059";_JPStringResource.Exp_InvalidPastedArea="\u8cbc\u308a\u4ed8\u3051\u9818\u57df\u306f\u30b3\u30d4\u30fc/\u5207\u308a\u53d6\u308a\u7bc4\u56f2\u3068\u540c\u30b5\u30a4\u30ba\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002";_JPStringResource.Exp_ChangePartOfArray="\u914d\u5217\u306e\u4e00\u90e8\u3092\u5909\u66f4\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002";_JPStringResource.Exp_ColumnReadOnly="\u5909\u66f4\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u5217\u306f\u4fdd\u8b77\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001\u8aad\u307f\u53d6\u308a\u5c02\u7528\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002";_JPStringResource.Exp_RowReadOnly="\u5909\u66f4\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u884c\u306f\u4fdd\u8b77\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001\u8aad\u307f\u53d6\u308a\u5c02\u7528\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002";_JPStringResource.Exp_CellReadOnly="\u5909\u66f4\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u30bb\u30eb\u306f\u4fdd\u8b77\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001\u8aad\u307f\u53d6\u308a\u5c02\u7528\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002";_JPStringResource.Exp_FillRangeContainsMergedCell="\u7d50\u5408\u3057\u305f\u30bb\u30eb\u304c\u542b\u307e\u308c\u308b\u7bc4\u56f2\u3092\u30d5\u30a3\u30eb\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002";_JPStringResource.Exp_FillCellsReadOnly="\u30d5\u30a3\u30eb\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u7bc4\u56f2\u306f\u4fdd\u8b77\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001\u8aad\u307f\u53d6\u308a\u5c02\u7528\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002";_JPStringResource.Exp_OverlappingSpans="\u3053\u306e\u64cd\u4f5c\u306f\u7d50\u5408\u90e8\u5206\u306e\u91cd\u8907\u3092\u5f15\u304d\u8d77\u3053\u3057\u307e\u3059\u3002";_JPStringResource.Exp_InvalidAndSpace="\u7121\u52b9\u306a ";_JPStringResource.ColonSpace=" : ";_JPStringResource.MustBeBetween=" \u306f ";_JPStringResource.SpaceAndSpace=" \u304b\u3089 ";_JPStringResource.RightBracketFullStop=" \u306e\u9593\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002";_JPStringResource.Exp_SrcIsNull="\u5f15\u6570 'src' \u306f null \u3067\u3059";_JPStringResource.Exp_DestIsNull="\u5f15\u6570 'dest' \u306f null \u3067\u3059";_JPStringResource.Exp_InvalidCustomFunction="\u7121\u52b9\u306a\u30ab\u30b9\u30bf\u30e0\u95a2\u6570";_JPStringResource.Exp_InvalidCustomName="\u7121\u52b9\u306a\u540d\u524d";_JPStringResource.Exp_IndexOutOfRange="\u7bc4\u56f2\u5916\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3067\u3059!";_JPStringResource.Exp_InvalidRange="\u7121\u52b9\u306a\u7bc4\u56f2";_JPStringResource.Exp_RangeIsNull="\u7bc4\u56f2\u304c null \u3067\u3059";_JPStringResource.Exp_NotAFunction="\u306f\u95a2\u6570\u3067\u306f\u3042\u308a\u307e\u305b\u3093";_JPStringResource.Exp_Format='\u30d5\u30a9\u30fc\u30de\u30c3\u30c8';_JPStringResource.Exp_BraceMismatch='\u30d5\u30a9\u30fc\u30de\u30c3\u30c8: \u62ec\u5f27\u306e\u500b\u6570\u304c\u4e00\u81f4\u3057\u3066\u3044\u307e\u305b\u3093';_JPStringResource.Exp_InvalidFormat='\u7121\u52b9\u306a\u30d5\u30a9\u30fc\u30de\u30c3\u30c8';_JPStringResource.Exp_ArgumentOutOfRange="\u7bc4\u56f2\u5916\u306e\u5f15\u6570";_JPStringResource.Exp_DragDropShiftTableCell="\u3053\u306e\u64cd\u4f5c\u306f\u30ef\u30fc\u30af\u30b7\u30fc\u30c8\u4e0a\u306e\u30c6\u30fc\u30d6\u30eb\u5185\u3067\u30bb\u30eb\u3092\u30b7\u30d5\u30c8\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u305f\u3081\u8a31\u53ef\u3055\u308c\u307e\u305b\u3093\u3002";_JPStringResource.Exp_DragDropChangePartOfTable="\u64cd\u4f5c\u3092\u5b8c\u4e86\u3067\u304d\u307e\u305b\u3093\u3002\u8a31\u53ef\u3055\u308c\u3066\u3044\u306a\u3044\u65b9\u6cd5\u3067\u30c6\u30fc\u30d6\u30eb\u306e\u884c\u307e\u305f\u306f\u5217\u306e\u4e00\u90e8\u3092\u5909\u66f4\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u3002";_JPStringResource.Exp_TableEmptyNameError="\u30c6\u30fc\u30d6\u30eb\u540d\u3092\u7a7a\u306b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002";_JPStringResource.Exp_TableInvalidRow="\u7121\u52b9\u306a\u884c\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3082\u3057\u304f\u306f\u884c\u6570\u3067\u3059\u3002";_JPStringResource.Exp_TableInvalidColumn="\u7121\u52b9\u306a\u5217\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3082\u3057\u304f\u306f\u5217\u6570\u3067\u3059\u3002";_JPStringResource.Exp_TableIntersectError="\u30c6\u30fc\u30d6\u30eb\u3092\u91cd\u306d\u5408\u308f\u305b\u308b\u3053\u3068\u306f\u51fa\u6765\u307e\u305b\u3093\u3002";_JPStringResource.Exp_TableHasSameNameError="\u3059\u3067\u306b\u540c\u540d\u306e\u30ef\u30fc\u30af\u30b7\u30fc\u30c8\u304c\u5b58\u5728\u3057\u307e\u3059\u3002";_JPStringResource.Exp_TableDataSourceNullError="\u30c6\u30fc\u30d6\u30eb\u306e\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u3092 null \u306b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002";_JPStringResource.Exp_TableStyleAddCustomStyleError="\u3059\u3067\u306b\u540c\u540d\u306e\u30b9\u30bf\u30a4\u30eb\u540d\u304c\u5b58\u5728\u3057\u307e\u3059\u3002";_JPStringResource.Exp_TableMoveOutOfRange="\u30c6\u30fc\u30d6\u30eb\u3092\u30b7\u30fc\u30c8\u5916\u306b\u79fb\u52d5\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002";_JPStringResource.Exp_TableResizeOutOfRange="\u7121\u52b9\u306a\u884c\u6570\u3001\u5217\u6570\u3067\u3059\u3002\u30c6\u30fc\u30d6\u30eb\u3092\u30b7\u30fc\u30c8\u7bc4\u56f2\u5916\u306b\u30ea\u30b5\u30a4\u30ba\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002";_JPStringResource.Exp_PasteSourceCellsLocked="\u53c2\u7167\u5143\u3068\u306a\u3063\u3066\u3044\u308b\u30b7\u30fc\u30c8\u306e\u30bb\u30eb\u306f\u30ed\u30c3\u30af\u3055\u308c\u3066\u3044\u307e\u3059\u3002";_JPStringResource.Exp_InvalidCopyPasteSize="\u30b3\u30d4\u30fc\u3068\u8cbc\u308a\u4ed8\u3051\u306e\u7bc4\u56f2\u30b5\u30a4\u30ba\u304c\u7570\u306a\u3063\u3066\u3044\u307e\u3059\u3002";_JPStringResource.Exp_PasteDestinationCellsLocked="\u5909\u66f4\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u30bb\u30eb\u306f\u4fdd\u8b77\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001\u8aad\u307f\u53d6\u308a\u5c02\u7528\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002";_JPStringResource.Exp_PasteChangeMergeCell="\u7d50\u5408\u3057\u305f\u30bb\u30eb\u306e\u4e00\u90e8\u306f\u5909\u66f4\u3067\u304d\u307e\u305b\u3093\u3002";_JPStringResource.Tip_Row="\u884c: ";_JPStringResource.Tip_Column="\u5217: ";_JPStringResource.Tip_Height="\u9ad8\u3055: ";_JPStringResource.Tip_Width="\u5e45: ";_JPStringResource.Tip_pixels=" \u30d4\u30af\u30bb\u30eb";_JPStringResource.NewTab="New...";_JPStringResource.Exp_EmptyNamedStyle="\u540d\u524d\u4ed8\u304d\u30b9\u30bf\u30a4\u30eb\u306e\u540d\u79f0\u3092\u7a7a\u306b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002";_JPStringResource.Exp_FloatingObjectHasSameNameError="\u3059\u3067\u306b\u540c\u540d\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u540d\u304c\u5b58\u5728\u3057\u307e\u3059\u3002";_JPStringResource.Exp_FloatingObjectNameEmptyError="\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u540d\u3092\u7a7a\u306b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002";_JPStringResource.ToolStrip_PasteText="\u8cbc\u308a\u4ed8\u3051";_JPStringResource.ToolStrip_CutText="\u5207\u308a\u53d6\u308a";_JPStringResource.ToolStrip_CopyText="\u30b3\u30d4\u30fc";_JPStringResource.ToolStrip_AutoFillText="\u30aa\u30fc\u30c8\u30d5\u30a3\u30eb";_JPStringResource.Exp_ArrayFromulaPart="\u914d\u5217\u306e\u4e00\u90e8\u3092\u5909\u66f4\u3067\u304d\u307e\u305b\u3093\u3002";_JPStringResource.Exp_ArrayFromulaSpan="\u914d\u5217\u6570\u5f0f\u306f\u3001\u7d50\u5408\u3057\u305f\u30bb\u30eb\u3067\u306f\u7121\u52b9\u3067\u3059\u3002";_JPStringResource.Exp_ArrayFormulaTable="\u8907\u6570\u30bb\u30eb\u306e\u914d\u5217\u6570\u5f0f\u306f\u30c6\u30fc\u30d6\u30eb\u3067\u306f\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002";_JPStringResource.Fbx_Summary="\u6982\u8981";return _JPStringResource})();spread._JPStringResource=_JPStringResource;spread.SR=_ENStringResource})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("core.common",["core.migrate","core.stringResource"]);var $=jQuery,const_boolean="boolean",const_date="date",const_undefined="undefined",keyword_undefined=undefined,keyword_null=null,Math_abs=Math.abs,Math_floor=Math.floor,Math_min=Math.min,Math_max=Math.max;if(typeof $.wijmo===const_undefined){$.wijmo=wijmo}var util=(function(){function util(){}util.createEventHandler=function(element,method){return function(){return method.apply(element,arguments)}};util.cancelDefault=function(e){if(e.preventDefault){e.preventDefault();e.stopPropagation()}else
{e.cancelBubble=false;e.returnValue=false}return false};util._isStandardCanvas=function(){if(typeof util.canvasApiFound===const_undefined){util.canvasApiFound=(typeof document.createElement("canvas").getContext!==const_undefined)}return util.canvasApiFound};util._isSilverlightCanvas=function(){if(util._isStandardCanvas()){return true}if(typeof(util.slCanvasApiFound)===const_undefined){util.slCanvasApiFound=(typeof window.slcanvas!==const_undefined)}return util.slCanvasApiFound};util._useDoubleBuffer=function(){var _self=util;return _self._isStandardCanvas()||_self._isSilverlightCanvas()};util.getHAlignByValueType=function(hAlign,value){if(hAlign===3){var type=$.type(value);if(type==="boolean"){hAlign=1}else if(type==="number"||type==="date"){hAlign=2}else
{hAlign=0}}return hAlign};util.inArray=function(elem,arr,i){if(arr){if(Array.prototype.indexOf){return Array.prototype.indexOf.call(arr,elem,i)}var len=arr.length;i=i?i<0?Math_max(0,len+i):i:0;for(;i<len;i++){if(i in arr&&arr[i]===elem){return i}}}return-1};util.parseColorString=function(value){var rrggbbPattern=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i;var rgbPattern=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i;var rgbFunctionPattern=/^rgb\(([\s\d]*),([\s\d]*),([\s\d]*)\)$/i;var rgbaFunctionPattern=/^rgba\(([\s\d]*),([\s\d]*),([\s\d]*),([\s\d]*)\)$/i;var normalizeColorString=(function(useCanvas){var _dummyColorSpan,_canvasContext;return useCanvas?function(strColor1){if(!_canvasContext){var c=window.document.createElement('canvas');if(c&&c.getContext){_canvasContext=c.getContext('2d')}}if(!_canvasContext){return strColor1}_canvasContext.fillStyle=strColor1;strColor1=_canvasContext.fillStyle;return strColor1}:function(strColor2){if(typeof _dummyColorSpan===const_undefined){_dummyColorSpan=$("<span></span>")}_dummyColorSpan.css("color",strColor2);return _dummyColorSpan.css("color")}}(util._isStandardCanvas()));var hexToColorUnit=function(x){return parseInt(x,16)};var hex2ToColorUnit2=function(x){return parseInt(x+x,16)};var decOrPercentToColorUnit=function(x){return x.indexOf("%")>0?parseFloat(x)*2.55:x|0};var sColor=normalizeColorString(value);var re=RegExp;if(rrggbbPattern.test(sColor)){return[re.$1,re.$2,re.$3].map(hexToColorUnit)}else if(rgbaFunctionPattern.test(sColor)){var v=[re.$1,re.$2,re.$3].map(decOrPercentToColorUnit);v.splice(0,0,parseFloat(re.$4)*255);return v}else if(rgbFunctionPattern.test(sColor)){return[re.$1,re.$2,re.$3].map(decOrPercentToColorUnit)}else if(rgbPattern.test(sColor)){return[re.$1,re.$2,re.$3].map(hex2ToColorUnit2)}return keyword_null};util.position=function(target,options){if(!options||!options.offset){return util._position.call(target,options)}var offset=options.offset.split(" "),at=options.at.split(" ");if(offset.length===1){offset[1]=offset[0]}if(/^\d/.test(offset[0])){offset[0]="+"+offset[0]}if(/^\d/.test(offset[1])){offset[1]="+"+offset[1]}if(at.length===1){if(/left|center|right/.test(at[0])){at[1]="center"}else
{at[1]=at[0];at[0]="center"}}return util._position.call(target,$.extend(options,{at:at[0]+offset[0]+" "+at[1]+offset[1],offset:""}))};util.hasCalc=function(){return spread.features.calc&&spread.features.calc.common};util.toString=function(value){if(value===keyword_null||value===keyword_undefined){value=""}else if($.type(value)===const_boolean){value=value.toString().toUpperCase()}else if($.type(value)===const_date){if(value.getHours()===0&&value.getMinutes()===0&&value.getSeconds()===0&&value.getMilliseconds()===0){value=new spread._DateTimeHelper(value).format("M/d/yyyy")}else
{value=new spread._DateTimeHelper(value).format("M/d/yyyy h:mm:ss")}}else
{value=value.toString()}return value};util._applyBackgroundImageLayout=function(element,contentWidth,contentHeight,imgWidth,imgHeight,layout){var content=$(element),width=contentWidth,height=contentHeight,cssBackgroundPosition="background-position",cssBackgroundSize="background-size";switch(layout){case 0:content.css(cssBackgroundPosition,"0% 0%").css(cssBackgroundSize,"100% 100%");break;case 1:var posX="50%",posY="50%";if(imgWidth>width){posX="0%"}if(imgHeight>height){posY="0%"}content.css(cssBackgroundPosition,posX+" "+posY).css(cssBackgroundSize,"auto auto");break;case 2:var posX1=0,posY1=0,sizeW=width,sizeH=height;if(height>0&&imgHeight>0&&width/height>imgWidth/imgHeight){sizeW=imgWidth/imgHeight*height;posX1=posX1+width/2-sizeW/2}else if(width>0&&imgWidth>0&&height/width>imgHeight/imgWidth){sizeH=imgHeight/imgWidth*width;posY1=posY1+height/2-sizeH/2}content.css(cssBackgroundPosition,posX1+"px "+posY1+"px").css(cssBackgroundSize,sizeW+"px "+sizeH+"px");break;case 3:content.css(cssBackgroundPosition,"0% 0%").css(cssBackgroundSize,"auto auto");break;default:break}};util.device=function(){var ua=navigator.userAgent;var result=ua.match(/iPad/i),firstMatch,isIpad,isIphone;if(result){firstMatch=result[0];if(firstMatch){isIpad=firstMatch.toLowerCase()==="ipad"}}result=ua.match(/iPhone/i);if(result){firstMatch=result[0];if(firstMatch){isIphone=firstMatch.toLowerCase()==="iphone"}}return{ipad:isIpad,iphone:isIphone}};util.initPaint=function(id){var isStandardCanvas=util._isStandardCanvas();if(isStandardCanvas){return}var host=document.getElementById(id);var self=$(host).data('spread');if(!self){return}if(self._initPaintTimeout!==keyword_undefined&&self._initPaintTimeout!==keyword_null){window.clearTimeout(self._initPaintTimeout)}var control=self.canvas.firstChild;if(control&&control.loaded){var spreadsheetObject=control.Content.SpreadsheetObject;self.attachSpreadsheetObject(spreadsheetObject)}else
{self._initPaintTimeout=window.setTimeout(function(){util.initPaint(id)},10)}};util.isType=function(obj,type){if(obj===keyword_undefined||obj===keyword_null){return type==="null"}if(!type){return false}var _basetypes={undefined:'undefined',number:'number',boolean:'boolean',string:'string'};if(_basetypes[typeof obj]===type){return true}if(type==="function"&&/^\s*\bfunction\b/.test(""+obj)){return true}if(Object.prototype.toString.call(obj).slice(8,-1).toLowerCase()===type.toLowerCase()){return true}if(obj&&obj._classNames){for(var index=0;index<obj._classNames.length;index++){var classname=obj._classNames[index];if(classname===type){return true}}return false}else
{if(obj===keyword_undefined||obj===keyword_null){return false}if(type==="DateTime"||type==="TimeSpan"){return obj instanceof Date}}if(typeof type==="string"){if(_basetypes[type]){return false}}return obj instanceof type};util.asType=function(obj,typename){if(util.isType(obj,typename)){return obj}else
{return keyword_null}};util._position=$.fn.position;return util})();spread.util=util;var Global=(function(){function Global(){this._eventSuspended=0;if(typeof window.gcGlobal==const_undefined){this._init()}}Global.prototype._isIELessThan9=function($,documentMode){return $.browser.msie&&(typeof documentMode===const_undefined||documentMode<9)};Global.prototype._createDummyObjects=function(){var _globalPrototype=Global.prototype;if(!_globalPrototype._dummyContent){var createSpan=function(className){var t=document.createElement("span");t.className=className;t.style.display="none";document.body.insertBefore(t,keyword_null);return t};_globalPrototype._dummyHeader=createSpan("ui-widget-header ui-state-default wijmoThemeHelper");_globalPrototype._dummyContent=createSpan("ui-widget-content wijmoThemeHelper");_globalPrototype._dummyHover=createSpan("ui-state-hover wijmoThemeHelper");_globalPrototype._dummyHighlight=createSpan("ui-state-highlight wijmoThemeHelper")}};Global.prototype._init=function(){window.gcGlobal=this;this._eventSuspended=0;var _globalPrototype=Global.prototype;if(window.addEventListener){window.addEventListener('keydown',_globalPrototype.keyDown,true);window.addEventListener('keyup',_globalPrototype.keyUp,true);window.addEventListener('compositionstart',_globalPrototype.compositionStart,true);document.addEventListener('selectstart',_globalPrototype.docSelectStart,true)}$(document).mousedown(function(e){var ae=window.gcGlobal.activeElement;if(ae){var hitElement=_globalPrototype.getUIElement(e.target);var isAfbx=(hitElement&&hitElement.getAttribute("gcUIElement")==="gcAttachedFormulaTextBox");if(!hitElement&&ae._endEditImp&&!isAfbx){ae._endEditImp(false);ae.repaint()}if(!hitElement&&ae._disposeValidationUI){ae._disposeValidationUI()}if(!hitElement){window.gcGlobal.activeElement=keyword_null}}});$(document).ready(function(){Global.prototype._createDummyObjects()})};Global.prototype.keyDown=function(event){var gcGlobal=window.gcGlobal;if(gcGlobal._eventSuspended>0){return}var activeElement=gcGlobal.activeElement,validationSelect=activeElement&&activeElement._validationSelect;if(validationSelect){var $select=$(validationSelect);if($select.is(":visible")){return}}if(activeElement&&activeElement.doKeyDown){activeElement.doKeyDown(event);if(!activeElement.isEditing()){if((event.keyCode===90||event.keyCode===89)&&event.ctrlKey&&!event.altKey){util.cancelDefault(event)}}}};Global.prototype.keyUp=function(event){var gcGlobal=window.gcGlobal;if(gcGlobal._eventSuspended>0){return}var activeElement=gcGlobal.activeElement;if(activeElement&&activeElement.doKeyUp){activeElement.doKeyUp(event)}};Global.prototype.compositionStart=function(event){var gcGlobal=window.gcGlobal;if(gcGlobal._eventSuspended>0){return}var activeElement=gcGlobal.activeElement;if(activeElement&&activeElement.doCompositionStart){activeElement.doCompositionStart()}};Global.prototype.docSelectStart=function(event){if(document.all===keyword_undefined&&window.gcGlobal&&window.gcGlobal.activeElement){util.cancelDefault(event)}return false};Global.prototype.getUIElement=function(e){var w=e;while(w&&w.tagName!=="BODY"){if(typeof(w.getAttribute)!=="function"){break}var t=w.getAttribute("gcUIElement");if(!t){t=w.gcUIElement}if(t){return w}w=w.parentNode}return keyword_null};Global.prototype.getWijmoThemeStyle=function(visualState){var globalTemplate=Global.prototype;var t=globalTemplate._dummyHeader;if(visualState===1||visualState===2){t=globalTemplate._dummyHighlight}else if(visualState===4){t=globalTemplate._dummyHover}var ts=t.currentStyle;if(document.defaultView&&document.defaultView.getComputedStyle){ts=document.defaultView.getComputedStyle(t,'')}return ts};Global.prototype.suspendEvent=function(){var gcGlobal=window.gcGlobal;gcGlobal._eventSuspended++};Global.prototype.resumeEvent=function(){var gcGlobal=window.gcGlobal;gcGlobal._eventSuspended--;if(gcGlobal._eventSuspended<0){gcGlobal._eventSuspended=0}};return Global})();spread.Global=Global;window.gcGlobal=new Global;var array=Array;array.prototype.remove=function(item){for(var i=0;i<this.length;i++){if(this[i]===item){this.splice(i,1);return}}};array.prototype.contains=function(item){for(var i=0;i<this.length;i++){if(this[i]===item){return true}}return false};array.prototype.indexOf=function(item,index){if(index===keyword_undefined||index===keyword_null||isNaN(index)){index=0}for(var i=index;i<this.length;i++){if(this[i]===item){return i}}return-1};if(!array.prototype.map){array.prototype.map=function(callback,thisArg){var T,A,k;var O=window.Object(this);var len=O.length>>>0;if(typeof callback!=="function"){throw new TypeError(callback+spread.SR.Exp_NotAFunction);}if(thisArg){T=thisArg}A=new Array(len);k=0;while(k<len){var kValue,mappedValue;if(k in O){kValue=O[k];mappedValue=callback.call(T,kValue,k,O);A[k]=mappedValue}k++}return A}}(function(Key){Key[Key["left"]=37]="left";Key[Key["right"]=39]="right";Key[Key["up"]=38]="up";Key[Key["down"]=40]="down";Key[Key["tab"]=9]="tab";Key[Key["enter"]=13]="enter";Key[Key["shift"]=16]="shift";Key[Key["ctrl"]=17]="ctrl";Key[Key["space"]=32]="space";Key[Key["altkey"]=18]="altkey";Key[Key["home"]=36]="home";Key[Key["end"]=35]="end";Key[Key["pup"]=33]="pup";Key[Key["pdn"]=34]="pdn";Key[Key["backspace"]=8]="backspace";Key[Key["del"]=46]="del";Key[Key["esc"]=27]="esc";Key[Key["a"]=65]="a";Key[Key["c"]=67]="c";Key[Key["v"]=86]="v";Key[Key["x"]=88]="x";Key[Key["z"]=90]="z";Key[Key["y"]=89]="y"})(spread.Key||(spread.Key={}));var Key=spread.Key;var KeyMap=(function(){function KeyMap(key,ctrl,shift,alt,meta,action){var self=this;self.key=key;self.ctrl=ctrl;self.shift=shift;self.alt=alt;self.meta=action&&meta||false;self.action=action||meta}return KeyMap})();spread.KeyMap=KeyMap;var Point=(function(){function Point(x,y){this.x=x;this.y=y}Point.prototype.clone=function(){return new Point(this.x,this.y)};return Point})();spread.Point=Point;var Rect=(function(){function Rect(x,y,w,h){var self=this;self.x=x;self.y=y;self.width=w;self.height=h}Rect.prototype.intersect=function(x,y,width,height){var self=this;return((((x<(self.x+self.width))&&(self.x<(x+width)))&&(y<(self.y+self.height)))&&(self.y<(y+height)))};Rect.prototype.intersectRect=function(rect){var self=this;return((((rect.x<(self.x+self.width))&&(self.x<(rect.x+rect.width)))&&(rect.y<(self.y+self.height)))&&(self.y<(rect.y+rect.height)))};Rect.prototype.contains=function(x,y){var self=this;return((((x<(self.x+self.width))&&(self.x<x))&&(y<(self.y+self.height)))&&(self.y<y))};Rect.prototype.containsRect=function(rect){var self=this;return((self.x<rect.x)&&(rect.x+rect.width<self.x+self.width)&&(self.y<rect.y)&&(rect.y+rect.height<self.y+self.height))};Rect.prototype.getIntersectRect=function(rect){return this.getIntersect(rect.x,rect.y,rect.width,rect.height)};Rect.prototype.getIntersect=function(x,y,width,height){var self=this,x1_s=self.x,y1_s=self.y,x1_e=self.x+self.width,y1_e=self.y+self.height,x2_s=x,y2_s=y,x2_e=x+width,y2_e=y+height,intersectX_s=Math_max(x1_s,x2_s),intersectY_s=Math_max(y1_s,y2_s),intersectX_e=Math_min(x1_e,x2_e),intersectY_e=Math_min(y1_e,y2_e),newX=intersectX_s,newY=intersectY_s,newWidth=intersectX_e-intersectX_s,newHeight=intersectY_e-intersectY_s;if(newWidth>0&&newHeight>0){return new Rect(newX,newY,newWidth,newHeight)}return keyword_null};Rect.empty=function(){return new Rect(0,0,0,0)};return Rect})();spread.Rect=Rect;var Range=(function(){function Range(r,c,rc,cc){var self=this;self.row=r;self.rowCount=rc;self.col=c;self.colCount=cc}Range.prototype.intersect=function(row,col,rowCount,colCount){var self=this;return(row===-1||self.row===-1||(self.row<row+rowCount&&row<self.row+self.rowCount))&&(col===-1||self.col===-1||(self.col<col+colCount&&col<self.col+self.colCount))};Range.prototype.getIntersect=function(range,maxRowCount,maxColumnCount){if(range==keyword_null){return keyword_null}var self=this;if(!self.intersect(range.row,range.col,range.rowCount,range.colCount)){return keyword_null}var num1=(self.col==-1)?maxColumnCount:(self.col+self.colCount-1);var num2=(range.col==-1)?maxColumnCount:(range.col+range.colCount-1);var num3=(self.row==-1)?maxRowCount:(self.row+self.rowCount-1);var num4=(range.row==-1)?maxRowCount:(range.row+range.rowCount-1);var column=Math_max(self.col,range.col);var num6=Math_min(num1,num2);var row=Math_max(self.row,range.row);var num8=Math_min(num3,num4);var rowCount=(row==-1?-1:num8-row+1);var columnCount=(column==-1?-1:num6-column+1);return new Range(row,column,rowCount,columnCount)};Range.prototype.contains=function(row,col,rowCount,colCount){var self=this;if(arguments.length===2){return(self.row===-1||(self.row<=row&&row<self.row+self.rowCount))&&(self.col===-1||(self.col<=col&&col<self.col+self.colCount))}else if(arguments.length===4){return self.containsRange(new Range(row,col,rowCount,colCount))}return false};Range.prototype.containsRange=function(range){var self=this;return(self.row===-1||(self.row<=range.row&&range.row+range.rowCount<=self.row+self.rowCount))&&(self.col===-1||(self.col<=range.col&&range.col+range.colCount<=self.col+self.colCount))};Range.prototype.offset=function(x,y){var self=this;var column=self.col;var row=self.row;if(self.col!==-1){column+=x}if(self.row!==-1){row+=y}return new Range(row,column,self.rowCount,self.colCount)};Range.prototype.union=function(range){var self=this;var ltr=Math_min(self.row,range.row);var ltc=Math_min(self.col,range.col);var rbr=Math_max(self.row+self.rowCount-1,range.row+range.rowCount-1);var rbc=Math_max(self.col+self.colCount-1,range.col+range.colCount-1);return new Range(ltr,ltc,rbr-ltr+1,rbc-ltc+1)};Range.prototype.equals=function(range){var self=this;if(range instanceof Range){return(self.row===range.row&&self.col===range.col&&self.rowCount===range.rowCount&&self.colCount===range.colCount)}return false};return Range})();spread.Range=Range;(function(Direction){Direction[Direction["up"]=1]="up";Direction[Direction["down"]=2]="down";Direction[Direction["left"]=3]="left";Direction[Direction["right"]=4]="right"})(spread.Direction||(spread.Direction={}));var Direction=spread.Direction;(function(HorizontalAlign){HorizontalAlign[HorizontalAlign["left"]=0]="left";HorizontalAlign[HorizontalAlign["center"]=1]="center";HorizontalAlign[HorizontalAlign["right"]=2]="right";HorizontalAlign[HorizontalAlign["general"]=3]="general"})(spread.HorizontalAlign||(spread.HorizontalAlign={}));var HorizontalAlign=spread.HorizontalAlign;(function(VerticalAlign){VerticalAlign[VerticalAlign["top"]=0]="top";VerticalAlign[VerticalAlign["center"]=1]="center";VerticalAlign[VerticalAlign["bottom"]=2]="bottom"})(spread.VerticalAlign||(spread.VerticalAlign={}));var VerticalAlign=spread.VerticalAlign;(function(HorizontalPosition){HorizontalPosition[HorizontalPosition["left"]=0]="left";HorizontalPosition[HorizontalPosition["center"]=1]="center";HorizontalPosition[HorizontalPosition["right"]=2]="right";HorizontalPosition[HorizontalPosition["nearest"]=3]="nearest"})(spread.HorizontalPosition||(spread.HorizontalPosition={}));var HorizontalPosition=spread.HorizontalPosition;(function(VerticalPosition){VerticalPosition[VerticalPosition["top"]=0]="top";VerticalPosition[VerticalPosition["center"]=1]="center";VerticalPosition[VerticalPosition["bottom"]=2]="bottom";VerticalPosition[VerticalPosition["nearest"]=3]="nearest"})(spread.VerticalPosition||(spread.VerticalPosition={}));var VerticalPosition=spread.VerticalPosition;(function(HeaderAutoText){HeaderAutoText[HeaderAutoText["blank"]=0]="blank";HeaderAutoText[HeaderAutoText["numbers"]=1]="numbers";HeaderAutoText[HeaderAutoText["letters"]=2]="letters"})(spread.HeaderAutoText||(spread.HeaderAutoText={}));var HeaderAutoText=spread.HeaderAutoText;(function(ClipboardPasteOptions){ClipboardPasteOptions[ClipboardPasteOptions["All"]=0]="All";ClipboardPasteOptions[ClipboardPasteOptions["Values"]=1]="Values";ClipboardPasteOptions[ClipboardPasteOptions["Formatting"]=2]="Formatting";ClipboardPasteOptions[ClipboardPasteOptions["Formulas"]=3]="Formulas"})(spread.ClipboardPasteOptions||(spread.ClipboardPasteOptions={}));var ClipboardPasteOptions=spread.ClipboardPasteOptions;(function(TextFileOpenFlags){TextFileOpenFlags[TextFileOpenFlags["None"]=0]="None";TextFileOpenFlags[TextFileOpenFlags["IncludeRowHeader"]=1]="IncludeRowHeader";TextFileOpenFlags[TextFileOpenFlags["IncludeColumnHeader"]=2]="IncludeColumnHeader";TextFileOpenFlags[TextFileOpenFlags["UnFormatted"]=8]="UnFormatted";TextFileOpenFlags[TextFileOpenFlags["ImportFormula"]=16]="ImportFormula"})(spread.TextFileOpenFlags||(spread.TextFileOpenFlags={}));var TextFileOpenFlags=spread.TextFileOpenFlags;(function(VisualState){VisualState[VisualState["Normal"]=0]="Normal";VisualState[VisualState["Highlight"]=1]="Highlight";VisualState[VisualState["Selected"]=2]="Selected";VisualState[VisualState["Active"]=3]="Active";VisualState[VisualState["Hover"]=4]="Hover"})(spread.VisualState||(spread.VisualState={}));var VisualState=spread.VisualState;(function(ReferenceStyle){ReferenceStyle[ReferenceStyle["A1"]=0]="A1";ReferenceStyle[ReferenceStyle["R1C1"]=1]="R1C1"})(spread.ReferenceStyle||(spread.ReferenceStyle={}));var ReferenceStyle=spread.ReferenceStyle;(function(LineStyle){LineStyle[LineStyle["empty"]=0]="empty";LineStyle[LineStyle["thin"]=1]="thin";LineStyle[LineStyle["medium"]=2]="medium";LineStyle[LineStyle["dashed"]=3]="dashed";LineStyle[LineStyle["dotted"]=4]="dotted";LineStyle[LineStyle["thick"]=5]="thick";LineStyle[LineStyle["double"]=6]="double";LineStyle[LineStyle["hair"]=7]="hair";LineStyle[LineStyle["mediumDashed"]=8]="mediumDashed";LineStyle[LineStyle["dashDot"]=9]="dashDot";LineStyle[LineStyle["mediumDashDot"]=10]="mediumDashDot";LineStyle[LineStyle["dashDotDot"]=11]="dashDotDot";LineStyle[LineStyle["mediumDashDotDot"]=12]="mediumDashDotDot";LineStyle[LineStyle["slantedDashDot"]=13]="slantedDashDot"})(spread.LineStyle||(spread.LineStyle={}));var LineStyle=spread.LineStyle;(function(SheetArea){SheetArea[SheetArea["corner"]=0]="corner";SheetArea[SheetArea["colHeader"]=1]="colHeader";SheetArea[SheetArea["rowHeader"]=2]="rowHeader";SheetArea[SheetArea["viewport"]=3]="viewport"})(spread.SheetArea||(spread.SheetArea={}));var SheetArea=spread.SheetArea;(function(CopyToOption){CopyToOption[CopyToOption["Value"]=0x01]="Value";CopyToOption[CopyToOption["Formula"]=0x02]="Formula";CopyToOption[CopyToOption["Comment"]=0x04]="Comment";CopyToOption[CopyToOption["RangeGroup"]=0x08]="RangeGroup";CopyToOption[CopyToOption["Sparkline"]=0x10]="Sparkline";CopyToOption[CopyToOption["Span"]=0x20]="Span";CopyToOption[CopyToOption["Style"]=0x40]="Style";CopyToOption[CopyToOption["Tag"]=0x80]="Tag";CopyToOption[CopyToOption["BindingPath"]=0x100]="BindingPath";CopyToOption[CopyToOption["ConditionalFormat"]=0x200]="ConditionalFormat";CopyToOption[CopyToOption["All"]=0x3ff]="All"})(spread.CopyToOption||(spread.CopyToOption={}));var CopyToOption=spread.CopyToOption;(function(SelectionPolicy){SelectionPolicy[SelectionPolicy["Single"]=0]="Single";SelectionPolicy[SelectionPolicy["Range"]=1]="Range";SelectionPolicy[SelectionPolicy["MultiRange"]=2]="MultiRange"})(spread.SelectionPolicy||(spread.SelectionPolicy={}));var SelectionPolicy=spread.SelectionPolicy;(function(SelectionUnit){SelectionUnit[SelectionUnit["Cell"]=0]="Cell";SelectionUnit[SelectionUnit["Row"]=1]="Row";SelectionUnit[SelectionUnit["Column"]=2]="Column"})(spread.SelectionUnit||(spread.SelectionUnit={}));var SelectionUnit=spread.SelectionUnit;(function(AutoFillType){AutoFillType[AutoFillType["CopyCells"]=0]="CopyCells";AutoFillType[AutoFillType["FillSeries"]=1]="FillSeries";AutoFillType[AutoFillType["FillFormattingOnly"]=2]="FillFormattingOnly";AutoFillType[AutoFillType["FillWithoutFormatting"]=3]="FillWithoutFormatting";AutoFillType[AutoFillType["ClearValues"]=4]="ClearValues"})(spread.AutoFillType||(spread.AutoFillType={}));var AutoFillType=spread.AutoFillType;(function(FillDirection){FillDirection[FillDirection["Left"]=0]="Left";FillDirection[FillDirection["Right"]=1]="Right";FillDirection[FillDirection["Up"]=2]="Up";FillDirection[FillDirection["Down"]=3]="Down"})(spread.FillDirection||(spread.FillDirection={}));var FillDirection=spread.FillDirection;(function(FillSeries){FillSeries[FillSeries["Column"]=0]="Column";FillSeries[FillSeries["Row"]=1]="Row"})(spread.FillSeries||(spread.FillSeries={}));var FillSeries=spread.FillSeries;(function(StorageType){StorageType[StorageType["Data"]=0x01]="Data";StorageType[StorageType["Style"]=0x02]="Style";StorageType[StorageType["Comment"]=0x04]="Comment";StorageType[StorageType["Sparkline"]=0x10]="Sparkline";StorageType[StorageType["Axis"]=0x20]="Axis";StorageType[StorageType["BindingPath"]=0x40]="BindingPath"})(spread.StorageType||(spread.StorageType={}));var StorageType=spread.StorageType;(function(DragFillDirection){DragFillDirection[DragFillDirection["Left"]=0]="Left";DragFillDirection[DragFillDirection["Right"]=1]="Right";DragFillDirection[DragFillDirection["Up"]=2]="Up";DragFillDirection[DragFillDirection["Down"]=3]="Down";DragFillDirection[DragFillDirection["LeftClear"]=4]="LeftClear";DragFillDirection[DragFillDirection["UpClear"]=5]="UpClear"})(spread.DragFillDirection||(spread.DragFillDirection={}));var DragFillDirection=spread.DragFillDirection;(function(EditorStatus){EditorStatus[EditorStatus["Ready"]=0]="Ready";EditorStatus[EditorStatus["Enter"]=1]="Enter";EditorStatus[EditorStatus["Edit"]=2]="Edit"})(spread.EditorStatus||(spread.EditorStatus={}));var EditorStatus=spread.EditorStatus;(function(CriteriaType){CriteriaType[CriteriaType["AnyValue"]=0]="AnyValue";CriteriaType[CriteriaType["WholeNumber"]=0x1]="WholeNumber";CriteriaType[CriteriaType["DecimalValues"]=0x2]="DecimalValues";CriteriaType[CriteriaType["List"]=0x3]="List";CriteriaType[CriteriaType["Date"]=0x4]="Date";CriteriaType[CriteriaType["Time"]=0x5]="Time";CriteriaType[CriteriaType["TextLength"]=0x6]="TextLength";CriteriaType[CriteriaType["Custom"]=0x7]="Custom"})(spread.CriteriaType||(spread.CriteriaType={}));var CriteriaType=spread.CriteriaType;(function(DataValidationResult){DataValidationResult[DataValidationResult["ForceApply"]=0]="ForceApply";DataValidationResult[DataValidationResult["Discard"]=1]="Discard";DataValidationResult[DataValidationResult["Retry"]=2]="Retry"})(spread.DataValidationResult||(spread.DataValidationResult={}));var DataValidationResult=spread.DataValidationResult;(function(ErrorStyle){ErrorStyle[ErrorStyle["Stop"]=0]="Stop";ErrorStyle[ErrorStyle["Warning"]=1]="Warning";ErrorStyle[ErrorStyle["Information"]=2]="Information"})(spread.ErrorStyle||(spread.ErrorStyle={}));var ErrorStyle=spread.ErrorStyle;(function(GeneralCompareType){GeneralCompareType[GeneralCompareType["EqualsTo"]=0]="EqualsTo";GeneralCompareType[GeneralCompareType["NotEqualsTo"]=1]="NotEqualsTo";GeneralCompareType[GeneralCompareType["GreaterThan"]=2]="GreaterThan";GeneralCompareType[GeneralCompareType["GreaterThanOrEqualsTo"]=3]="GreaterThanOrEqualsTo";GeneralCompareType[GeneralCompareType["LessThan"]=4]="LessThan";GeneralCompareType[GeneralCompareType["LessThanOrEqualsTo"]=5]="LessThanOrEqualsTo"})(spread.GeneralCompareType||(spread.GeneralCompareType={}));var GeneralCompareType=spread.GeneralCompareType;(function(RelationCompareType){RelationCompareType[RelationCompareType["Or"]=0]="Or";RelationCompareType[RelationCompareType["And"]=1]="And"})(spread.RelationCompareType||(spread.RelationCompareType={}));var RelationCompareType=spread.RelationCompareType;(function(ComparisonOperator){ComparisonOperator[ComparisonOperator["EqualsTo"]=0]="EqualsTo";ComparisonOperator[ComparisonOperator["NotEqualsTo"]=1]="NotEqualsTo";ComparisonOperator[ComparisonOperator["GreaterThan"]=2]="GreaterThan";ComparisonOperator[ComparisonOperator["GreaterThanOrEqualsTo"]=3]="GreaterThanOrEqualsTo";ComparisonOperator[ComparisonOperator["LessThan"]=4]="LessThan";ComparisonOperator[ComparisonOperator["LessThanOrEqualsTo"]=5]="LessThanOrEqualsTo";ComparisonOperator[ComparisonOperator["Between"]=6]="Between";ComparisonOperator[ComparisonOperator["NotBetween"]=7]="NotBetween"})(spread.ComparisonOperator||(spread.ComparisonOperator={}));var ComparisonOperator=spread.ComparisonOperator;(function(TextComparisonOperator){TextComparisonOperator[TextComparisonOperator["Contains"]=0]="Contains";TextComparisonOperator[TextComparisonOperator["DoesNotContain"]=1]="DoesNotContain";TextComparisonOperator[TextComparisonOperator["BeginsWith"]=2]="BeginsWith";TextComparisonOperator[TextComparisonOperator["EndsWith"]=3]="EndsWith"})(spread.TextComparisonOperator||(spread.TextComparisonOperator={}));var TextComparisonOperator=spread.TextComparisonOperator;(function(TextCompareType){TextCompareType[TextCompareType["EqualsTo"]=0]="EqualsTo";TextCompareType[TextCompareType["NotEqualsTo"]=1]="NotEqualsTo";TextCompareType[TextCompareType["BeginsWith"]=2]="BeginsWith";TextCompareType[TextCompareType["DoesNotBeginWith"]=3]="DoesNotBeginWith";TextCompareType[TextCompareType["EndsWith"]=4]="EndsWith";TextCompareType[TextCompareType["DoesNotEndWith"]=5]="DoesNotEndWith";TextCompareType[TextCompareType["Contains"]=6]="Contains";TextCompareType[TextCompareType["DoesNotContain"]=7]="DoesNotContain"})(spread.TextCompareType||(spread.TextCompareType={}));var TextCompareType=spread.TextCompareType;(function(ColorCompareType){ColorCompareType[ColorCompareType["BackgroundColor"]=0]="BackgroundColor";ColorCompareType[ColorCompareType["ForegroundColor"]=1]="ForegroundColor"})(spread.ColorCompareType||(spread.ColorCompareType={}));var ColorCompareType=spread.ColorCompareType;(function(CustomValueType){CustomValueType[CustomValueType["Empty"]=0]="Empty";CustomValueType[CustomValueType["NonEmpty"]=1]="NonEmpty";CustomValueType[CustomValueType["Error"]=2]="Error";CustomValueType[CustomValueType["NonError"]=3]="NonError";CustomValueType[CustomValueType["Formula"]=4]="Formula"})(spread.CustomValueType||(spread.CustomValueType={}));var CustomValueType=spread.CustomValueType;(function(DateCompareType){DateCompareType[DateCompareType["EqualsTo"]=0]="EqualsTo";DateCompareType[DateCompareType["NotEqualsTo"]=1]="NotEqualsTo";DateCompareType[DateCompareType["Before"]=2]="Before";DateCompareType[DateCompareType["BeforeEqualsTo"]=3]="BeforeEqualsTo";DateCompareType[DateCompareType["After"]=4]="After";DateCompareType[DateCompareType["AfterEqualsTo"]=5]="AfterEqualsTo"})(spread.DateCompareType||(spread.DateCompareType={}));var DateCompareType=spread.DateCompareType;(function(Top10ConditionType){Top10ConditionType[Top10ConditionType["Top"]=0]="Top";Top10ConditionType[Top10ConditionType["Bottom"]=1]="Bottom"})(spread.Top10ConditionType||(spread.Top10ConditionType={}));var Top10ConditionType=spread.Top10ConditionType;(function(DateOccurringType){DateOccurringType[DateOccurringType["Today"]=0]="Today";DateOccurringType[DateOccurringType["Yesterday"]=1]="Yesterday";DateOccurringType[DateOccurringType["Tomorrow"]=2]="Tomorrow";DateOccurringType[DateOccurringType["Last7Days"]=3]="Last7Days";DateOccurringType[DateOccurringType["ThisMonth"]=4]="ThisMonth";DateOccurringType[DateOccurringType["LastMonth"]=5]="LastMonth";DateOccurringType[DateOccurringType["NextMonth"]=6]="NextMonth";DateOccurringType[DateOccurringType["ThisWeek"]=7]="ThisWeek";DateOccurringType[DateOccurringType["LastWeek"]=8]="LastWeek";DateOccurringType[DateOccurringType["NextWeek"]=9]="NextWeek"})(spread.DateOccurringType||(spread.DateOccurringType={}));var DateOccurringType=spread.DateOccurringType;(function(QuarterType){QuarterType[QuarterType["Quarter1"]=0]="Quarter1";QuarterType[QuarterType["Quarter2"]=1]="Quarter2";QuarterType[QuarterType["Quarter3"]=2]="Quarter3";QuarterType[QuarterType["Quarter4"]=3]="Quarter4"})(spread.QuarterType||(spread.QuarterType={}));var QuarterType=spread.QuarterType;(function(SortState){SortState[SortState["None"]=0]="None";SortState[SortState["Ascending"]=1]="Ascending";SortState[SortState["Descending"]=2]="Descending"})(spread.SortState||(spread.SortState={}));var SortState=spread.SortState;(function(AverageConditionType){AverageConditionType[AverageConditionType["Above"]=0]="Above";AverageConditionType[AverageConditionType["Below"]=1]="Below";AverageConditionType[AverageConditionType["EqualOrAbove"]=2]="EqualOrAbove";AverageConditionType[AverageConditionType["EqualOrBelow"]=3]="EqualOrBelow";AverageConditionType[AverageConditionType["Above1StdDev"]=4]="Above1StdDev";AverageConditionType[AverageConditionType["Below1StdDev"]=5]="Below1StdDev";AverageConditionType[AverageConditionType["Above2StdDev"]=6]="Above2StdDev";AverageConditionType[AverageConditionType["Below2StdDev"]=7]="Below2StdDev";AverageConditionType[AverageConditionType["Above3StdDev"]=8]="Above3StdDev";AverageConditionType[AverageConditionType["Below3StdDev"]=9]="Below3StdDev"})(spread.AverageConditionType||(spread.AverageConditionType={}));var AverageConditionType=spread.AverageConditionType;(function(ScaleValueType){ScaleValueType[ScaleValueType["Number"]=0]="Number";ScaleValueType[ScaleValueType["LowestValue"]=1]="LowestValue";ScaleValueType[ScaleValueType["HighestValue"]=2]="HighestValue";ScaleValueType[ScaleValueType["Percent"]=3]="Percent";ScaleValueType[ScaleValueType["Percentile"]=4]="Percentile";ScaleValueType[ScaleValueType["Automin"]=5]="Automin";ScaleValueType[ScaleValueType["Formula"]=6]="Formula";ScaleValueType[ScaleValueType["Automax"]=7]="Automax"})(spread.ScaleValueType||(spread.ScaleValueType={}));var ScaleValueType=spread.ScaleValueType;(function(BarDirection){BarDirection[BarDirection["LeftToRight"]=0]="LeftToRight";BarDirection[BarDirection["RightToLeft"]=1]="RightToLeft"})(spread.BarDirection||(spread.BarDirection={}));var BarDirection=spread.BarDirection;(function(DataBarAxisPosition){DataBarAxisPosition[DataBarAxisPosition["Automatic"]=0]="Automatic";DataBarAxisPosition[DataBarAxisPosition["CellMidPoint"]=1]="CellMidPoint";DataBarAxisPosition[DataBarAxisPosition["None"]=2]="None"})(spread.DataBarAxisPosition||(spread.DataBarAxisPosition={}));var DataBarAxisPosition=spread.DataBarAxisPosition;(function(IconSetType){IconSetType[IconSetType["ThreeArrowsColored"]=0x00]="ThreeArrowsColored";IconSetType[IconSetType["ThreeArrowsGray"]=0x01]="ThreeArrowsGray";IconSetType[IconSetType["ThreeTriangles"]=0x02]="ThreeTriangles";IconSetType[IconSetType["ThreeStars"]=0x03]="ThreeStars";IconSetType[IconSetType["ThreeFlags"]=0x04]="ThreeFlags";IconSetType[IconSetType["ThreeTrafficLightsUnrimmed"]=0x05]="ThreeTrafficLightsUnrimmed";IconSetType[IconSetType["ThreeTrafficLightsRimmed"]=0x06]="ThreeTrafficLightsRimmed";IconSetType[IconSetType["ThreeSigns"]=0x07]="ThreeSigns";IconSetType[IconSetType["ThreeSymbolsCircled"]=0x08]="ThreeSymbolsCircled";IconSetType[IconSetType["ThreeSymbolsUncircled"]=0x09]="ThreeSymbolsUncircled";IconSetType[IconSetType["FourArrowsColored"]=0x0A]="FourArrowsColored";IconSetType[IconSetType["FourArrowsGray"]=0x0B]="FourArrowsGray";IconSetType[IconSetType["FourRedToBlack"]=0x0C]="FourRedToBlack";IconSetType[IconSetType["FourRatings"]=0x0D]="FourRatings";IconSetType[IconSetType["FourTrafficLights"]=0x0E]="FourTrafficLights";IconSetType[IconSetType["FiveArrowsColored"]=0x0F]="FiveArrowsColored";IconSetType[IconSetType["FiveArrowsGray"]=0x10]="FiveArrowsGray";IconSetType[IconSetType["FiveRatings"]=0x11]="FiveRatings";IconSetType[IconSetType["FiveQuarters"]=0x12]="FiveQuarters";IconSetType[IconSetType["FiveBoxes"]=0x13]="FiveBoxes"})(spread.IconSetType||(spread.IconSetType={}));var IconSetType=spread.IconSetType;(function(IconValueType){IconValueType[IconValueType["Number"]=1]="Number";IconValueType[IconValueType["Percent"]=4]="Percent";IconValueType[IconValueType["Formula"]=7]="Formula";IconValueType[IconValueType["Percentile"]=5]="Percentile"})(spread.IconValueType||(spread.IconValueType={}));var IconValueType=spread.IconValueType;(function(RangeGroupDirection){RangeGroupDirection[RangeGroupDirection["Backward"]=0]="Backward";RangeGroupDirection[RangeGroupDirection["Forward"]=1]="Forward"})(spread.RangeGroupDirection||(spread.RangeGroupDirection={}));var RangeGroupDirection=spread.RangeGroupDirection;(function(ShowResizeTip){ShowResizeTip[ShowResizeTip["None"]=0]="None";ShowResizeTip[ShowResizeTip["Column"]=1]="Column";ShowResizeTip[ShowResizeTip["Row"]=2]="Row";ShowResizeTip[ShowResizeTip["Both"]=3]="Both"})(spread.ShowResizeTip||(spread.ShowResizeTip={}));var ShowResizeTip=spread.ShowResizeTip;(function(ShowScrollTip){ShowScrollTip[ShowScrollTip["None"]=0]="None";ShowScrollTip[ShowScrollTip["Horizontal"]=1]="Horizontal";ShowScrollTip[ShowScrollTip["Vertical"]=2]="Vertical";ShowScrollTip[ShowScrollTip["Both"]=3]="Both"})(spread.ShowScrollTip||(spread.ShowScrollTip={}));var ShowScrollTip=spread.ShowScrollTip;(function(AutoFitType){AutoFitType[AutoFitType["Cell"]=0]="Cell";AutoFitType[AutoFitType["CellWithHeader"]=1]="CellWithHeader"})(spread.AutoFitType||(spread.AutoFitType={}));var AutoFitType=spread.AutoFitType;(function(ImageLayout){ImageLayout[ImageLayout["Stretch"]=0]="Stretch";ImageLayout[ImageLayout["Center"]=1]="Center";ImageLayout[ImageLayout["Zoom"]=2]="Zoom";ImageLayout[ImageLayout["None"]=3]="None"})(spread.ImageLayout||(spread.ImageLayout={}));var ImageLayout=spread.ImageLayout;(function(InvalidOperationType){InvalidOperationType[InvalidOperationType["SetFormula"]=0]="SetFormula";InvalidOperationType[InvalidOperationType["CopyPaste"]=1]="CopyPaste";InvalidOperationType[InvalidOperationType["DragFill"]=2]="DragFill";InvalidOperationType[InvalidOperationType["DragDrop"]=3]="DragDrop";InvalidOperationType[InvalidOperationType["ChangePartOfArrayFormula"]=4]="ChangePartOfArrayFormula"})(spread.InvalidOperationType||(spread.InvalidOperationType={}));var InvalidOperationType=spread.InvalidOperationType;(function(StringComparison){StringComparison[StringComparison["CurrentCulture"]=0]="CurrentCulture";StringComparison[StringComparison["CurrentCultureIgnoreCase"]=1]="CurrentCultureIgnoreCase";StringComparison[StringComparison["InvariantCulture"]=2]="InvariantCulture";StringComparison[StringComparison["InvariantCultureIgnoreCase"]=3]="InvariantCultureIgnoreCase";StringComparison[StringComparison["Ordinal"]=4]="Ordinal";StringComparison[StringComparison["OrdinalIgnoreCase"]=5]="OrdinalIgnoreCase"})(spread.StringComparison||(spread.StringComparison={}));var StringComparison=spread.StringComparison;(function(TextDecorationType){TextDecorationType[TextDecorationType["Underline"]=0x01]="Underline";TextDecorationType[TextDecorationType["LineThrough"]=0x02]="LineThrough";TextDecorationType[TextDecorationType["Overline"]=0x04]="Overline";TextDecorationType[TextDecorationType["None"]=0x00]="None"})(spread.TextDecorationType||(spread.TextDecorationType={}));var TextDecorationType=spread.TextDecorationType;(function(ImeMode){ImeMode[ImeMode["Auto"]=0x01]="Auto";ImeMode[ImeMode["Active"]=0x02]="Active";ImeMode[ImeMode["Inactive"]=0x04]="Inactive";ImeMode[ImeMode["Disabled"]=0x00]="Disabled"})(spread.ImeMode||(spread.ImeMode={}));var ImeMode=spread.ImeMode;(function(CommentState){CommentState[CommentState["Active"]=1]="Active";CommentState[CommentState["Edit"]=2]="Edit";CommentState[CommentState["Normal"]=3]="Normal"})(spread.CommentState||(spread.CommentState={}));var CommentState=spread.CommentState;var LineBorder=(function(){function LineBorder(color,style){this.color=color||"black";this.style=style||0}LineBorder.prototype.width=function(border){var lineStyle=LineStyle;if(border&&border.style){switch(border.style){case 9:case 1:case 3:case 4:case 7:case 11:return 1;case 2:case 10:case 12:case 8:case 13:return 2;case 5:case 6:return 3}}return 0};LineBorder.prototype._weight=function(border){var lineStyle=LineStyle;if(border&&border.style){switch(border.style){case 9:case 3:case 4:case 11:case 7:return 100;case 1:return 101;case 13:case 8:case 10:case 12:return 198;case 2:return 199;case 5:return 300;case 6:return 90;case 0:return 0}}return-2};LineBorder.prototype.toJSON=function(){var jsData={};if(this.color!=="black"){jsData["color"]=this.color}if(this.style!==0){jsData["style"]=this.style}if($.isEmptyObject(jsData)){return keyword_undefined}return jsData};LineBorder.prototype.fromJSON=function(jsData){if(!jsData){return}if(jsData.color!==keyword_undefined){this.color=jsData.color}if(jsData.style!==keyword_undefined){this.style=jsData.style}};return LineBorder})();spread.LineBorder=LineBorder;var _fontProps=(function(){var dict={};dict['font-style']=function(value,domElement){if(value){$(domElement).css("fontStyle",value)}};dict['font-variant']=function(value,domElement){if(value){$(domElement).css("fontVariant",value)}};dict['font-weight']=function(value,domElement){if(value){$(domElement).css("fontWeight",value)}};dict['font-size']=function(value,domElement){if(value){$(domElement).css("fontSize",value)}};dict['line-height']=function(value,domElement){if(value){$(domElement).css("lineHeight",value)}};dict['font-family']=function(value,domElement){if(value){$(domElement).css("fontFamily",value)}};return dict}());function buildFontString(cssStyle){if($.browser.safari){return cssStyle.font}var f="";var normal="normal";var defaultFontWeight="400";if(cssStyle.fontStyle!==normal){f=cssStyle.fontStyle}if(cssStyle.fontVariant!==normal){f+=" "+cssStyle.fontVariant}if(cssStyle.fontWeight!==normal&&cssStyle.fontWeight!==defaultFontWeight){f+=" "+cssStyle.fontWeight}f+=" "+cssStyle.fontSize;if(cssStyle.lineHeight!==normal){f+="/"+cssStyle.lineHeight}f+=" "+cssStyle.fontFamily;return f}function beginBulidFont(sheet){var span=document.createElement("span");$(span).css("visibility","hidden").css("top","-10000px").css("left","-10000px").css("position","absolute").attr("className","gcFontDetectSpanStyle").attr("gcUIElement","gcFontDetectSpan");document.body.insertBefore(span,keyword_null);return{span:span,dispose:function(){document.body.removeChild(span);delete this.span}}}var FontFactory=(function(){function FontFactory(sheet){this._sheet=sheet}FontFactory.prototype.buildFont=function(opt,font){var f='';if(opt){var res=beginBulidFont(this._sheet);try
{if(font){$(res.span).css("font",font)}$.each(_fontProps,function(k,fn){fn(opt.hasOwnProperty(k)?opt[k]:keyword_null,res.span)})}finally
{var fs=res.span.currentStyle;if(document.defaultView&&document.defaultView.getComputedStyle){fs=document.defaultView.getComputedStyle(res.span,'')}f=buildFontString(fs);res.dispose()}}return f};return FontFactory})();spread.FontFactory=FontFactory;var Style=(function(){function Style(backColor,foreColor,hAlign,vAlign,font,themeFont,formatter,borderLeft,borderTop,borderRight,borderBottom,locked,textIndent,wordWrap,shrinkToFit,backgroundImage,cellType,backgroundImageLayout,tabStop,textDecoration,imeMode){if(arguments.length===0){return}var self=this;self.backgroundImage=backgroundImage;self.backgroundImageLayout=backgroundImageLayout;self.backColor=backColor;self.foreColor=foreColor;self.hAlign=hAlign;self.vAlign=vAlign;self.font=font;self.themeFont=themeFont;self.formatter=formatter;self.borderLeft=borderLeft;self.borderTop=borderTop;self.borderRight=borderRight;self.borderBottom=borderBottom;self.locked=locked;self.textIndent=textIndent;self.wordWrap=wordWrap;self.shrinkToFit=shrinkToFit;self.validator=keyword_undefined;self.cellType=cellType;self.tabStop=tabStop;self.textDecoration=textDecoration;self.imeMode=imeMode}Style.prototype._initDefault=function(){var self=this;self.backgroundImage=keyword_undefined;self.backgroundImageLayout=keyword_undefined;self.backColor=keyword_undefined;self.foreColor=keyword_undefined;self.hAlign=keyword_undefined;self.vAlign=keyword_undefined;self.font=keyword_undefined;self.themeFont=keyword_undefined;self.formatter=keyword_undefined;self.validator=keyword_undefined;self.borderLeft=keyword_undefined;self.borderTop=keyword_undefined;self.borderRight=keyword_undefined;self.borderBottom=keyword_undefined;self.locked=keyword_undefined;self.textIndent=keyword_undefined;self.wordWrap=keyword_undefined;self.shrinkToFit=keyword_undefined;self.cellType=keyword_undefined;self.name=keyword_undefined;self.parentName=keyword_undefined;self.tabStop=keyword_undefined;self.textDecoration=keyword_undefined;self.imeMode=keyword_undefined};Style.prototype.copyFrom=function(style){var self=this;self.backgroundImage=style.backgroundImage;self.backgroundImageLayout=style.backgroundImageLayout;self.backColor=style.backColor;self.foreColor=style.foreColor;self.hAlign=style.hAlign;self.vAlign=style.vAlign;self.font=style.font;self.themeFont=style.themeFont;self.formatter=style.formatter;self._autoFormatter=style._autoFormatter;self.validator=style.validator;self.locked=style.locked;self.textIndent=style.textIndent;self.wordWrap=style.wordWrap;self.shrinkToFit=style.shrinkToFit;self.cellType=style.cellType;self.name=style.name;self.parentName=style.parentName;self.tabStop=style.tabStop;self.textDecoration=style.textDecoration;self.imeMode=style.imeMode;if(style.borderLeft!==undefined){var left=new LineBorder;left.fromJSON(style.borderLeft);self.borderLeft=left}if(style.borderRight!==undefined){var right=new LineBorder;right.fromJSON(style.borderRight);self.borderRight=right}if(style.borderTop!==undefined){var top=new LineBorder;top.fromJSON(style.borderTop);self.borderTop=top}if(style.borderBottom!==undefined){var bottom=new LineBorder;bottom.fromJSON(style.borderBottom);self.borderBottom=bottom}};Style.prototype._cloneLineBorder=function(border){if(border&&(border instanceof LineBorder)){return new LineBorder(border.color,border.style)}return border};Style.prototype.compose=function(style,force){var self=this,cloneLineBorder=self._cloneLineBorder;if(force){self._autoFormatter=style._autoFormatter;self.backgroundImage=style.backgroundImage;self.backgroundImageLayout=style.backgroundImageLayout;self.backColor=style.backColor;self.foreColor=style.foreColor;self.hAlign=style.hAlign;self.vAlign=style.vAlign;self.font=style.font;self.themeFont=style.themeFont;self.formatter=style.formatter;var borderLeft=style.borderLeft;var _cloneLeft;var _cloneTop;var _cloneRight;var _colneBottm;if(cloneLineBorder){_cloneLeft=cloneLineBorder(borderLeft);_cloneTop=cloneLineBorder(borderTop);_cloneRight=cloneLineBorder(borderRight);_colneBottm=cloneLineBorder(borderBottom);}self.borderLeft=((borderLeft&&_cloneLeft)||borderLeft);var borderTop=style.borderTop;self.borderTop=((borderTop&&_cloneTop)||borderTop);var borderRight=style.borderRight;self.borderRight=((borderRight&&_cloneRight)||borderRight);var borderBottom=style.borderBottom;self.borderBottom=((borderBottom&&_colneBottm)||borderBottom);self.locked=style.locked;self.textIndent=style.textIndent;self.wordWrap=style.wordWrap;self.shrinkToFit=style.shrinkToFit;self.validator=style.validator;self.cellType=style.cellType;self.name=style.name;self.parentName=style.parentName;self.tabStop=style.tabStop;self.textDecoration=style.textDecoration;self.imeMode=style.imeMode}else
{if(self.backgroundImage===keyword_undefined){self.backgroundImage=style.backgroundImage}if(self.backgroundImageLayout===keyword_undefined){self.backgroundImageLayout=style.backgroundImageLayout}if(self.backColor===keyword_undefined){self.backColor=style.backColor}if(self.foreColor===keyword_undefined){self.foreColor=style.foreColor}if(self.hAlign===keyword_undefined){self.hAlign=style.hAlign}if(self.vAlign===keyword_undefined){self.vAlign=style.vAlign}if(self.font===keyword_undefined){self.font=style.font}if(self.themeFont===keyword_undefined){self.themeFont=style.themeFont}if(self.formatter===keyword_undefined){self.formatter=style.formatter}if(self.validator===keyword_undefined){self.validator=style.validator}if(self._autoFormatter===keyword_undefined){self._autoFormatter=style._autoFormatter}if(self.borderLeft===keyword_undefined){var borderLeft=style.borderLeft;self.borderLeft=((borderLeft&&cloneLineBorder(borderLeft))||borderLeft)}if(self.borderTop===keyword_undefined){var borderTop=style.borderTop;self.borderTop=((borderTop&&cloneLineBorder(borderTop))||borderTop)}if(self.borderRight===keyword_undefined){var borderRight=style.borderRight;self.borderRight=((borderRight&&cloneLineBorder(borderRight))||borderRight)}if(self.borderBottom===keyword_undefined){var borderBottom=style.borderBottom;self.borderBottom=((borderBottom&&cloneLineBorder(borderBottom))||borderBottom)}if(self.locked===keyword_undefined){self.locked=style.locked}if(self.textIndent===keyword_undefined){self.textIndent=style.textIndent}if(self.wordWrap===keyword_undefined){self.wordWrap=style.wordWrap}if(self.shrinkToFit===keyword_undefined){self.shrinkToFit=style.shrinkToFit}if(self.cellType===keyword_undefined){self.cellType=style.cellType}if(self.tabStop===keyword_undefined){self.tabStop=style.tabStop}if(self.textDecoration===keyword_undefined){self.textDecoration=style.textDecoration}if(self.imeMode===keyword_undefined){self.imeMode=style.imeMode}if(self.name===keyword_undefined){self.name=style.name}if(self.parentName===keyword_undefined){self.parentName=style.parentName}}};Style.prototype.clear=function(propertyName){if(arguments.length===0){this._initDefault();return}if(propertyName==="dataValidator"){propertyName="validator"}this[propertyName]=keyword_undefined};Style.prototype.clone=function(){var self=this,cloneLineBorder=self._cloneLineBorder;var style=new Style(self.backColor,self.foreColor,self.hAlign,self.vAlign,self.font,self.themeFont,self.formatter,((self.borderLeft&&cloneLineBorder(self.borderLeft))||self.borderLeft),((self.borderTop&&cloneLineBorder(self.borderTop))||self.borderTop),((self.borderRight&&cloneLineBorder(self.borderRight))||self.borderRight),((self.borderBottom&&cloneLineBorder(self.borderBottom))||self.borderBottom),self.locked,self.textIndent,self.wordWrap,self.shrinkToFit,self.backgroundImage,self.cellType,self.backgroundImageLayout,self.tabStop,self.textDecoration,self.imeMode);style.name=self.name;style.parentName=self.parentName;style._autoFormatter=self._autoFormatter;style.validator=self.validator;return style};Style.prototype._normalize=function(theme){var self=this;if(theme&&theme.getColor){var colorValue=self.foreColor;if(colorValue){colorValue=theme.getColor(colorValue);if(colorValue){self.foreColor=colorValue}}colorValue=self.backColor;if(colorValue){colorValue=theme.getColor(colorValue);if(colorValue){self.backColor=colorValue}}var borderLines=[self.borderLeft,self.borderTop,self.borderRight,self.borderBottom];for(var i=0,count=borderLines.length;i<count;i++){var borderLine=borderLines[i];if(borderLine&&borderLine.color){colorValue=theme.getColor(borderLine.color);if(colorValue){borderLine.color=colorValue}}}}if(self.themeFont&&theme&&theme.getFont){self.font=StyleHelper.composeFont(self.font,theme.getFont(self.themeFont))}return self};Style.prototype._setActualAutoFormatter=function(value){var self=this;if(!self||!self._autoFormatter||!self._autoFormatter._innerFormatter){return}if(value===keyword_null){return}var formatter=self._autoFormatter._innerFormatter;var oldFormat=formatter.formatCached;var newFormatObj=formatter.GetPreferredEditingFormatter(value);if(oldFormat!==newFormatObj.formatCached){self._autoFormatter._innerFormatter=newFormatObj}};return Style})();spread.Style=Style;var StyleHelper=(function(){function StyleHelper(){}StyleHelper.composeFont=function(font,fontFamily){if(!fontFamily){return font}return StyleHelper.normalizeFont(font,fontFamily)};StyleHelper.normalizeFont=function(font,fontFamily){if(!font&&!fontFamily)return font;var helper=StyleHelper;if(!this.measureSpan){helper._createMeasureSpan()}var span=helper.measureSpan;var key;var stringCatch;if(font){key=fontFamily?font+"+"+fontFamily:font;stringCatch=helper._fontStringCatch[key];if(stringCatch){return stringCatch}$(span).css("font",font)}else
{key=fontFamily;stringCatch=helper._fontStringCatch[key];if(stringCatch){return stringCatch}$(span).css("fontSize","10pt")}if(fontFamily){$(span).css("fontFamily",fontFamily)}var fs=span.currentStyle;if(document.defaultView&&document.defaultView.getComputedStyle){fs=document.defaultView.getComputedStyle(span,'')}stringCatch=buildFontString(fs);helper._fontStringCatch[key]=stringCatch;helper._fontStringCatch[stringCatch]=stringCatch;return stringCatch};StyleHelper._scaleFont=function(font,factor,minFont,ignoreCache){var helper=StyleHelper,cache=helper.scaleFontInfoCache,fontInfo;if(!ignoreCache){if(cache){fontInfo=cache[font];if(fontInfo){return fontInfo}}else
{cache=helper.scaleFontInfoCache={}}}var span=helper.measureSpan;if(!span){helper._createMeasureSpan();span=helper.measureSpan}span.style.font=font;var style=span.currentStyle,docView=document.defaultView;if(docView&&docView.getComputedStyle){style=docView.getComputedStyle(span,'')}var fontSize=style.fontSize;var type="px";if(fontSize.indexOf(type)!==-1){var size=Math_max(1,Math_floor(parseFloat(fontSize.replace(type,""))*factor));if(minFont&&size===1){minFont.value=true}fontSize=size+type}if(factor===1){fontInfo={font:font,fontSize:size}}else
{span.style.fontSize=fontSize;fontInfo={font:span.style.font,fontSize:size}}if(!ignoreCache){cache[font]=fontInfo}return fontInfo};StyleHelper._createMeasureSpan=function(){var span=document.createElement("span"),spanStyle=span.style;spanStyle.visibility="hidden";spanStyle.top="-10000px";spanStyle.left="-10000px";document.body.insertBefore(span,keyword_null);this.measureSpan=span};StyleHelper._disposeMeasureSpan=function(){var span=this.measureSpan;if(span){$(span).remove();this.measureSpan=keyword_undefined}};StyleHelper._fontStringCatch={};StyleHelper.scaleFontInfoCache=keyword_null;return StyleHelper})();spread.StyleHelper=StyleHelper;var NameInfo=(function(){function NameInfo(name,expr,row,column){var self=this;self._name=name;self._baseRow=row;self._baseColumn=column;self._expr=expr}NameInfo.prototype.getName=function(){return this._name};NameInfo.prototype.getRow=function(){return this._baseRow};NameInfo.prototype.getColumn=function(){return this._baseColumn};NameInfo.prototype.getExpression=function(){return this._expr};NameInfo.prototype.setExpression=function(expr){this._expr=expr};return NameInfo})();spread.NameInfo=NameInfo;var GcUIElement=(function(){function GcUIElement(x,y,w,h,name){this._init(x,y,w,h,name)}GcUIElement.prototype._init=function(x,y,w,h,name){this._bounds=new Rect(x,y,w,h);this._name=name};GcUIElement.prototype.getBounds=function(){return this._bounds};GcUIElement.prototype.setBounds=function(rect){var bounds=this._bounds;bounds.x=rect.x;bounds.y=rect.y;bounds.width=rect.width;bounds.height=rect.height};GcUIElement.prototype._draw=function(ctx){if(!ctx){return}var self=this,bounds=self._bounds;ctx.save();var lingrad=ctx.createLinearGradient(bounds.x,bounds.y,bounds.x,bounds.y+40);lingrad.addColorStop(0,'#00ABEB');lingrad.addColorStop(1,'#fff');ctx.fillStyle=lingrad;ctx.fillRect(bounds.x,bounds.y,bounds.width,bounds.height);var t=self._name;if(t&&t.length>0){ctx.fillStyle="darkblue";ctx.font="20pt Arial";ctx.fillText(t,bounds.x+36,bounds.y+28)}ctx.strokeStyle="black";ctx.strokeRect(bounds.x,bounds.y,bounds.width,bounds.height);ctx.restore()};GcUIElement.prototype.size=function(width,height){var bounds=this._bounds;bounds.width=width;bounds.height=height};GcUIElement.prototype.move=function(x,y){var bounds=this._bounds;bounds.x=x;bounds.y=y};return GcUIElement})();spread.GcUIElement=GcUIElement;var _ThemeContext=(function(){function _ThemeContext(){}_ThemeContext.getColor=function(owner,name){if(owner&&name){var currentTheme=owner._currentTheme;if(currentTheme){return currentTheme.getColor(name)}}return name};_ThemeContext.getFont=function(owner,name){if(owner&&name){var currentTheme=owner._currentTheme;if(currentTheme){return currentTheme.getFont(name)}return name}return keyword_null};return _ThemeContext})();spread._ThemeContext=_ThemeContext;var Timer=(function(){function Timer(host){var self=this;self.host=host;self.interval=keyword_null;self.action=keyword_null;self.intervalId=keyword_null;self.result=keyword_null;self.working=false;self._needIncrease=false}Timer.prototype.setAction=function(action){if(typeof(action)==="function"){this.action=action}};Timer.prototype.setInterval=function(interval){var self=this;if(!isNaN(interval)&&interval!==0){if(interval>0){self._needIncrease=true}else
{self._needIncrease=false}interval=Math_abs(interval);var oldInterval=self.interval;self.interval=interval;if(oldInterval!==interval){self.start()}}else
{self.stop()}};Timer.prototype.start=function(){var self=this;self.clear();if(!isNaN(self.interval)){self.intervalId=setInterval(function(){self.run()},self.interval)}};Timer.prototype.run=function(){var self=this;self.working=true;if(typeof(self.action)==="function"){self.result=self.action.call(self.host,self._needIncrease)}};Timer.prototype.stop=function(){var self=this;self.clear();self.interval=keyword_null;self.intervalId=keyword_null;self.result=keyword_null;self.working=false};Timer.prototype.clear=function(){if(this.intervalId){clearInterval(this.intervalId)}};Timer.prototype._dispose=function(){this.stop()};return Timer})();spread.Timer=Timer;var Events=(function(){function Events(){}Events.ValidationError="ValidationError";Events.CellClick="CellClick";Events.CellDoubleClick="CellDoubleClick";Events.EnterCell="EnterCell";Events.LeaveCell="LeaveCell";Events.ValueChanged="ValueChanged";Events.TopRowChanged="TopRowChanged";Events.LeftColumnChanged="LeftColumnChanged";Events.InvalidOperation="InvalidOperation";Events.RangeFiltering="RangeFiltering";Events.RangeFiltered="RangeFiltered";Events.RangeSorting="RangeSorting";Events.RangeSorted="RangeSorted";Events.ClipboardChanging="ClipboardChanging";Events.ClipboardChanged="ClipboardChanged";Events.ClipboardPasting="ClipboardPasting";Events.ClipboardPasted="ClipboardPasted";Events.ColumnWidthChanging="ColumnWidthChanging";Events.ColumnWidthChanged="ColumnWidthChanged";Events.RowHeightChanging="RowHeightChanging";Events.RowHeightChanged="RowHeightChanged";Events.DragDropBlock="DragDropBlock";Events.DragDropBlockCompleted="DragDropBlockCompleted";Events.DragFillBlock="DragFillBlock";Events.DragFillBlockCompleted="DragFillBlockCompleted";Events.EditStarting="EditStarting";Events.EditStarted="EditStarted";Events.EditChange="EditChange";Events.EditEnding="EditEnding";Events.EditEnd="EditEnd";Events.EditEnded="EditEnded";Events.RangeGroupStateChanging="RangeGroupStateChanging";Events.RangeGroupStateChanged="RangeGroupStateChanged";Events.SelectionChanging="SelectionChanging";Events.SelectionChanged="SelectionChanged";Events.SheetTabClick="SheetTabClick";Events.SheetTabDoubleClick="SheetTabDoubleClick";Events.SheetNameChanging="SheetNameChanging";Events.SheetNameChanged="SheetNameChanged";Events.UserZooming="UserZooming";Events.UserFormulaEntered="UserFormulaEntered";Events.CellChanged="CellChanged";Events.ColumnChanged="ColumnChanged";Events.RowChanged="RowChanged";Events.ActiveSheetChanging="ActiveSheetChanging";Events.ActiveSheetChanged="ActiveSheetChanged";Events.SparklineChanged="SparklineChanged";Events.RangeChanged="RangeChanged";Events.ButtonClicked="ButtonClicked";Events.EditorStatusChanged="EditorStatusChanged";Events.CultureChanged="SpreadJSCultureChanged";Events.FloatingObjectChanged="FloatingObjectChanged";Events.FloatingObjectSelectionChanged="FloatingObjectSelectionChanged";Events.PictureChanged="PictureChanged";Events.PictureSelectionChanged="PictureSelectionChanged";Events.CustomFloatingObjectLoaded="CustomFloatingObjectLoaded";Events.TouchToolStripOpening="TouchToolStripOpening";Events.CommentChanged="CommentChanged";return Events})();spread.Events=Events;var _XArray=(function(){function _XArray(){Array.apply(this,arguments);return[]}_XArray.prototype.pop=function(){return keyword_null};_XArray.prototype.push=function(val){return 0};_XArray.prototype.splice=function(start,deleteCount){var items=[];for(var _i=0;_i<(arguments.length-2);_i++){items[_i]=arguments[_i+2]}return keyword_null};return _XArray})();spread._XArray=_XArray;_XArray["prototype"]=[];var _CachePool=(function(){function _CachePool(sheet){this._cachedCells={};this._cachedColumns={};this._cachedRows={};this._sheet=sheet}_CachePool.prototype.addCell=function(row,col,cell){var cachedCells=this._cachedCells,cachedCellRow=cachedCells[row];if(!cachedCellRow){cachedCellRow=cachedCells[row]={}}cachedCellRow[col]=cell};_CachePool.prototype.getCachedCell=function(row,col){var cachedCells=this._cachedCells,cachedCellRow=cachedCells[row];if(!cachedCellRow){cachedCellRow=cachedCells[row]={}}var cachedCell=cachedCellRow[col];if(!cachedCell){cachedCell={data:this._sheet.getValue(row,col)};cachedCellRow[col]=cachedCell}return cachedCell};_CachePool.prototype.addRow=function(row,rowInfo){this._cachedRows[row]=rowInfo};_CachePool.prototype.getCachedRow=function(row){var cachedRows=this._cachedRows,cachedRow=cachedRows[row];if(!cachedRow){cachedRow={height:this._sheet._getZoomRowHeight(row)};cachedRows[row]=cachedRow}return cachedRow};_CachePool.prototype.addColumn=function(col,colInfo){this._cachedColumns[col]=colInfo};_CachePool.prototype.getCachedColumn=function(col){var cachedCols=this._cachedColumns,cachedCol=cachedCols[col];if(!cachedCol){cachedCol={width:this._sheet._getZoomColumnWidth(col)};cachedCols[col]=cachedCol}return cachedCol};_CachePool.prototype.clearAll=function(){var self=this;self._cachedCells={};self._cachedColumns={};self._cachedRows={}};return _CachePool})();spread._CachePool=_CachePool;(function(EndEditType){EndEditType[EndEditType["normal"]=0]="normal";EndEditType[EndEditType["arrayFormula"]=1]="arrayFormula";EndEditType[EndEditType["sharedFormula"]=2]="sharedFormula"})(spread.EndEditType||(spread.EndEditType={}));var EndEditType=spread.EndEditType;var FormulaInformation=(function(){function FormulaInformation(){}return FormulaInformation})();spread.FormulaInformation=FormulaInformation})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("core.imageLoader",["core.common"]);var _GcImageLoader=(function(){function _GcImageLoader(loadedCallBack){this._imageCount=0;this._loadedCount=0;this.onLoadedComplete=loadedCallBack}_GcImageLoader.prototype.addImage=function(imgUrl){var self=this;var imgs=self._imgs;if(!imgs){imgs=self._imgs={}}var imgObj=imgs[imgUrl];if(!imgObj){imgObj={};var imgElement=$("<img/>");imgElement.bind("load",function(){self.imageLoaded(imgUrl)});imgElement.bind("error",function(){self.imageLoaded(imgUrl)});imgElement.bind("abort",function(){self.imageLoaded(imgUrl)});self._imageCount++;imgObj.state=false;imgObj.img=imgElement;imgs[imgUrl]=imgObj;imgElement[0].src=imgUrl}};_GcImageLoader.prototype.getImage=function(imgUrl){return this._imgs[imgUrl].img[0]};_GcImageLoader.prototype.getState=function(imgUrl){var imgs=this._imgs,img=(imgs&&imgs[imgUrl]);if(img){return img.state}return false};_GcImageLoader.prototype.imageLoaded=function(imgUrl){var self=this;self._loadedCount++;self._imgs[imgUrl].state=true;if(self._loadedCount>=self._imageCount){if(self.onLoadedComplete){self.onLoadedComplete()}}};return _GcImageLoader})();spread._GcImageLoader=_GcImageLoader})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("core.globalize",["core.stringResource","core.migrate"]);var keyword_null=null,keyword_undefined=undefined,Math_max=Math.max,Math_min=Math.min,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_abs=Math.abs,Math_pow=Math.pow,Math_round=Math.round,const_undefined="undefined";var _ArrayHelper=(function(){function _ArrayHelper(array){this._array=array}_ArrayHelper.__insert=function(array,index,item){array.splice(index,0,item)};_ArrayHelper.__add=function(array,item){array[array.length]=item};_ArrayHelper.__indexOf=function(array,item,start){if(typeof(item)===const_undefined){return-1}var length=array.length;if(length!==0){start=start-0;if(isNaN(start)){start=0}else
{if(isFinite(start)){start=start-(start%1)}if(start<0){start=Math_max(0,length+start)}}for(var i=start;i<length;i++){if((typeof(array[i])!==const_undefined)&&(array[i]===item)){return i}}}return-1};_ArrayHelper.prototype.add=function(item){_ArrayHelper.__add(this._array,item)};_ArrayHelper.prototype.insert=function(index,item){_ArrayHelper.__insert(this._array,index,item)};_ArrayHelper.prototype.indexOf=function(item,start){return _ArrayHelper.__indexOf(this._array,item,start)};_ArrayHelper.prototype.array=function(value){if(arguments.length===0){return this._array}this._array=value;return this._array};return _ArrayHelper})();spread._ArrayHelper=_ArrayHelper;var _StringBuilder=(function(){function _StringBuilder(str){this._value={};this._len=0;this._init(str)}_StringBuilder.prototype._init=function(initialText){this._parts=(typeof(initialText)!==const_undefined&&initialText!==keyword_null&&initialText!=='')?[initialText.toString()]:[];this._value={};this._len=0};_StringBuilder.prototype._insert=function(text){this._parts.splice(0,0,text)};_StringBuilder.prototype.insert=function(text,position){var self=this;if(position===keyword_undefined||position===keyword_null){position=0}if(position===0){self._insert(text);return}var content=self.toString();if(position>=content.length){self.append(text);return}var first=content.substring(0,position);var left=content.substr(position);self._init(first+text+left)};_StringBuilder.prototype.append=function(text){this._parts[this._parts.length]=text};_StringBuilder.prototype.appendLine=function(text){this._parts[this._parts.length]=((typeof(text)===const_undefined)||(text===keyword_null)||(text===''))?'\r\n':text+'\r\n'};_StringBuilder.prototype.clear=function(){this._init()};_StringBuilder.prototype.isEmpty=function(){if(this._parts.length===0){return true}return this.toString()===''};_StringBuilder.prototype.toString=function(separator){var self=this;separator=separator||'';var parts=self._parts;if(self._len!==parts.length){self._value={};self._len=parts.length}var val=self._value;if(typeof(val[separator])===const_undefined){if(separator!==''){for(var i=0;i<parts.length;){if((typeof(parts[i])===const_undefined)||(parts[i]==='')||(parts[i]===keyword_null)){parts.splice(i,1)}else
{i++}}}val[separator]=self._parts.join(separator)}return val[separator]};return _StringBuilder})();spread._StringBuilder=_StringBuilder;var StringBuilder=(function(){function StringBuilder(value){this.strValue="";if(value){this.strValue=value}}StringBuilder.prototype.Append=function(obj){if(obj)this.strValue+=obj.toString()};StringBuilder.prototype.toString=function(){return this.strValue.toString()};StringBuilder.prototype.Length=function(){return this.strValue.length};StringBuilder.prototype.ToString=function(startIndex,length){var str=this.toString();if(arguments.length===0){return str}var subStr=str.substr(startIndex,length);return subStr};StringBuilder.prototype.Remove=function(startIndex,length){var str=this.toString();this.strValue=StringHelper.Remove(str,startIndex,length)};return StringBuilder})();spread.StringBuilder=StringBuilder;function __toUpper(value){return value.split("\u00A0").join(' ').toUpperCase()}function __toUpperArray(arr){var result=[];for(var i=0,il=arr.length;i<il;i++){result[i]=__toUpper(arr[i])}return result}function __getIndex(value,a1,a2){var upper=__toUpper(value),i=new _ArrayHelper(a1).indexOf(upper);if(i===-1){i=new _ArrayHelper(a2).indexOf(upper)}return i}var _NumberFormatInfo=(function(){function _NumberFormatInfo(name){var self=this;self.CurrencyDecimalDigits=2;self.CurrencyDecimalSeparator=".";self.CurrencyPositivePattern=0;self.CurrencyGroupSeparator=",";self.CurrencySymbol="\u00A4";self.CurrencyGroupSizes=[3];self.CurrencyNegativePattern=0;self.DigitSubstitution=1;self.IsReadOnly=true;self.NumberGroupSizes=[3];self.NaNSymbol="NaN";self.NativeDigits=["0","1","2","3","4","5","6","7","8","9"];self.NumberNegativePattern=1;self.NegativeInfinitySymbol="-Infinity";self.NegativeSign="-";self.NumberDecimalDigits=2;self.NumberDecimalSeparator=".";self.NumberGroupSeparator=",";self.PositiveInfinitySymbol="Infinity";self.PositiveSign="+";self.PercentDecimalDigits=2;self.PercentDecimalSeparator=".";self.PercentGroupSeparator=",";self.PercentSymbol="%";self.PerMilleSymbol="\u2030";self.PercentPositivePattern=0;self.PercentNegativePattern=0;self.PercentGroupSizes=[3];if(name&&name.length>0){self.IsReadOnly=false;self.CurrencySymbol="$"}}return _NumberFormatInfo})();spread._NumberFormatInfo=_NumberFormatInfo;var _Calendar=(function(){function _Calendar(){var self=this;self.MinSupportedDateTime="@-62135568000000@";self.MaxSupportedDateTime="@253402300799999@";self.AlgorithmType=1;self.CalendarType=1;self.Eras=[1];self.TwoDigitYearMax=2029;self.IsReadOnly=true}return _Calendar})();spread._Calendar=_Calendar;var _DateTimeFormatInfo=(function(){function _DateTimeFormatInfo(name){var self=this;self.AMDesignator="AM";self.AbbreviatedMonthNames=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""];self.AbbreviatedDayNames=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];self.AbbreviatedMonthGenitiveNames=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""];self.Calendar=new _Calendar;self.CalendarWeekRule=0;self.DateSeparator="/";self.DayNames=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];self.FirstDayOfWeek=0;self.FullDateTimePattern="dddd, dd MMMM yyyy HH:mm:ss";self.IsReadOnly=true;self.LongDatePattern="dddd, dd MMMM yyyy";self.LongTimePattern="HH:mm:ss";self.MonthDayPattern="MMMM dd";self.MonthNames=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""];self.MonthGenitiveNames=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""];self.NativeCalendarName="Gregorian Calendar";self.PMDesignator="PM";self.RFC1123Pattern="ddd, dd MMM yyyy HH\':\'mm\':\'ss \'GMT\'";self.ShortDatePattern="MM/dd/yyyy";self.ShortTimePattern="HH:mm";self.SortableDateTimePattern="yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss";self.ShortestDayNames=["Su","Mo","Tu","We","Th","Fr","Sa"];self.TimeSeparator=":";self.UniversalSortableDateTimePattern="yyyy\'-\'MM\'-\'dd HH\':\'mm\':\'ss\'Z\'";self.YearMonthPattern="yyyy MMMM";if(name&&name.length>0){self.Calendar.IsReadOnly=false;self.FullDateTimePattern="dddd, MMMM dd, yyyy h:mm:ss tt";self.LongDatePattern="dddd, MMMM dd, yyyy";self.LongTimePattern="h:mm:ss tt";self.ShortDatePattern="M/d/yyyy";self.ShortTimePattern="h:mm tt";self.YearMonthPattern="MMMM, yyyy";self.IsReadOnly=false}}return _DateTimeFormatInfo})();spread._DateTimeFormatInfo=_DateTimeFormatInfo;var _EraHelper=(function(){function _EraHelper(){}_EraHelper.isValidEraDate=function(date){if(date<this.getEraMin()||date>this.getEraMax()){return false}return true};_EraHelper.getEraDates=function(){var eras=window.spreadJSEras;if(eras!=keyword_undefined){var eraDates=new Array;for(var i=0;i<eras.length;i++){var date=new Date(eras[i].startDate.replace(/-/g,"/"));eraDates[i]=date}return eraDates}return this.EraDates};_EraHelper.getEraNames=function(){var eras=window.spreadJSEras;var eraNames=new Array;if(eras!=keyword_undefined){for(var i=0;i<eras.length;i++){eraNames[i]=eras[i].name}return eraNames}for(var i=0;i<this.EraCount;i++){eraNames[i]=this.EraNames[i+2*this.EraCount]}return eraNames};_EraHelper.getEraSymbols=function(){var eras=window.spreadJSEras;var eraSymbol=new Array;if(eras!=keyword_undefined){for(var i=0;i<eras.length;i++){eraSymbol[i]=eras[i].symbol}return eraSymbol}for(var i=0;i<this.EraCount;i++){eraSymbol[i]=this.EraNames[i];;}return eraSymbol};_EraHelper.getEraAbbreviations=function(){var eras=window.spreadJSEras;var eraAbbreviation=new Array;if(eras!=keyword_undefined){for(var i=0;i<eras.length;i++){eraAbbreviation[i]=eras[i].abbreviation}return eraAbbreviation}for(var i=0;i<this.EraCount;i++){eraAbbreviation[i]=this.EraNames[i+this.EraCount]}return eraAbbreviation};_EraHelper.getEraShortcuts=function(){var eras=window.spreadJSEras;var eraShortcuts=new Array;if(eras!=keyword_undefined){for(var i=0;i<eras.length;i++){eraShortcuts[i]=eras[i].shortcuts.split(',')[0]}return eraShortcuts}for(var i=0;i<this.EraCount;i++){eraShortcuts[i]=this.EraKeys[i]}return eraShortcuts};_EraHelper.getEraMax=function(){var eras=window.spreadJSEras;if(eras!=keyword_undefined){if(eras.length>0){var date=new Date(eras[eras.length-1].startDate.replace(/-/g,"/"));date.setFullYear(date.getFullYear()+99);return date}}return this.EraMax};_EraHelper.getEraMin=function(){var eras=window.spreadJSEras;if(eras!=keyword_undefined){if(eras.length>0){var date=new Date(eras[0].startDate.replace(/-/g,"/"));return date}}return this.EraMin};_EraHelper.getEraCount=function(){var eras=window.spreadJSEras;if(eras!=keyword_undefined){return eras.length}return this.EraCount};_EraHelper.getEraYears=function(){var eras=window.spreadJSEras;if(eras!=keyword_undefined){var eraYears=new Array;for(var i=1;i<eras.length;i++){var date1=new Date(eras[i-1].startDate.replace(/-/g,"/"));var date2=new Date(eras[i].startDate.replace(/-/g,"/"));eraYears[i-1]=date2.getFullYear()-date1.getFullYear()+1}eraYears[i-1]=99;return eraYears}return this.EraYears};_EraHelper.getEraDate=function(date){var eraDate=new Object;eraDate.era=-1;eraDate.eraYear=-1;var self=this;if(!self.isValidEraDate(date)){return eraDate}for(var i=0;i<self.getEraCount();i++){var nextDate=i+1!=self.getEraCount()?self.getEraDates()[i+1]:self.addMilliseconds(self.getEraMax(),1);if(date<nextDate){eraDate.era=i;eraDate.eraYear=date.getFullYear()-self.getEraDates()[i].getFullYear()+1;break}}return eraDate};_EraHelper.addMilliseconds=function(date,msec){var newDate=new Date(date.getFullYear(),date.getMonth(),date.getDate(),date.getHours(),date.getMinutes(),date.getSeconds());newDate.setMilliseconds(newDate.getMilliseconds()+msec);return new Date(newDate.valueOf())};_EraHelper.getYearFromEra=function(era,eraYear){var startYear=_EraHelper.getEraDates()[era].getFullYear();var year=startYear+eraYear-1;return year};_EraHelper.parseEraPart=function(format,text){text=text.toUpperCase();var eras=_EraHelper;switch(format){case"g":var eraSymbols=eras.getEraSymbols();for(var i=0;i<eraSymbols.length;i++){if(eraSymbols[i]===text){return i}}break;case"gg":var eraAbbreviations=eras.getEraAbbreviations();for(var i=0;i<eraAbbreviations.length;i++){if(eraAbbreviations[i]===text){return i}}break;case"ggg":var eraNames=eras.getEraNames();for(var i=0;i<eraNames.length;i++){if(eraNames[i]===text){return i}}break}return-1};_EraHelper.formatEraPart=function(format,date,ret){var eras=_EraHelper;var eraDateInfo=eras.getEraDate(date);switch(format){case"g":if(eraDateInfo.era<0){break}var eraName=(eras.getEraSymbols()[eraDateInfo.era]);ret.append(eraName);break;case"gg":if(eraDateInfo.era<0){break}var eraName=(eras.getEraAbbreviations()[eraDateInfo.era]);ret.append(eraName);break;case"ggg":if(eraDateInfo.era<0){break}var eraName=(eras.getEraNames()[eraDateInfo.era]);ret.append(eraName);break;case"ee":if(eraDateInfo.eraYear<0){break}var eraYear=eraDateInfo.eraYear.toString();if(eraYear.length===1){eraYear='0'+eraYear}ret.append(eraYear);break;case"e":if(eraDateInfo.eraYear<0){break}var eraYear=eraDateInfo.eraYear.toString();ret.append(eraYear);break}};_EraHelper.EraDates=new Array(new Date(1868,9-1,8),new Date(1912,7-1,30),new Date(1926,12-1,25),new Date(1989,1-1,8));_EraHelper.EraCount=4;_EraHelper.EraYears=new Array(45,15,64,99);_EraHelper.EraMax=new Date(2087,12-1,31,23,59,59);_EraHelper.EraMin=new Date(1868,9-1,8);_EraHelper.EraKeys=new Array("1","2","3","4","m","t","s","h");_EraHelper.EraIndices=new Array(0,1,2,3,0,1,2,3);_EraHelper.EraNames=new Array("M","T","S","H","\u660E","\u5927","\u662D","\u5E73","\u660E\u6CBB","\u5927\u6B63","\u662D\u548C","\u5E73\u6210");_EraHelper.EraYearMax=99;return _EraHelper})();spread._EraHelper=_EraHelper;var _CultureInfo=(function(){function _CultureInfo(name,numberFormat,dateTimeFormat){this.name=name;this.numberFormat=numberFormat;this.dateTimeFormat=dateTimeFormat}_CultureInfo.prototype.Name=function(){return this.name};_CultureInfo.prototype.NumberFormat=function(){return this.numberFormat};_CultureInfo.prototype.DateTimeFormat=function(){return this.dateTimeFormat};_CultureInfo.prototype._getDateTimeFormats=function(){if(!this._dateTimeFormats){this._dateTimeFormats=["yy/MM/dd","yy/MM/d","yy/M/dd","yy/M/d","yyyy/MM/dd","yyyy/MM/d","yyyy/M/dd","yyyy/M/d","MM/dd/yyyy","MM/d/yyyy","M/dd/yyyy","M/d/yyyy","hh:mm:ss","hh:mm:s","hh:m:ss","hh:m:s","h:mm:ss","h:mm:s","h:m:ss","h:m:s","hh:mm:ss tt","hh:mm:s tt","hh:m:ss tt","hh:m:s tt","h:mm:ss tt","h:mm:s tt","h:m:ss tt","h:m:s tt","hh:mm","hh:m","h:mm","h:m","yy/MM/dd hh:mm:ss","yy/MM/dd hh:mm:s","yy/MM/dd hh:m:ss","yy/MM/dd hh:m:s","yy/MM/dd h:mm:ss","yy/MM/dd h:mm:s","yy/MM/dd h:m:ss","yy/MM/dd h:m:s","yy/MM/dd hh:mm:ss tt","yy/MM/dd hh:mm:s tt","yy/MM/dd hh:m:ss tt","yy/MM/dd hh:m:s tt","yy/MM/dd h:mm:ss tt","yy/MM/dd h:mm:s tt","yy/MM/dd h:m:ss tt","yy/MM/dd h:m:s tt","yy/MM/d hh:mm:ss","yy/MM/d hh:mm:s","yy/MM/d hh:m:ss","yy/MM/d hh:m:s","yy/MM/d hh:mm:ss","yy/MM/d h:mm:s","yy/MM/d h:m:ss","yy/MM/d h:m:s","yy/MM/d hh:mm:ss tt","yy/MM/d hh:mm:s tt","yy/MM/d hh:m:ss tt","yy/MM/d hh:m:s tt","yy/MM/d h:mm:ss tt","yy/MM/d h:mm:s tt","yy/MM/d h:m:ss tt","yy/MM/d h:m:s tt","yy/M/dd hh:mm:ss","yy/M/dd hh:mm:s","yy/M/dd hh:m:ss","yy/M/dd hh:m:s","yy/M/dd hh:mm:ss","yy/M/dd h:mm:s","yy/M/dd h:m:ss","yy/M/dd h:m:s","yy/M/dd hh:mm:ss tt","yy/M/dd hh:mm:s tt","yy/M/dd hh:m:ss tt","yy/M/dd hh:m:s tt","yy/M/dd h:mm:ss tt","yy/M/dd h:mm:s tt","yy/M/dd h:m:ss tt","yy/M/dd h:m:s tt","yy/M/d hh:mm:ss","yy/M/d hh:mm:s","yy/M/d hh:m:ss","yy/M/d hh:m:s","yy/M/d hh:mm:ss","yy/M/d h:mm:s","yy/M/d h:m:ss","yy/M/d h:m:s","yy/M/d hh:mm:ss tt","yy/M/d hh:mm:s tt","yy/M/d hh:m:ss tt","yy/M/d hh:m:s tt","yy/M/d h:mm:ss tt","yy/M/d h:mm:s tt","yy/M/d h:m:ss tt","yy/M/d h:m:s tt","yyyy/MM/dd hh:mm:ss","yyyy/MM/dd hh:mm:s","yyyy/MM/dd hh:m:ss","yyyy/MM/dd hh:m:s","yyyy/MM/dd hh:mm:ss","yyyy/MM/dd h:mm:s","yyyy/MM/dd h:m:ss","yyyy/MM/dd h:m:s","yyyy/MM/dd hh:mm:ss tt","yyyy/MM/dd hh:mm:s tt","yyyy/MM/dd hh:m:ss tt","yyyy/MM/dd hh:m:s tt","yyyy/MM/dd h:mm:ss tt","yyyy/MM/dd h:mm:s tt","yyyy/MM/dd h:m:ss tt","yyyy/MM/dd h:m:s tt","yyyy/MM/d hh:mm:ss","yyyy/MM/d hh:mm:s","yyyy/MM/d hh:m:ss","yyyy/MM/d hh:m:s","yyyy/MM/d hh:mm:ss","yyyy/MM/d h:mm:s","yyyy/MM/d h:m:ss","yyyy/MM/d h:m:s","yyyy/MM/d hh:mm:ss tt","yyyy/MM/d hh:mm:s tt","yyyy/MM/d hh:m:ss tt","yyyy/MM/d hh:m:s tt","yyyy/MM/d h:mm:ss tt","yyyy/MM/d h:mm:s tt","yyyy/MM/d h:m:ss tt","yyyy/MM/d h:m:s tt","yyyy/M/dd hh:mm:ss","yyyy/M/dd hh:mm:s","yyyy/M/dd hh:m:ss","yyyy/M/dd hh:m:s","yyyy/M/dd hh:mm:ss","yyyy/M/dd h:mm:s","yyyy/M/dd h:m:ss","yyyy/M/dd h:m:s","yyyy/M/dd hh:mm:ss tt","yyyy/M/dd hh:mm:s tt","yyyy/M/dd hh:m:ss tt","yyyy/M/dd hh:m:s tt","yyyy/M/dd h:mm:ss tt","yyyy/M/dd h:mm:s tt","yyyy/M/dd h:m:ss tt","yyyy/M/dd h:m:s tt","yyyy/M/d hh:mm:ss","yyyy/M/d hh:mm:s","yyyy/M/d hh:m:ss","yyyy/M/d hh:m:s","yyyy/M/d hh:mm:ss","yyyy/M/d h:mm:s","yyyy/M/d h:m:ss","yyyy/M/d h:m:s","yyyy/M/d hh:mm:ss tt","yyyy/M/d hh:mm:s tt","yyyy/M/d hh:m:ss tt","yyyy/M/d hh:m:s tt","yyyy/M/d h:mm:ss tt","yyyy/M/d h:mm:s tt","yyyy/M/d h:m:ss tt","yyyy/M/d h:m:s tt","MM/dd/yyyy hh:mm:ss","MM/dd/yyyy hh:mm:s","MM/dd/yyyy hh:m:ss","MM/dd/yyyy hh:m:s","MM/dd/yyyy hh:mm:ss","MM/dd/yyyy h:mm:s","MM/dd/yyyy h:m:ss","MM/dd/yyyy h:m:s","MM/dd/yyyy hh:mm:ss tt","MM/dd/yyyy hh:mm:s tt","MM/dd/yyyy hh:m:ss tt","MM/dd/yyyy hh:m:s tt","MM/dd/yyyy h:mm:ss tt","MM/dd/yyyy h:mm:s tt","MM/dd/yyyy h:m:ss tt","MM/dd/yyyy h:m:s tt","MM/d/yyyy hh:mm:ss","MM/d/yyyy hh:mm:s","MM/d/yyyy hh:m:ss","MM/d/yyyy hh:m:s","MM/d/yyyy hh:mm:ss","MM/d/yyyy h:mm:s","MM/d/yyyy h:m:ss","MM/d/yyyy h:m:s","MM/d/yyyy hh:mm:ss tt","MM/d/yyyy hh:mm:s tt","MM/d/yyyy hh:m:ss tt","MM/d/yyyy hh:m:s tt","MM/d/yyyy h:mm:ss tt","MM/d/yyyy h:mm:s tt","MM/d/yyyy h:m:ss tt","MM/d/yyyy h:m:s tt","M/dd/yyyy hh:mm:ss","M/dd/yyyy hh:mm:s","M/dd/yyyy hh:m:ss","M/dd/yyyy hh:m:s","M/dd/yyyy hh:mm:ss","M/dd/yyyy h:mm:s","M/dd/yyyy h:m:ss","M/dd/yyyy h:m:s","M/dd/yyyy hh:mm:ss tt","M/dd/yyyy hh:mm:s tt","M/dd/yyyy hh:m:ss tt","M/dd/yyyy hh:m:s tt","M/dd/yyyy h:mm:ss tt","M/dd/yyyy h:mm:s tt","M/dd/yyyy h:m:ss tt","M/dd/yyyy h:m:s tt","M/d/yyyy hh:mm:ss","M/d/yyyy hh:mm:s","M/d/yyyy hh:m:ss","M/d/yyyy hh:m:s","M/d/yyyy hh:mm:ss","M/d/yyyy h:mm:s","M/d/yyyy h:m:ss","M/d/yyyy h:m:s","M/d/yyyy hh:mm:ss tt","M/d/yyyy hh:mm:s tt","M/d/yyyy hh:m:ss tt","M/d/yyyy hh:m:s tt","M/d/yyyy h:mm:ss tt","M/d/yyyy h:mm:s tt","M/d/yyyy h:m:ss tt","M/d/yyyy h:m:s tt","yy-MM-dd","yy-MM-d","yy-M-dd","yy-M-d","yyyy-MM-dd","yyyy-MM-d","yyyy-M-dd","yyyy-M-d","MM-dd-yyyy","MM-d-yyyy","M-dd-yyyy","M-d-yyyy","yy-MM-dd hh:mm:ss","yy-MM-dd hh:mm:s","yy-MM-dd hh:m:ss","yy-MM-dd hh:m:s","yy-MM-dd h:mm:ss","yy-MM-dd h:mm:s","yy-MM-dd h:m:ss","yy-MM-dd h:m:s","yy-MM-dd hh:mm:ss tt","yy-MM-dd hh:mm:s tt","yy-MM-dd hh:m:ss tt","yy-MM-dd hh:m:s tt","yy-MM-dd h:mm:ss tt","yy-MM-dd h:mm:s tt","yy-MM-dd h:m:ss tt","yy-MM-dd h:m:s tt","yy-MM-d hh:mm:ss","yy-MM-d hh:mm:s","yy-MM-d hh:m:ss","yy-MM-d hh:m:s","yy-MM-d hh:mm:ss","yy-MM-d h:mm:s","yy-MM-d h:m:ss","yy-MM-d h:m:s","yy-MM-d hh:mm:ss tt","yy-MM-d hh:mm:s tt","yy-MM-d hh:m:ss tt","yy-MM-d hh:m:s tt","yy-MM-d h:mm:ss tt","yy-MM-d h:mm:s tt","yy-MM-d h:m:ss tt","yy-MM-d h:m:s tt","yy-M-dd hh:mm:ss","yy-M-dd hh:mm:s","yy-M-dd hh:m:ss","yy-M-dd hh:m:s","yy-M-dd hh:mm:ss","yy-M-dd h:mm:s","yy-M-dd h:m:ss","yy-M-dd h:m:s","yy-M-dd hh:mm:ss tt","yy-M-dd hh:mm:s tt","yy-M-dd hh:m:ss tt","yy-M-dd hh:m:s tt","yy-M-dd h:mm:ss tt","yy-M-dd h:mm:s tt","yy-M-dd h:m:ss tt","yy-M-dd h:m:s tt","yy-M-d hh:mm:ss","yy-M-d hh:mm:s","yy-M-d hh:m:ss","yy-M-d hh:m:s","yy-M-d hh:mm:ss","yy-M-d h:mm:s","yy-M-d h:m:ss","yy-M-d h:m:s","yy-M-d hh:mm:ss tt","yy-M-d hh:mm:s tt","yy-M-d hh:m:ss tt","yy-M-d hh:m:s tt","yy-M-d h:mm:ss tt","yy-M-d h:mm:s tt","yy-M-d h:m:ss tt","yy-M-d h:m:s tt","yyyy-MM-dd hh:mm:ss","yyyy-MM-dd hh:mm:s","yyyy-MM-dd hh:m:ss","yyyy-MM-dd hh:m:s","yyyy-MM-dd hh:mm:ss","yyyy-MM-dd h:mm:s","yyyy-MM-dd h:m:ss","yyyy-MM-dd h:m:s","yyyy-MM-dd hh:mm:ss tt","yyyy-MM-dd hh:mm:s tt","yyyy-MM-dd hh:m:ss tt","yyyy-MM-dd hh:m:s tt","yyyy-MM-dd h:mm:ss tt","yyyy-MM-dd h:mm:s tt","yyyy-MM-dd h:m:ss tt","yyyy-MM-dd h:m:s tt","yyyy-MM-d hh:mm:ss","yyyy-MM-d hh:mm:s","yyyy-MM-d hh:m:ss","yyyy-MM-d hh:m:s","yyyy-MM-d hh:mm:ss","yyyy-MM-d h:mm:s","yyyy-MM-d h:m:ss","yyyy-MM-d h:m:s","yyyy-MM-d hh:mm:ss tt","yyyy-MM-d hh:mm:s tt","yyyy-MM-d hh:m:ss tt","yyyy-MM-d hh:m:s tt","yyyy-MM-d h:mm:ss tt","yyyy-MM-d h:mm:s tt","yyyy-MM-d h:m:ss tt","yyyy-MM-d h:m:s tt","yyyy-M-dd hh:mm:ss","yyyy-M-dd hh:mm:s","yyyy-M-dd hh:m:ss","yyyy-M-dd hh:m:s","yyyy-M-dd hh:mm:ss","yyyy-M-dd h:mm:s","yyyy-M-dd h:m:ss","yyyy-M-dd h:m:s","yyyy-M-dd hh:mm:ss tt","yyyy-M-dd hh:mm:s tt","yyyy-M-dd hh:m:ss tt","yyyy-M-dd hh:m:s tt","yyyy-M-dd h:mm:ss tt","yyyy-M-dd h:mm:s tt","yyyy-M-dd h:m:ss tt","yyyy-M-dd h:m:s tt","yyyy-M-d hh:mm:ss","yyyy-M-d hh:mm:s","yyyy-M-d hh:m:ss","yyyy-M-d hh:m:s","yyyy-M-d hh:mm:ss","yyyy-M-d h:mm:s","yyyy-M-d h:m:ss","yyyy-M-d h:m:s","yyyy-M-d hh:mm:ss tt","yyyy-M-d hh:mm:s tt","yyyy-M-d hh:m:ss tt","yyyy-M-d hh:m:s tt","yyyy-M-d h:mm:ss tt","yyyy-M-d h:mm:s tt","yyyy-M-d h:m:ss tt","yyyy-M-d h:m:s tt","MM-dd-yyyy hh:mm:ss","MM-dd-yyyy hh:mm:s","MM-dd-yyyy hh:m:ss","MM-dd-yyyy hh:m:s","MM-dd-yyyy hh:mm:ss","MM-dd-yyyy h:mm:s","MM-dd-yyyy h:m:ss","MM-dd-yyyy h:m:s","MM-dd-yyyy hh:mm:ss tt","MM-dd-yyyy hh:mm:s tt","MM-dd-yyyy hh:m:ss tt","MM-dd-yyyy hh:m:s tt","MM-dd-yyyy h:mm:ss tt","MM-dd-yyyy h:mm:s tt","MM-dd-yyyy h:m:ss tt","MM-dd-yyyy h:m:s tt","MM-d-yyyy hh:mm:ss","MM-d-yyyy hh:mm:s","MM-d-yyyy hh:m:ss","MM-d-yyyy hh:m:s","MM-d-yyyy hh:mm:ss","MM-d-yyyy h:mm:s","MM-d-yyyy h:m:ss","MM-d-yyyy h:m:s","MM-d-yyyy hh:mm:ss tt","MM-d-yyyy hh:mm:s tt","MM-d-yyyy hh:m:ss tt","MM-d-yyyy hh:m:s tt","MM-d-yyyy h:mm:ss tt","MM-d-yyyy h:mm:s tt","MM-d-yyyy h:m:ss tt","MM-d-yyyy h:m:s tt","M-dd-yyyy hh:mm:ss","M-dd-yyyy hh:mm:s","M-dd-yyyy hh:m:ss","M-dd-yyyy hh:m:s","M-dd-yyyy hh:mm:ss","M-dd-yyyy h:mm:s","M-dd-yyyy h:m:ss","M-dd-yyyy h:m:s","M-dd-yyyy hh:mm:ss tt","M-dd-yyyy hh:mm:s tt","M-dd-yyyy hh:m:ss tt","M-dd-yyyy hh:m:s tt","M-dd-yyyy h:mm:ss tt","M-dd-yyyy h:mm:s tt","M-dd-yyyy h:m:ss tt","M-dd-yyyy h:m:s tt","M-d-yyyy hh:mm:ss","M-d-yyyy hh:mm:s","M-d-yyyy hh:m:ss","M-d-yyyy hh:m:s","M-d-yyyy hh:mm:ss","M-d-yyyy h:mm:s","M-d-yyyy h:m:ss","M-d-yyyy h:m:s","M-d-yyyy hh:mm:ss tt","M-d-yyyy hh:mm:s tt","M-d-yyyy hh:m:ss tt","M-d-yyyy hh:m:s tt","M-d-yyyy h:mm:ss tt","M-d-yyyy h:mm:s tt","M-d-yyyy h:m:ss tt","M-d-yyyy h:m:s tt"]}return this._dateTimeFormats};_CultureInfo.prototype._getMonthIndex=function(value){var self=this;if(!self._upperMonths){self._upperMonths=__toUpperArray(self.dateTimeFormat.MonthNames);self._upperMonthsGenitive=__toUpperArray(self.dateTimeFormat.MonthGenitiveNames)}return __getIndex(value,self._upperMonths,self._upperMonthsGenitive)};_CultureInfo.prototype._getAbbrMonthIndex=function(value){var self=this;if(!self._upperAbbrMonths){self._upperAbbrMonths=__toUpperArray(self.dateTimeFormat.AbbreviatedMonthNames);self._upperAbbrMonthsGenitive=__toUpperArray(self.dateTimeFormat.AbbreviatedMonthGenitiveNames)}return __getIndex(value,self._upperAbbrMonths,self._upperAbbrMonthsGenitive)};_CultureInfo.prototype._getDayIndex=function(value){var self=this;if(!self._upperDays){self._upperDays=__toUpperArray(self.dateTimeFormat.DayNames)}return new _ArrayHelper(self._upperDays).indexOf(__toUpper(value))};_CultureInfo.prototype._getAbbrDayIndex=function(value){var self=this;if(!self._upperAbbrDays){self._upperAbbrDays=__toUpperArray(self.dateTimeFormat.AbbreviatedDayNames)}return new _ArrayHelper(self._upperAbbrDays).indexOf(__toUpper(value))};_CultureInfo._parseCulture=function(value){var dtf=value.dateTimeFormat;return new _CultureInfo(value.name,value.numberFormat,dtf)};_CultureInfo.prototype._parse=function(value){return _CultureInfo._parseCulture(value)};_CultureInfo.invariantCulture=function(){var cultureClass=_CultureInfo;if(!cultureClass._invariantCulture){cultureClass._invariantCulture=new _CultureInfo("",new _NumberFormatInfo(""),new _DateTimeFormatInfo(""))}return cultureClass._invariantCulture};_CultureInfo.currentCulture=function(cultureName){var cultureClass=_CultureInfo;if(arguments.length===0){if(!cultureClass._currentCulture){cultureClass._currentCulture=cultureClass.invariantCulture()}}else
{cultureClass._currentCulture=cultureClass.getCulture(cultureName)}return cultureClass._currentCulture};_CultureInfo.enCulture=function(){var cultureClass=_CultureInfo;if(!cultureClass._enCulture){cultureClass._enCulture=new _CultureInfo("en-US",new _NumberFormatInfo("en-US"),new _DateTimeFormatInfo("en-US"))}return cultureClass._enCulture};_CultureInfo.japanCulture=function(){var cultureClass=_CultureInfo;if(!cultureClass._japanCulture){var jpCulture=new _CultureInfo("ja-JP",new _NumberFormatInfo("ja-JP"),new _DateTimeFormatInfo("ja-JP"));jpCulture.numberFormat.CurrencyDecimalDigits=0;jpCulture.numberFormat.CurrencySymbol="\uffe5";jpCulture.numberFormat.PercentPositivePattern=1;jpCulture.numberFormat.PercentNegativePattern=1;jpCulture.dateTimeFormat.AbbreviatedDayNames=["\u65e5","\u6708","\u706b","\u6c34","\u6728","\u91d1","\u571f"];jpCulture.dateTimeFormat.AbbreviatedMonthNames=["1","2","3","4","5","6","7","8","9","10","11","12",""];jpCulture.dateTimeFormat.AbbreviatedMonthGenitiveNames=["1","2","3","4","5","6","7","8","9","10","11","12",""];jpCulture.dateTimeFormat.AMDesignator="\u5348\u524d";jpCulture.dateTimeFormat.DayNames=["\u65e5\u66dc\u65e5","\u6708\u66dc\u65e5","\u706b\u66dc\u65e5","\u6c34\u66dc\u65e5","\u6728\u66dc\u65e5","\u91d1\u66dc\u65e5","\u571f\u66dc\u65e5"];jpCulture.dateTimeFormat.FullDateTimePattern="yyyy'\u5e74'M'\u6708'd'\u65e5' H:mm:ss";jpCulture.dateTimeFormat.LongDatePattern="yyyy'\u5e74'M'\u6708'd'\u65e5'";jpCulture.dateTimeFormat.LongTimePattern="H:mm:ss";jpCulture.dateTimeFormat.MonthDayPattern="M'\u6708'd'\u65e5'";jpCulture.dateTimeFormat.MonthGenitiveNames=["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708",""];jpCulture.dateTimeFormat.MonthNames=["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708",""];jpCulture.dateTimeFormat.NativeCalendarName="\u897f\u66a6 (\u65e5\u672c\u8a9e)";jpCulture.dateTimeFormat.PMDesignator="\u5348\u5f8c";jpCulture.dateTimeFormat.ShortDatePattern="yyyy/MM/dd";jpCulture.dateTimeFormat.ShortTimePattern="H:mm";jpCulture.dateTimeFormat.ShortestDayNames=["\u65e5","\u6708","\u706b","\u6c34","\u6728","\u91d1","\u571f"];jpCulture.dateTimeFormat.YearMonthPattern="yyyy'\u5e74'M'\u6708'";jpCulture.dateTimeFormat.eras=_EraHelper;var dateTimeFormats=jpCulture._getDateTimeFormats().slice(0);dateTimeFormats.push("");cultureClass._japanCulture=jpCulture}return cultureClass._japanCulture};_CultureInfo.getCulture=function(cultureName){cultureName=cultureName.toLowerCase();switch(cultureName){case"ja-jp":return _CultureInfo.japanCulture();case"en-us":return _CultureInfo.enCulture();default:return _CultureInfo.invariantCulture()}};return _CultureInfo})();spread._CultureInfo=_CultureInfo;var _StringHelper=(function(){function _StringHelper(str){this._str=str}_StringHelper.__toFormattedString=function(useLocale,args){var result='';var format=args[0];for(var i=0;;){var open=format.indexOf('{',i);var close=format.indexOf('}',i);if((open<0)&&(close<0)){result+=format.slice(i);break}if((close>0)&&((close<open)||(open<0))){if(format.charAt(close+1)!=='}'){throw new Error(spread.SR.Exp_BraceMismatch);}result+=format.slice(i,close+1);i=close+2;continue}result+=format.slice(i,open);i=open+1;if(format.charAt(i)==='{'){result+='{';i++;continue}if(close<0){throw new Error(spread.SR.Exp_BraceMismatch);}var brace=format.substring(i,close);var colonIndex=brace.indexOf(':');var argNumber=parseInt((colonIndex<0)?brace:brace.substring(0,colonIndex),10)+1;if(isNaN(argNumber)){throw new Error(spread.SR.Exp_InvalidFormat);}var argFormat=(colonIndex<0)?'':brace.substring(colonIndex+1);var arg=args[argNumber];if(typeof(arg)===const_undefined||arg===keyword_null){arg=''}if(arg.toFormattedString){result+=arg.toFormattedString(argFormat)}else if(useLocale&&arg.localeFormat){result+=arg.localeFormat(argFormat)}else if(arg.format){result+=arg.format(argFormat)}else
{result+=arg.toString()}i=close+1}return result};_StringHelper.prototype.startsWith=function(prefix){return(this._str.substr(0,prefix.length)===prefix)};_StringHelper.prototype.endsWith=function(suffix){return this._str.indexOf(suffix,this._str.length-suffix.length)!==-1};_StringHelper.prototype.trim=function(){return this._str.replace(/^\s+|\s+$/g,'')};_StringHelper.prototype.trimEnd=function(){return this._str.replace(/\s+$/,'')};_StringHelper.prototype.trimStart=function(){return this._str.replace(/^\s+/,'')};_StringHelper.prototype.format=function(format,args){var args2=[];args2.push(format);for(var i=0;i<args.length;i++){args2.push(args[i])}return _StringHelper.__toFormattedString(false,args2)};return _StringHelper})();spread._StringHelper=_StringHelper;var StringHelper=(function(){function StringHelper(){}StringHelper.Contains=function(str,value){return value===""||str.indexOf(value)>=0};StringHelper.IndexOf=function(str,value,comparisonType){if(!comparisonType){return str.indexOf(value)}else if(comparisonType===1){var tempStr=str.toLowerCase();var tempValue=value.toLowerCase();return tempStr.indexOf(tempValue)}else
{return str.indexOf(value)}};StringHelper.TrimStart=function(str,trimChar){if(!trimChar){return str}var temp=str;while(true){if(temp.substr(0,trimChar.length)!==trimChar){break}temp=temp.substr(trimChar.length)}return temp};StringHelper.TrimEnd=function(str,trimChar){if(!trimChar){return str}var temp=str;while(true){if(temp.substr(temp.length-trimChar.length,trimChar.length)!==trimChar){break}temp=temp.substr(0,temp.length-trimChar.length)}return temp};StringHelper.Trim=function(str,trimChar){var temp=trimChar;if(!trimChar){temp=" "}str=StringHelper.TrimStart(str,temp);str=StringHelper.TrimEnd(str,temp);return str};StringHelper.Insert=function(str,startIndex,value){if(startIndex<0||startIndex>str.length||value===keyword_null||value===keyword_undefined){throw new Error;}var tempStrStart=str.substr(0,startIndex);var tempStrEnd=str.substr(startIndex,str.length-startIndex);return tempStrStart+value+tempStrEnd};StringHelper.Remove=function(str,startIndex,count){if(count===keyword_undefined||count===keyword_null){count=str.length-startIndex}if(startIndex<0||count<0||startIndex+count>str.length){throw new Error;}var valueStart=str.substr(0,startIndex);var valueEnd=str.substr(startIndex+count,str.length-startIndex-count);return valueStart+valueEnd};StringHelper.StartsWith=function(str,value,comparisonType){if(!value){throw new Error;}if(value===""){return true}if(value.length>str.length){return false}var thisStr=str;var valueStr=value;if(comparisonType===1){thisStr=thisStr.toLowerCase();valueStr=valueStr.toLowerCase()}return thisStr.search(new RegExp("^"+valueStr))>-1};StringHelper.EndsWith=function(str,value,comparisonType){if(!value){throw new Error;}if(value===""){return true}if(value.length>str.length){return false}var thisStr=str;var valueStr=value;if(comparisonType===1){thisStr=thisStr.toLowerCase();valueStr=valueStr.toLowerCase()}return thisStr.search(new RegExp(valueStr+"$"))>-1};StringHelper.Replace=function(str,oldValue,newValue){if(!oldValue||oldValue===""){throw new Error;}var re=new RegExp(oldValue,"g");return str.replace(re,newValue)};return StringHelper})();spread.StringHelper=StringHelper;var _DateTimeHelper=(function(){function _DateTimeHelper(date){this._date=date}_DateTimeHelper.prototype.Hour=function(){return this._date.getHours()};_DateTimeHelper.prototype.Minute=function(){return this._date.getMinutes()};_DateTimeHelper.prototype.Second=function(){return this._date.getSeconds()};_DateTimeHelper.prototype.Millisecond=function(){return this._date.getMilliseconds()};_DateTimeHelper.prototype.TotalDays=function(){return Math_floor(this.toOADate())};_DateTimeHelper.prototype.toOADate=function(){return _DateTimeHelper.___toOADate(this._date)};_DateTimeHelper.prototype.format=function(format){return this._toFormattedString(format,_CultureInfo.currentCulture())};_DateTimeHelper.prototype.customCultureFormat=function(format,cultureInfo){if(!cultureInfo){cultureInfo=_CultureInfo.currentCulture()}return this._toFormattedString(format,cultureInfo)};_DateTimeHelper.prototype.localeFormat=function(format){return this._toFormattedString(format,_CultureInfo.currentCulture())};_DateTimeHelper.prototype._toFormattedString=function(format,cultureInfo){var self=this;var dtf=cultureInfo.DateTimeFormat(),convert=dtf.Calendar.convert;if(!format||!format.length||(format==='i')){if(cultureInfo&&cultureInfo.Name().length){if(convert){return self._toFormattedString(dtf.FullDateTimePattern,cultureInfo)}else
{return self._date.toLocaleString()}}else
{return self._date.toString()}}var eras=dtf.eras,sortable=(format==="s");format=_DateTimeHelper.__expandFormat(dtf,format);var ret=new _StringBuilder;var hour;var foundDay,checkedDay,dayPartRegExp=/([^d]|^)(d|dd)([^d]|$)/g;function hasDay(){if(foundDay||checkedDay){return foundDay}foundDay=dayPartRegExp.test(format);checkedDay=true;return foundDay}var quoteCount=0,tokenRegExp=_DateTimeHelper.__getTokenRegExp(),converted;if(!sortable&&convert){converted=convert.fromGregorian(self._date)}function getPart(date,part){if(converted){return converted[part]}switch(part){case 0:return date.getFullYear();case 1:return date.getMonth();case 2:return date.getDate()}}var eraDateInfo=keyword_null;var eraIndex=-2;var eraYearIndex=-2;for(var tokenIndex=0;;tokenIndex++){var index=tokenRegExp.lastIndex;var ar=tokenRegExp.exec(format);var preMatch=format.slice(index,ar?ar.index:format.length);quoteCount+=_DateTimeHelper.__appendPreOrPostMatch(preMatch,ret);if(!ar){break}if((quoteCount%2)===1){ret.append(ar[0]);continue}switch(ar[0]){case"dddd":ret.append(dtf.DayNames[self._date.getDay()]);break;case"ddd":ret.append(dtf.AbbreviatedDayNames[self._date.getDay()]);break;case"dd":foundDay=true;ret.append(_DateTimeHelper.___addLeadingZero(getPart(self._date,2)));break;case"d":foundDay=true;ret.append(getPart(self._date,2));break;case"MMMM":ret.append((dtf.MonthGenitiveNames&&hasDay())?dtf.MonthGenitiveNames[getPart(self._date,1)]:dtf.MonthNames[getPart(self._date,1)]);break;case"MMM":ret.append((dtf.AbbreviatedMonthGenitiveNames&&hasDay())?dtf.AbbreviatedMonthGenitiveNames[getPart(self._date,1)]:dtf.AbbreviatedMonthNames[getPart(self._date,1)]);break;case"MM":ret.append(_DateTimeHelper.___addLeadingZero(getPart(self._date,1)+1));break;case"M":ret.append(getPart(self._date,1)+1);break;case"yyyy":case"yyy":if(eraIndex>=0){eras.formatEraPart("ee",self._date,ret)}else
{ret.append(_DateTimeHelper.___padYear(converted?converted[0]:self._date.getFullYear()))}break;case"yy":if(eraIndex>=0){eras.formatEraPart("ee",self._date,ret)}else
{ret.append(_DateTimeHelper.___addLeadingZero((converted?converted[0]:self._date.getFullYear())%100))}break;case"y":if(eraIndex>=0){eras.formatEraPart("e",self._date,ret)}else
{ret.append(((converted?converted[0]:self._date.getFullYear())%100).toString())}break;case"hh":hour=self._date.getHours()%12;if(hour===0){hour=12}ret.append(_DateTimeHelper.___addLeadingZero(hour));break;case"h":hour=self._date.getHours()%12;if(hour===0){hour=12}ret.append(hour);break;case"HH":ret.append(_DateTimeHelper.___addLeadingZero(self._date.getHours()));break;case"H":ret.append(self._date.getHours().toString());break;case"mm":ret.append(_DateTimeHelper.___addLeadingZero(self._date.getMinutes()));break;case"m":ret.append(self._date.getMinutes().toString());break;case"ss":ret.append(_DateTimeHelper.___addLeadingZero(self._date.getSeconds()));break;case"s":ret.append(self._date.getSeconds().toString());break;case"tt":ret.append((self._date.getHours()<12)?dtf.AMDesignator:dtf.PMDesignator);break;case"t":ret.append(((self._date.getHours()<12)?dtf.AMDesignator:dtf.PMDesignator).charAt(0));break;case"f":ret.append(_DateTimeHelper.___addLeadingZeros(self._date.getMilliseconds()).charAt(0));break;case"ff":ret.append(_DateTimeHelper.___addLeadingZeros(self._date.getMilliseconds()).substr(0,2));break;case"fff":ret.append(_DateTimeHelper.___addLeadingZeros(self._date.getMilliseconds()));break;case"z":hour=self._date.getTimezoneOffset()/60;ret.append(((hour<=0)?'+':'-')+Math_floor(Math_abs(hour)));break;case"zz":hour=self._date.getTimezoneOffset()/60;ret.append(((hour<=0)?'+':'-')+_DateTimeHelper.___addLeadingZero(Math_floor(Math_abs(hour))));break;case"zzz":hour=self._date.getTimezoneOffset()/60;ret.append(((hour<=0)?'+':'-')+_DateTimeHelper.___addLeadingZero(Math_floor(Math_abs(hour)))+":"+_DateTimeHelper.___addLeadingZero(Math_abs(self._date.getTimezoneOffset()%60)));break;case"g":case"gg":case"ggg":if(!eras){break}if(eraIndex===tokenIndex-1){eraIndex=tokenIndex;break}else
{eras.formatEraPart(ar[0],self._date,ret);eraIndex=tokenIndex}break;case"e":case"ee":if(!eras){ret.append(_DateTimeHelper.___padYear(converted?converted[0]:self._date.getFullYear()));break}else if(eraYearIndex===tokenIndex-1){eraYearIndex=tokenIndex;break}else
{eras.formatEraPart(ar[0],self._date,ret);eraYearIndex=tokenIndex}break;case"/":ret.append(dtf.DateSeparator);break;case"[h]":ret.append("[h]");break;case"[mm]":ret.append("[mm]");break;case"[ss]":ret.append("[ss]");break;default:throw new Error(spread.SR.Exp_InvalidDateFormat);}}return ret.toString()};_DateTimeHelper.parseLocale=function(value,formats){var args;if(formats){args=[value,formats]}else
{args=[value]}return _DateTimeHelper._parseDate(value,_CultureInfo.currentCulture(),args)};_DateTimeHelper.parseInvariant=function(value,formats){return _DateTimeHelper._parseDate(value,_CultureInfo.invariantCulture(),[value,formats])};_DateTimeHelper.__appendPreOrPostMatch=function(preMatch,strBuilder){var quoteCount=0;var escaped=false;for(var i=0,il=preMatch.length;i<il;i++){var c=preMatch.charAt(i);switch(c){case'\'':case'\"':if(escaped){strBuilder.append("'")}else
{quoteCount++}escaped=false;break;case'\\':if(escaped){strBuilder.append("\\")}escaped=!escaped;break;default:strBuilder.append(c);escaped=false;break}}return quoteCount};_DateTimeHelper.__expandFormat=function(dtf,format){if(!format){format="F"}var len=format.length;if(len===1){switch(format){case"d":return dtf.ShortDatePattern;case"D":return dtf.LongDatePattern;case"t":return dtf.ShortTimePattern;case"T":return dtf.LongTimePattern;case"f":return dtf.LongDatePattern+" "+dtf.ShortTimePattern;case"F":return dtf.FullDateTimePattern;case"M":case"m":return dtf.MonthDayPattern;case"s":return dtf.SortableDateTimePattern;case"Y":case"y":return dtf.YearMonthPattern;case"g":case"G":case"e":return format;case"R":case"r":return dtf.RFC1123Pattern;case"u":return dtf.UniversalSortableDateTimePattern;case"U":return dtf.FullDateTimePattern;case"o":case"O":return"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss\'.\'fffffff";default:throw new Error(spread.SR.Exp_InvalidString);}}else if((len===2)&&(format.charAt(0)==="%")){format=format.charAt(1)}return format};_DateTimeHelper.__expandYear=function(cultureInfo,year){var now=new Date;var eras=cultureInfo.DateTimeFormat().eras;if(eras&&year<100){var curr=eras.getEraDate(now).eraYear;year+=curr-(curr%100);if(year>cultureInfo.DateTimeFormat().Calendar.TwoDigitYearMax){year-=100}}return year};_DateTimeHelper.__getTokenRegExp=function(){return/\/|dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z|ggg|gg|g|ee|e|\[h\]|\[mm\]|\[ss\]/g};_DateTimeHelper.__getParseRegExp=function(dtf,format){if(!dtf._parseRegExp){dtf._parseRegExp={}}else if(dtf._parseRegExp[format]){return dtf._parseRegExp[format]}var expFormat=_DateTimeHelper.__expandFormat(dtf,format);expFormat=expFormat.replace("%M","M");expFormat=expFormat.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g,"\\\\$1");var regexp=new _StringBuilder("^");var groups=new _ArrayHelper([]);var index=0;var quoteCount=0;var tokenRegExp=_DateTimeHelper.__getTokenRegExp();var match;while((match=tokenRegExp.exec(expFormat))!==keyword_null){var preMatch=expFormat.slice(index,match.index);index=tokenRegExp.lastIndex;quoteCount+=_DateTimeHelper.__appendPreOrPostMatch(preMatch,regexp);if((quoteCount%2)===1){regexp.append(match[0]);continue}switch(match[0]){case'dddd':case'ddd':case'MMMM':case'MMM':case'gggg':case'ggg':case'gg':case'g':regexp.append("(\\D+)");break;case'tt':case't':regexp.append("(\\D*)");break;case'yyy':case'yyyy':regexp.append("(\\d{4})");break;case'fff':regexp.append("(\\d{3})");break;case'ff':regexp.append("(\\d{2})");break;case'f':regexp.append("(\\d)");break;case'dd':case'd':case'MM':case'M':case'yy':case'y':case'eee':case'ee':case'e':case'HH':case'H':case'hh':case'h':case'mm':case'm':case'ss':case's':regexp.append("(\\d\\d?)");break;case'zzz':regexp.append("([+-]?\\d\\d?:\\d{2})");break;case'zz':case'z':regexp.append("([+-]?\\d\\d?)");break;case'/':regexp.append("(\\"+dtf.DateSeparator+")");break;default:throw new Error(spread.SR.Exp_InvalidDateFormat);}groups.add(match[0])}_DateTimeHelper.__appendPreOrPostMatch(expFormat.slice(index),regexp);regexp.append("$");var regexpStr=regexp.toString().replace(/\s+/g,"\\s+");var parseRegExp={regExp:regexpStr,groups:groups.array()};dtf._parseRegExp[format]=parseRegExp;return parseRegExp};_DateTimeHelper._parseDateExact=function(value,format,cultureInfo){value=$.trim(value);var dtf=cultureInfo.DateTimeFormat(),parseInfo=_DateTimeHelper.__getParseRegExp(dtf,format),match=new RegExp(parseInfo.regExp).exec(value);if(match===keyword_null){return keyword_null}var groups=parseInfo.groups,era=keyword_null,year=keyword_null,month=keyword_null,date=keyword_null,weekDay=keyword_null,hour=0,hourOffset,min=0,sec=0,msec=0,tzMinOffset=keyword_null,pmHour=false;var isTimeSpan=true;for(var j=0,jl=groups.length;j<jl;j++){var matchGroup=match[j+1];if(matchGroup){switch(groups[j]){case'dd':case'd':isTimeSpan=false;date=parseInt(matchGroup,10);if((date<1)||(date>31)){return keyword_null}break;case'MMMM':isTimeSpan=false;month=cultureInfo._getMonthIndex(matchGroup);if((month<0)||(month>11)){return keyword_null}break;case'MMM':isTimeSpan=false;month=cultureInfo._getAbbrMonthIndex(matchGroup);if((month<0)||(month>11)){return keyword_null}break;case'M':case'MM':case'%M':isTimeSpan=false;month=parseInt(matchGroup,10)-1;if((month<0)||(month>11)){return keyword_null}break;case'e':case'ee':isTimeSpan=false;year=_DateTimeHelper.__expandYear(cultureInfo,parseInt(matchGroup,10));if((year<0)||(year>9999)){return keyword_null}break;case'y':case'yy':case'yyy':case'yyyy':isTimeSpan=false;year=parseInt(matchGroup,10);if((year<0)||(year>9999)){return keyword_null}break;case'h':case'hh':case'H':case'HH':hour=parseInt(matchGroup,10);if((hour<0)||(hour>23)){return keyword_null}break;case'm':case'mm':min=parseInt(matchGroup,10);if((min<0)||(min>59)){return keyword_null}break;case's':case'ss':sec=parseInt(matchGroup,10);if((sec<0)||(sec>59)){return keyword_null}break;case'tt':case't':var upperToken=matchGroup.toUpperCase();pmHour=(upperToken===dtf.PMDesignator.toUpperCase());if(!pmHour&&(upperToken!==dtf.AMDesignator.toUpperCase())){return keyword_null}break;case'f':msec=parseInt(matchGroup,10)*100;if((msec<0)||(msec>999)){return keyword_null}break;case'ff':msec=parseInt(matchGroup,10)*10;if((msec<0)||(msec>999)){return keyword_null}break;case'fff':msec=parseInt(matchGroup,10);if((msec<0)||(msec>999)){return keyword_null}break;case'dddd':isTimeSpan=false;weekDay=cultureInfo._getDayIndex(matchGroup);if((weekDay<0)||(weekDay>6)){return keyword_null}break;case'ddd':isTimeSpan=false;weekDay=cultureInfo._getAbbrDayIndex(matchGroup);if((weekDay<0)||(weekDay>6)){return keyword_null}break;case'zzz':var offsets=matchGroup.split(/:/);if(offsets.length!==2){return keyword_null}hourOffset=parseInt(offsets[0],10);if((hourOffset<-12)||(hourOffset>13)){return keyword_null}var minOffset=parseInt(offsets[1],10);if((minOffset<0)||(minOffset>59)){return keyword_null}tzMinOffset=(hourOffset*60)+(new _StringHelper(matchGroup).startsWith('-')?-minOffset:minOffset);break;case'z':case'zz':hourOffset=parseInt(matchGroup,10);if((hourOffset<-12)||(hourOffset>13)){return keyword_null}tzMinOffset=hourOffset*60;break;case'g':case'gg':case"ggg":var eraName=matchGroup;if(!eraName||!dtf.eras){return keyword_null}era=dtf.eras.parseEraPart(groups[j],eraName);if(era<0){return keyword_null}break}}}var result=new Date,defaults,convert=dtf.Calendar.convert;if(convert){defaults=convert.fromGregorian(result)}if(!convert){defaults=[result.getFullYear(),result.getMonth(),result.getDate()]}if(year===keyword_null){year=defaults[0]}else if(year<100){if(dtf.eras){year=dtf.eras.getYearFromEra(era||0,year)}else
{if(year>=30){year+=1900}else
{year+=2000}}}if(month===keyword_null){month=defaults[1]}if(date===keyword_null){date=defaults[2]}if(convert){result=convert.toGregorian(year,month,date);if(result===keyword_null){return keyword_null}}else
{result.setFullYear(year,month,date);if(result.getDate()!==date){return keyword_null}if((weekDay!==keyword_null)&&(result.getDay()!==weekDay)){return keyword_null}}if(pmHour&&(hour<12)){hour+=12}result.setHours(hour,min,sec,msec);if(tzMinOffset!==keyword_null){var adjustedMin=result.getMinutes()-(tzMinOffset+result.getTimezoneOffset());result.setHours(result.getHours()+adjustedMin/60,adjustedMin%60)}return result};_DateTimeHelper.___addLeadingZero=function(num){return num<10?('0'+num):num.toString()};_DateTimeHelper.___addLeadingZeros=function(num){return num<10?('00'+num):(num<100?('0'+num):num.toString())};_DateTimeHelper.___padYear=function(year){return year<10?('000'+year):(year<100?('00'+year):(year<1000?('0'+year):year.toString()))};_DateTimeHelper._parseDate=function(value,cultureInfo,args){var i,l,date,format,formats,custom=false;for(i=1,l=args.length;i<l;i++){format=args[i];if(format){custom=true;date=_DateTimeHelper._parseDateExact(value,format,cultureInfo);if(date){return date}}}if(!custom){formats=cultureInfo._getDateTimeFormats();for(i=0,l=formats.length;i<l;i++){date=_DateTimeHelper._parseDateExact(value,formats[i],cultureInfo);if(date){return date}}}return keyword_null};_DateTimeHelper.___toOADate=function(date){if(date===keyword_undefined||date===keyword_null){return 0}if(typeof date==="number"){date=new Date(date)}return(date.getTime()*1440+25569*86400000*1440-date.getTimezoneOffset()*86400000)/(86400000*1440)};_DateTimeHelper._fromOADate=function(oadate){var date=new Date((oadate-25569)*86400000);return new Date((oadate*86400000-25569*86400000+(date.getTimezoneOffset()*86400000/1440)))};_DateTimeHelper.parseExact=_DateTimeHelper._parseDateExact;_DateTimeHelper.fromOADate=_DateTimeHelper._fromOADate;return _DateTimeHelper})();spread._DateTimeHelper=_DateTimeHelper;var parsedFormat=(function(){function parsedFormat(normal,negative,zero){this.normal=normal;this.negative=negative;this.zero=zero}return parsedFormat})();var parsedFormatPart=(function(){function parsedFormatPart(){var self=this;self.intPart=keyword_null;self.decPart=keyword_null;self.group=false;self.scale=0;self.percent=0;self.permile=0;self.exponent=keyword_null}return parsedFormatPart})();var _NumberHelper=(function(){function _NumberHelper(num){this._num=num}_NumberHelper.prototype.format=function(format){return this._toFormattedString(format,_CultureInfo.invariantCulture())};_NumberHelper.prototype.localeFormat=function(format){return this._toFormattedString(format,_CultureInfo.currentCulture())};_NumberHelper.prototype.customCultureFormat=function(format,cultureInfo){if(!cultureInfo){cultureInfo=_CultureInfo.currentCulture()}return this._toFormattedString(format,cultureInfo)};_NumberHelper.prototype._toFormattedString=function(format,cultureInfo){var self=this;if(!format||(format.length===0)||(format==='i')){if(cultureInfo&&(cultureInfo.Name().length>0)){return self._num.toLocaleString()}else
{return self._num.toString()}}if(_NumberHelper.__getStandardTokenRegExp().test(format)){return self._toStandardFormattedString(format,cultureInfo.NumberFormat())}else
{return self._toCustomFormattedString(format,cultureInfo.NumberFormat())}};_NumberHelper.prototype._toStandardFormattedString=function(format,nf){var self=this;var num=Math_abs(self._num).toString();if(!format){format="D"}var precision=-1;if(format.length>1){precision=parseInt(format.slice(1),10)}var pattern,resultArray;switch(format.charAt(0)){case"d":case"D":pattern='n';if(precision!==-1){num=_NumberHelper.___zeroPad(""+num,precision,true)}if(self._num<0){num="-"+num}break;case"c":case"C":if(self._num<0){pattern=_NumberHelper.___currencyNegativePattern[nf.CurrencyNegativePattern]}else
{pattern=_NumberHelper.___currencyPositivePattern[nf.CurrencyPositivePattern]}if(precision===-1){precision=nf.CurrencyDecimalDigits}num=_NumberHelper.___expandNumber(Math_abs(self._num),precision,nf.CurrencyGroupSizes,nf.CurrencyGroupSeparator,nf.CurrencyDecimalSeparator,nf.NegativeSign);break;case"n":case"N":if(self._num<0){pattern=_NumberHelper.___numberNegativePattern[nf.NumberNegativePattern]}else
{pattern='n'}if(precision===-1){precision=nf.NumberDecimalDigits}num=_NumberHelper.___expandNumber(Math_abs(self._num),precision,nf.NumberGroupSizes,nf.NumberGroupSeparator,nf.NumberDecimalSeparator,nf.NegativeSign);break;case"p":case"P":if(self._num<0){pattern=_NumberHelper.___percentNegativePattern[nf.PercentNegativePattern]}else
{pattern=_NumberHelper.___percentPositivePattern[nf.PercentPositivePattern]}if(precision===-1){precision=nf.PercentDecimalDigits}num=_NumberHelper.___expandNumber(Math_abs(self._num)*100,precision,nf.PercentGroupSizes,nf.PercentGroupSeparator,nf.PercentDecimalSeparator,nf.NegativeSign);break;case"F":case"f":resultArray=self._toFixedPoint(num,pattern,format,precision,nf);num=resultArray[0];pattern=resultArray[1];break;case"e":case"E":resultArray=self._toScientificNotation(num,pattern,format,precision,nf);num=resultArray[0];pattern=resultArray[1];break;case"x":case"X":pattern="n";num=_NumberHelper.___toHexString(self._num,format.charAt(0)==='x',precision===-1?0:precision);break;case"g":case"G":var numToStr=self._num.toString();resultArray=[];if((numToStr.indexOf("e"))===-1&&(numToStr.indexOf("E")===-1)){resultArray=self._toFixedPoint(num,pattern,format,precision,nf)}else
{resultArray=self._toScientificNotation(num,pattern,format.replace("g","e").replace("G","E"),precision,nf)}num=resultArray[0];pattern=resultArray[1];break;default:throw new Error(spread.SR.Exp_BadFormatSpecifier);}var regex=/n|\$|-|%/g;var ret="";for(;;){var index=regex.lastIndex;var ar=regex.exec(pattern);ret+=pattern.slice(index,ar?ar.index:pattern.length);if(!ar){break}switch(ar[0]){case"n":ret+=num;break;case"$":ret+=nf.CurrencySymbol;break;case"-":if(/[1-9]/.test(num)){ret+=nf.NegativeSign}break;case"%":ret+=nf.PercentSymbol;break;default:throw new Error(spread.SR.Exp_InvalidNumberFormat);}}return ret};_NumberHelper.prototype._toScientificNotation=function(num,pattern,format,precision,nf){pattern="n";num=_NumberHelper.___toScientific(Math_abs(this._num),format.charAt(0),precision===-1?6:precision,nf.NumberGroupSizes,nf.NumberGroupSeparator,nf.NumberDecimalSeparator,nf.NegativeSign);if(this._num<0){num="-"+num}return[num,pattern]};_NumberHelper.prototype._toFixedPoint=function(num,pattern,format,precision,nf){if(this._num<0){pattern=_NumberHelper.___numberNegativePattern[nf.NumberNegativePattern]}else
{pattern='n'}if(precision===-1){precision=2}var numberValue=parseFloat(num);var integer=Math_floor(numberValue);var dec=numberValue-integer;num=_NumberHelper.___expandNumber(dec,precision,nf.NumberGroupSizes,nf.NumberGroupSeparator,nf.NumberDecimalSeparator,nf.NegativeSign);num=""+integer+num.substring(1);return[num,pattern]};_NumberHelper.prototype._toCustomFormattedString=function(format,nf){var parsedFormat=_NumberHelper.___parseCustomNumberFormatter(format);var formatter=keyword_null;if(this._num===0){formatter=parsedFormat.zero}else if(this._num<0){formatter=parsedFormat.negative}if(!formatter){formatter=parsedFormat.normal}var result=_NumberHelper.___formatNumber(this._num,formatter,nf)+"";if((result.indexOf(nf.NegativeSign)===1)&&(result.indexOf(nf.CurrencySymbol)===0)){result=result[1]+result[0]+result.substring(2)}return result};_NumberHelper.parseLocale=function(value){return _NumberHelper.__parseNumber(value,_CultureInfo.currentCulture())};_NumberHelper.parseInvariant=function(value){return _NumberHelper.__parseNumber(value,_CultureInfo.invariantCulture())};_NumberHelper.__getStandardTokenRegExp=function(){return/^(C|c|D|d|E|e|F|f|G|g|N|n|P|p|R|r|X|x)(\d*)$/g};_NumberHelper.___getDigitLength=function(value,separator){var ip=Math_floor(Math_abs(value));var digit={integer:1,decimal:0};while(ip>=10){ip=ip/10;digit.integer++}var valueStr=value.toString();var exponentIndex=valueStr.search(/e/ig);var pointIndex=valueStr.indexOf(separator);var length;if(exponentIndex!==-1){var numPart=valueStr.substr(0,exponentIndex);var expPart=valueStr.substr(exponentIndex+1);var decimalPartLength=0;if(pointIndex!==-1){decimalPartLength=numPart.substr(pointIndex+1).length}var expValue=parseFloat(expPart);length=decimalPartLength-expValue;if(length<0){length=0}digit.decimal=length}else
{length=0;if(pointIndex!==-1){length=valueStr.substr(pointIndex+1).length}digit.decimal=length}return digit};_NumberHelper.___parseExponentFormat=function(format){var exponent={symbol:format.charAt(0),sign:0,exp:0};var ss='';for(var si=1;si<format.length;si++){ss=format.charAt(si);if(ss==='+'){exponent.sign=1}else if(ss==='-'){exponent.sign=-1}else if(ss==='0'){exponent.exp=format.length-si;break}else
{throw new Error(spread.SR.Exp_InvalidExponentFormat);}}return exponent};_NumberHelper.___parseCustomNumberFormatter=function(format){var partNormal=keyword_null,partNegative=keyword_null,partZero=keyword_null;var partCurr=new parsedFormatPart;var strBuf='',insqStr=false,indqStr=false,inESC=false,inSci=false,decPointFound=false,groupSepFound=false,sciFound=false,intPlaceHoldFound=false;var curChar=keyword_null,prevChar=keyword_null,curPart=[];for(var i=0;i<format.length;i++){curChar=format.charAt(i);if(insqStr){if(curChar!=='\''){strBuf+=curChar}else
{curPart.push(strBuf);strBuf='';insqStr=false}prevChar=curChar;continue}else if(indqStr){if(curChar!=='"'){strBuf+=curChar}else
{curPart.push(strBuf);strBuf='';indqStr=false}prevChar=curChar;continue}else if(inESC){curPart.push(strBuf+curChar);strBuf='';prevChar=curChar;continue}else if(inSci){if(prevChar==='E'||prevChar==='e'){if(curChar==='+'||curChar==='-'||curChar==='0'){strBuf+=curChar;continue}else
{inSci=false}}else if(prevChar==='+'||prevChar==='-'){if(curChar==='0'){strBuf+=curChar;continue}else
{inSci=false;curPart.push(strBuf);strBuf=''}}else if(prevChar==='0'){if(curChar==='0'){strBuf+=curChar;continue}else
{inSci=false;if(!sciFound){sciFound=true;partCurr.exponent=_NumberHelper.___parseExponentFormat(strBuf)}curPart.push(strBuf);strBuf=''}}}else if((curChar==='0'||curChar==='#')){intPlaceHoldFound=true;if(prevChar==='0'||prevChar==='#'){strBuf+=curChar;prevChar=curChar;continue}else if(strBuf!==''){curPart.push(strBuf);strBuf=''}}else if((prevChar==='0'||prevChar==='#')&&curChar!=='0'&&curChar!=='#'){curPart.push(strBuf);strBuf=''}if(curChar===';'){if(strBuf!==''){if(inSci&&!sciFound){partCurr.exponent=_NumberHelper.___parseExponentFormat(strBuf)}curPart.push(strBuf);strBuf=''}if(!decPointFound){partCurr.intPart=curPart}else
{partCurr.decPart=curChar}curPart=[];if(partNormal===keyword_undefined||partNormal===keyword_null){partNormal=partCurr}else if(partNegative===keyword_undefined||partNegative===keyword_null){partNegative=partCurr}else if(partZero===keyword_undefined||partZero===keyword_null){partZero=partCurr}else
{throw new Error(spread.SR.Exp_InvalidSemicolons);}decPointFound=false;intPlaceHoldFound=false;if(groupSepFound){partCurr.group=true;groupSepFound=false}partCurr=new parsedFormatPart}else if(!decPointFound&&curChar==='.'){if(prevChar!=='#'&&prevChar!=='0'){curPart.push(strBuf);strBuf='#'}if(strBuf!==''){curPart.push(strBuf);strBuf=''}partCurr.intPart=curPart;curPart=[];decPointFound=true;intPlaceHoldFound=false;if(groupSepFound){partCurr.group=true;groupSepFound=false}}else if(curChar==='\''){insqStr=true}else if(curChar==='"'){indqStr=true}else if(curChar==='%'){partCurr.percent++;curPart.push(curChar)}else if(curChar==='\u2030'){partCurr.permile++;curPart.push(curChar)}else if(curChar==='0'||curChar==='#'){strBuf+=curChar}else if(curChar===','){if(!decPointFound){if(strBuf!==''){curPart.push(strBuf);strBuf=''}if(!intPlaceHoldFound){continue}var isScale=true,strQuote='';for(var j=i+1;j<format.length;j++){var nextChar=format.charAt(j);if(strQuote!==''){if(nextChar==='\''||nextChar==='"'){strQuote=''}continue}if(nextChar==='\''||nextChar==='"'){strQuote=nextChar}else if(nextChar==='0'||nextChar==='#'){isScale=false;break}else if(nextChar==='.'||nextChar===';'){break}}if(isScale){partCurr.scale++}else
{groupSepFound=true}}else
{if(strBuf!==''){curPart.push(strBuf);strBuf=''}}}else if(curChar==='E'||curChar==='e'){inSci=true;if(strBuf!==''){curPart.push(strBuf)}strBuf=curChar}else
{strBuf+=curChar}prevChar=curChar}if(strBuf!==''){if(inSci&&!sciFound){partCurr.exponent=_NumberHelper.___parseExponentFormat(strBuf)}curPart.push(strBuf)}if(groupSepFound){partCurr.group=true}if(!decPointFound){partCurr.intPart=curPart}else
{partCurr.decPart=curPart}if(partNormal===keyword_undefined||partNormal===keyword_null){partNormal=partCurr}else if(partNegative===keyword_undefined||partNegative===keyword_null){partNegative=partCurr}else if(partZero===keyword_undefined||partZero===keyword_null){partZero=partCurr}return new parsedFormat(partNormal,partNegative,partZero)};_NumberHelper.___zeroPad=function(str,count,left){for(var l=str.length;l<count;l++){str=(left?('0'+str):(str+'0'))}return str};_NumberHelper.__insertGroupSeparator=function(numberString,groupSizes,sep,negativeSign){var curSize=groupSizes[0];var curGroupIndex=1;var stringIndex=numberString.length-1;var stringBuilder=new _StringBuilder("");var numberCount=0;var needSep=false;while(stringIndex>=0){if(curSize<1||curSize>9){throw new Error(spread.SR.Exp_InvalidNumberGroupSize);}if(/\d/ig.test(numberString[stringIndex])){if(needSep){stringBuilder.insert(sep,0);needSep=false}numberCount++}else
{numberCount=0}stringBuilder.insert(numberString[stringIndex],0);if(numberCount===curSize){needSep=true;numberCount=0;if(curGroupIndex<groupSizes.length){curSize=groupSizes[curGroupIndex];curGroupIndex++}}stringIndex--}return stringBuilder.toString()};_NumberHelper.___expandNumber=function(num,precision,groupSizes,sep,decimalChar,negativeSign,noGroupSep){var factor=Math_pow(10,precision);var rounded=(Math_round(num*factor)/factor);if(!isFinite(rounded)){rounded=num}num=rounded;var numberString=num.toString();var right;var exponent;var split=numberString.split(/e/i);numberString=split[0];exponent=(split.length>1?parseInt(split[1],10):0);split=numberString.split('.');numberString=split[0];right=split.length>1?split[1]:"";if(exponent>0){right=_NumberHelper.___zeroPad(right,exponent,false);numberString+=right.slice(0,exponent);right=right.substr(exponent)}else if(exponent<0){exponent=-exponent;if(num<0){numberString=negativeSign+_NumberHelper.___zeroPad(numberString.replace(negativeSign,""),exponent+1,true)}else
{numberString=_NumberHelper.___zeroPad(numberString,exponent+1,true)}right=numberString.slice(-exponent,numberString.length)+right;numberString=numberString.slice(0,-exponent)}if(precision>0){if(right.length>precision){right=right.slice(0,precision)}else
{right=_NumberHelper.___zeroPad(right,precision,false)}right=decimalChar+right}else
{right=""}if(noGroupSep===true){return numberString+right}else
{return _NumberHelper.__insertGroupSeparator(numberString,groupSizes,sep,negativeSign)+right}};_NumberHelper.___formatNumber=function(value,formatter,nf){var resultBuilder=new _StringBuilder('');value=value*(Math_pow(100,formatter.percent));value=value*(Math_pow(1000,formatter.permile));value=value/(Math_pow(10,formatter.scale*3));var intPart=formatter.intPart,decPart=formatter.decPart;if(!intPart&&!decPart){return''}var partIntFormatter=keyword_null,partDecFormatter=keyword_null;var i,ip,d,dp,exp;if(intPart){partIntFormatter='';for(i=0;i<intPart.length;i++){ip=intPart[i];if(/^(0|#)+/g.test(ip)){partIntFormatter+=ip}}}if(decPart){partDecFormatter='';for(d=0;d<decPart.length;d++){dp=decPart[d];if(/^(0|#)+/g.test(dp)){partDecFormatter+=dp}}}if(!partIntFormatter&&!partDecFormatter){return(intPart?intPart.join(''):'')+(decPart?decPart.join(''):'')}else
{if(!partDecFormatter){partDecFormatter=''}}var exponentValue=0;var dl=_NumberHelper.___getDigitLength(value,nf.NumberDecimalSeparator);if(formatter.exponent){var aValue=Math_abs(value);var intLen=(!partIntFormatter)?1:partIntFormatter.length;if(aValue>=1){if(dl.integer>intLen){dl.integer-=intLen;dl.decimal+=intLen;value=value/Math_pow(10,dl.integer);exponentValue=dl.integer}else if(dl.integer<intLen){exponentValue=0}else
{exponentValue=0}if(formatter.exponent.sign===-1){formatter.exponent.sign=0}}else if(aValue<1&&aValue>0){formatter.exponent.sign=-1;dl.integer=intLen;dl.decimal-=intLen;var baseVal=Math_pow(10,intLen);while(aValue*10<baseVal){aValue*=10;exponentValue++}value*=Math_pow(10,exponentValue)}}var zerophIndex=partDecFormatter.lastIndexOf('0');var digitphIndex=partDecFormatter.lastIndexOf('#');var precision=dl.decimal;if(zerophIndex>=0){precision=zerophIndex+1}if(digitphIndex>zerophIndex&&digitphIndex<dl.decimal){precision=digitphIndex+1}if(!decPart){precision=0}var numbers=_NumberHelper.___expandNumber(value,precision,nf.NumberGroupSizes,nf.NumberGroupSeparator,nf.NumberDecimalSeparator,nf.NegativeSign,true);if(numbers===''){return(intPart?intPart.join(''):'')+(decPart?decPart.join(''):'')}var replaceExponent=false;if(intPart){var numberIntPart=numbers.split(nf.NumberDecimalSeparator)[0];var neg=numberIntPart.substr(0,1);if(neg===nf.NegativeSign){numberIntPart=numberIntPart.substr(1)}var procDigitLen=0,procIntPart='';var firstZerophIndex=partIntFormatter.indexOf('0');var intDigLen=(firstZerophIndex===-1)?numberIntPart.length:(partIntFormatter.length-firstZerophIndex);for(i=intPart.length-1;i>=0;i--){ip=intPart[i];if(/^(0|#)+/g.test(ip)){procIntPart=ip+procIntPart;if(procIntPart!==partIntFormatter){var iplen=ip.length;for(var ipi=numberIntPart.length-procDigitLen-1;ipi>=0&&iplen>0;ipi--){var nc=numberIntPart.charAt(ipi);resultBuilder._insert(nc);iplen--;procDigitLen++}if(procDigitLen>=numberIntPart.length&&procDigitLen<intDigLen&&iplen>0){resultBuilder._insert(new Array(iplen+1).join('0'));procDigitLen+=iplen}}else
{var part=numberIntPart.substr(0,numberIntPart.length-procDigitLen);if(firstZerophIndex>=0&&firstZerophIndex<partIntFormatter.length-procDigitLen-part.length){part=new Array(partIntFormatter.length-procDigitLen-firstZerophIndex-part.length+1).join('0')+part}resultBuilder._insert(part)}}else if(formatter.exponent&&!replaceExponent&&/^((E(\+|-)?|e(\+|-)?)\d+)/g.test(ip)){replaceExponent=true;exp='';exp+=formatter.exponent.symbol;exp+=_NumberHelper.___signs[formatter.exponent.sign];exp+=_NumberHelper.___zeroPad(exponentValue.toString(),formatter.exponent.exp,true);resultBuilder._insert(exp)}else
{resultBuilder._insert(ip)}}if(neg===nf.NegativeSign){resultBuilder._insert(neg)}if(formatter.group===true){var str=_NumberHelper.__insertGroupSeparator(resultBuilder.toString(),nf.NumberGroupSizes,nf.NumberGroupSeparator,nf.NegativeSign);resultBuilder=new _StringBuilder(str)}}if(decPart){var numberDecPart='';if(precision>0){var decSepIndex=numbers.indexOf(nf.NumberDecimalSeparator);if(decSepIndex!==-1){numberDecPart=numbers.substring(decSepIndex+1);if(partIntFormatter===''){resultBuilder.append(numbers.substr(0,decSepIndex))}resultBuilder.append(nf.NumberDecimalSeparator)}}else if(!/^(#+)$/ig.test(partDecFormatter)||decPart.join('').length!==partDecFormatter.length){resultBuilder.append(nf.NumberDecimalSeparator);if(zerophIndex>0){numberDecPart=new Array(zerophIndex+1).join('0')}}var numDecIndex=0;for(d=0;d<decPart.length;d++){dp=decPart[d];if(/^(0|#)+/g.test(dp)){resultBuilder.append(numberDecPart.substr(numDecIndex,dp.length));numDecIndex+=dp.length}else if(formatter.exponent&&!replaceExponent&&/^((E(\+|-)?|e(\+|-)?)\d+)/g.test(dp)){replaceExponent=true;exp='';exp+=formatter.exponent.symbol;exp+=_NumberHelper.___signs[formatter.exponent.sign];exp+=_NumberHelper.___zeroPad(exponentValue.toString(),formatter.exponent.exp,true);resultBuilder.append(exp)}else
{resultBuilder.append(dp)}}}var resultString=resultBuilder.toString();var zeroDotIndex=resultString.indexOf("0.");if(zeroDotIndex>=0){if(zeroDotIndex+2==resultString.length){resultString=resultString.replace("0.",".")}else if(zeroDotIndex+2<resultString.length){if(!/[0-9]+/g.test(resultString.charAt(zeroDotIndex+2))){resultString=resultString.replace("0.",".")}}}return resultString};_NumberHelper.__parseNumberNegativePattern=function(value,numFormat,numberNegativePattern){var neg=numFormat.NegativeSign;var pos=numFormat.PositiveSign;var valueStr=new _StringHelper(value);if(numberNegativePattern===4||numberNegativePattern===2){neg=' '+neg;pos=' '+pos}if(numberNegativePattern===4||numberNegativePattern===3){if(valueStr.endsWith(neg)){return['-',value.substr(0,value.length-neg.length)]}else if(valueStr.endsWith(pos)){return['+',value.substr(0,value.length-pos.length)]}}else if(numberNegativePattern===2||numberNegativePattern===1){if(valueStr.startsWith(neg)){return['-',value.substr(neg.length)]}else if(valueStr.startsWith(pos)){return['+',value.substr(pos.length)]}}else if(numberNegativePattern===0){if(valueStr.startsWith('(')&&valueStr.endsWith(')')){return['-',value.substr(1,value.length-2)]}}else
{throw new Error("");}return['',value]};_NumberHelper.__parseNumber=function(value,cultureInfo){value=(value!==keyword_undefined&&value!==keyword_null)?new _StringHelper(value).trim():"";if(value.match(/^[+-]?infinity$/i)){return parseFloat(value)}if(value.match(/^0x[a-f0-9]+$/i)){return parseInt(value,10)}var numFormat=cultureInfo.numberFormat;var signInfo=_NumberHelper.__parseNumberNegativePattern(value,numFormat,numFormat.NumberNegativePattern);var sign=signInfo[0];var num=signInfo[1];if((sign==='')&&(numFormat.NumberNegativePattern!==1)){signInfo=_NumberHelper.__parseNumberNegativePattern(value,numFormat,1);sign=signInfo[0];num=signInfo[1]}if(sign===''){sign='+'}if(num[0]===numFormat.CurrencySymbol){num=num.substr(1)}var exponent;var intAndFraction;var exponentPos=num.indexOf('e');if(exponentPos<0){exponentPos=num.indexOf('E')}if(exponentPos<0){intAndFraction=num;exponent=keyword_null}else
{intAndFraction=num.substr(0,exponentPos);exponent=num.substr(exponentPos+1)}var integer,fraction;var decimalPos=intAndFraction.indexOf(numFormat.NumberDecimalSeparator);if(decimalPos<0){integer=intAndFraction;fraction=keyword_null}else
{integer=intAndFraction.substr(0,decimalPos);fraction=intAndFraction.substr(decimalPos+numFormat.NumberDecimalSeparator.length)}integer=integer.split(numFormat.NumberGroupSeparator).join('');var altNumGroupSeparator=numFormat.NumberGroupSeparator.replace(/\u00A0/g," ");if(numFormat.NumberGroupSeparator!==altNumGroupSeparator){integer=integer.split(altNumGroupSeparator).join('')}var p=sign+integer;if(fraction!==keyword_null){p+='.'+fraction}var lastChar=p[p.length-1];if(lastChar===numFormat.PercentSymbol){p=p.substr(0,p.length-1);p=new _StringHelper(p).trimEnd();var ndp=p.indexOf(numFormat.NumberDecimalSeparator);if(ndp===-1){ndp=p.length}var resultBuilder=new _StringBuilder('');resultBuilder.append(p.substr(0,ndp-2));resultBuilder.append(numFormat.NumberDecimalSeparator);resultBuilder.append(p.substr(ndp-2,2));resultBuilder.append(p.substr(ndp+1));p=resultBuilder.toString()}if(exponent!==keyword_null){var expSignInfo=_NumberHelper.__parseNumberNegativePattern(exponent,numFormat,1);if(expSignInfo[0]===''){expSignInfo[0]='+'}p+='e'+expSignInfo[0]+expSignInfo[1]}if(p.match(/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/)){return parseFloat(p)}return NaN};_NumberHelper.___toHexString=function(num,lowCase,precision){if(Math_abs(Math_floor(num)-num)!==0){throw new Error(spread.SR.Exp_BadFormatSpecifier);}var number=num>=0?num.toString(16):(_NumberHelper.___maxInt32+num+1).toString(16);number=lowCase?number.toLowerCase():number.toUpperCase();if(precision!==keyword_undefined&&precision!==keyword_null&&number.length<precision){return _NumberHelper.___zeroPad(number,precision,true)}return number};_NumberHelper.___toScientific=function(num,e,precision,groupSizes,sep,decimalChar,negativeSign){var digitLen=0;var digSepMoveRight=(num>=1||num===0);while(digitLen<1000){var base=Math_pow(10,digitLen);if(digSepMoveRight&&(num/base<10)||!digSepMoveRight&&(num*base>=1))break;digitLen++}num=digSepMoveRight?Math_abs(num)/Math_pow(10,digitLen):Math_abs(num)*Math_pow(10,digitLen);var number=_NumberHelper.___expandNumber(num,precision,groupSizes,sep,decimalChar,negativeSign);number+=e+(digSepMoveRight?"+":"-")+_NumberHelper.___zeroPad(digitLen.toString(),3,true);return number};_NumberHelper.___signs={'1':'+','0':'','-1':'-'};_NumberHelper.___maxInt32=4294967295;_NumberHelper.___percentPositivePattern=["n %","n%","%n"];_NumberHelper.___percentNegativePattern=["-n %","-n%","-%n"];_NumberHelper.___numberNegativePattern=["(n)","-n","- n","n-","n -"];_NumberHelper.___currencyPositivePattern=["$n","n$","$ n","n $"];_NumberHelper.___currencyNegativePattern=["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n $","-$ n","n $-","$ n-","$ -n","n- $","($ n)","(n $)"];return _NumberHelper})();spread._NumberHelper=_NumberHelper;spread._currentCulture;function Culture(culture){if(arguments.length===0){return spread._currentCulture}if(!culture)return;var cultureInfo=culture.toLowerCase();if(spread._currentCulture!==cultureInfo){switch(cultureInfo){case"ja-jp":wijmo.spread.SR=wijmo.spread._JPStringResource;_CultureInfo.currentCulture("ja-jp");break;case"en-us":default:wijmo.spread.SR=wijmo.spread._ENStringResource;_CultureInfo.currentCulture("en-us");break}spread._currentCulture=culture;_cultureChanged(culture)}}spread.Culture=Culture;function _cultureChanged(culture){$("div[gcUIElement='gcSpread']").trigger(spread.Events.CultureChanged,[{CultureInfo:culture}])}(function(){var elements=$("meta[name='spreadjs culture']");if(elements.length>0){var culture=$(elements[elements.length-1]).attr("content");if(culture!==keyword_null&&culture!=keyword_undefined&&culture.toLowerCase()==="ja-jp"){wijmo.spread.SR=wijmo.spread._JPStringResource;spread._currentCulture="ja-jp"}}})();var _WordWrapHelper=(function(){function _WordWrapHelper(){}_WordWrapHelper._getCtx=function(){if(!_WordWrapHelper._ctx){var canvas=document.createElement("canvas");if(canvas.getContext){_WordWrapHelper._ctx=canvas.getContext("2d")}}return _WordWrapHelper._ctx};_WordWrapHelper._getWrapInfo=function(text,width,font){var wrapLines=[];if(text.length===0){return wrapLines}var ctx=_WordWrapHelper._getCtx();if(!ctx){return wrapLines}ctx.font=font;if(width<=0){var charMinWidth=-1;var flag=true;for(var index=0;index<text.length;index++){var tempChar=text.charAt(index);if(tempChar!==" "&&!flag){charMinWidth=Math_min(charMinWidth,ctx.measureText(tempChar).width)}else if(tempChar!==" "&&flag){charMinWidth=ctx.measureText(tempChar).width;flag=false}}width=charMinWidth}var lines=text.split(/\r\n|\r|\n/);for(var i=0;i<lines.length;i++){var wrapLine=_WordWrapHelper._getWrapInfoByWord(lines[i],width);if(wrapLine!=keyword_null){for(var j=0;j<wrapLine.length;j++){wrapLines.push(wrapLine[j])}}}return wrapLines};_WordWrapHelper._getTextWords=function(text){var lines=[];var startIndex=0;var space=" ";for(var i=0;i<text.length;i++){if(lines[startIndex]===keyword_undefined){lines[startIndex]=""}var currentChar=text.charAt(i);var nextChar="";if(i+1<text.length){nextChar=text.charAt(i+1)}if((currentChar===space&&nextChar!==space)){lines[startIndex]+=currentChar;startIndex++}else
{lines[startIndex]+=currentChar}}return lines};_WordWrapHelper._measureText=function(text,font){var ctx=_WordWrapHelper._getCtx();if(!ctx){return 0}if(ctx.font!==font){ctx.font=font}return ctx.measureText(text).width};_WordWrapHelper._measureTextWithoutEndSpaces=function(text,font){var ctx=_WordWrapHelper._getCtx();if(!ctx){return 0}if(font){ctx.font=font}var tempText=_WordWrapHelper._removeEndSpace(text);return ctx.measureText(tempText).width};_WordWrapHelper._removeEndSpace=function(text){var index=text.length-1;while(text.charAt(index)===' '){index--}if(index!==text.length-1){text=text.substring(0,index+1)}return text};_WordWrapHelper._getWrapInfoByCharacter=function(text,width){var lines=[];var ctx=_WordWrapHelper._getCtx();if(!ctx){return lines}var totalWidth=ctx.measureText(text).width;var charWidth=totalWidth/text.length;var targetLength=Math_ceil(width/charWidth);if(totalWidth>width){var isLong=false;while(true){var subText=text.substring(0,targetLength);var subWidth=ctx.measureText(subText).width;if(subWidth==width||isLong&&subWidth<width){lines.push(subText);lines.push(text.substring(subText.length));return lines}else if(subWidth>width){if(subText.length===1){var remainText=text.substring(subText.length);if(_WordWrapHelper._measureTextWithoutEndSpaces(remainText)!==0){lines.push(subText);lines.push(remainText)}else
{lines.push(text)}return lines}targetLength-=1;isLong=true}else
{var step=(width-subWidth)/charWidth;step=step>=1?step:1;targetLength+=step}}}else
{if(text!=keyword_null&&text.length>0){lines.push(text)}}return lines};_WordWrapHelper._getWrapInfoByWord=function(text,width){var lines=[];var words=_WordWrapHelper._getTextWords(text);var ctx=_WordWrapHelper._getCtx();if(!ctx){return lines}var totalWidth=ctx.measureText(text).width;var charWidth=totalWidth/text.length;var averageLength=parseInt((width/charWidth)+"",10);var lineIndex=0,stackCharCount=0,tempCount=0,index=0;var stack=[];var isLong=false;while(index<words.length){if(isLong===false){var word=words[index];stack.push(word);stackCharCount+=word.length;if(stackCharCount<averageLength){index++;continue}else
{tempCount=stackCharCount;stackCharCount=0}}var subWidth=_WordWrapHelper._measureTextWithoutEndSpaces(stack.join(""));if(subWidth>width){var tempWord=stack.pop();if(stack.length===0){var parts=_WordWrapHelper._getWrapInfoByCharacter(tempWord,width);stack.push(parts[0]);if(parts.length===2){words[index]=parts[1]}else
{index++}lines[lineIndex++]=stack.join("");isLong=false;stack=[]}else
{isLong=true;index--}}else if((subWidth<width&&isLong===true)||subWidth===width){isLong=false;lines[lineIndex++]=_WordWrapHelper._removeEndSpace(stack.join(""));stack=[];index++}else if(subWidth<width){index++;stackCharCount=tempCount}}if(stack.length!==0){lines[lineIndex]=_WordWrapHelper._removeEndSpace(stack.join(""))}return lines};return _WordWrapHelper})();spread._WordWrapHelper=_WordWrapHelper;var FormatConverter=(function(){function FormatConverter(){}FormatConverter.IsNumber=function(value){return spread.util.isType(value,"number")||spread.util.isType(value,"DateTime")||spread.util.isType(value,"TimeSpan")||(value&&!spread.util.isType(value,"boolean")&&!isNaN(value))};FormatConverter.ToDouble=function(value){if(value===keyword_null||value===keyword_undefined||value===""){return 0.0}else if(spread.util.isType(value,"number")){return value}else if(spread.util.isType(value,"string")&&!isNaN(value)){return _NumberHelper.parseLocale(value)}else if(spread.util.isType(value,"boolean")){return value?1.0:0.0}else if(spread.util.isType(value,"DateTime")){return new _DateTimeHelper(value).toOADate()}else if(spread.util.isType(value,"TimeSpan")){return new _DateTimeHelper(value).TotalDays()}else
{return parseFloat(value)}};FormatConverter.toString=function(value){try
{if(value===keyword_null||value===keyword_undefined)return"";else if(typeof value==="boolean")return value?"TRUE":"FALSE";else if(typeof value==="string")return value;else
return value.toString()}catch(err){return""}};return FormatConverter})();spread.FormatConverter=FormatConverter})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("core.theme",["core.migrate","core.common"]);var Math_min=Math.min,Math_max=Math.max;var _Color=(function(){function _Color(a,r,g,b){var self=this;self.a=a;self.r=r;self.g=g;self.b=b}_Color.prototype.toString=function(){var self=this;if(self.a===255){return'#'+self.getColorUnitString(self.r)+self.getColorUnitString(self.g)+self.getColorUnitString(self.b)}return"rgba("+self.r+","+self.g+","+self.b+","+self.a+")"};_Color.prototype.getBrightness=function(){return((this.r*299)+(this.g*587)+(this.b*114))/1000};_Color.prototype.getColorUnitString=function(unit){var s=unit.toString(16);if(s.length===1){s='0'+s}return s};_Color.hueToRGB=function(n1,n2,hue){if(hue<0){hue+=240}if(hue>240){hue-=240}if(hue<40){return(n1+((((n2-n1)*hue)+20)/40))}if(hue<120){return n2}if(hue<160){return(n1+((((n2-n1)*(160-hue))+20)/40))}return n1};_Color.fromHLS=function(hue,luminosity,saturation){var r,g,b;if(saturation===0){r=g=b=parseInt(((luminosity*0xff)/240),10)}else
{var n1,n2;if(luminosity<=120){n2=((luminosity*(240+saturation))+120)/240}else
{n2=(luminosity+saturation)-(((luminosity*saturation)+120)/240)}n1=(2*luminosity)-n2;r=parseInt((((_Color.hueToRGB(n1,n2,hue+80)*0xff)+120)/240),10);g=parseInt((((_Color.hueToRGB(n1,n2,hue)*0xff)+120)/240),10);b=parseInt((((_Color.hueToRGB(n1,n2,hue-80)*0xff)+120)/240),10)}return new _Color(0xff,r,g,b)};_Color.parse=function(value){return parseToColor(value)};return _Color})();spread._Color=_Color;var HLSColor=(function(){function HLSColor(rgbColor){var self=this;var r=rgbColor.r,g=rgbColor.g,b=rgbColor.b;var maxUnit=Math_max(Math_max(r,g),b);var minUnit=Math_min(Math_min(r,g),b);var sum=maxUnit+minUnit;self.luminosity=parseInt((((sum*240)+0xff)/510),10);var diff=maxUnit-minUnit;if(diff===0){self.saturation=0;self.hue=160}else
{if(self.luminosity<=120){self.saturation=parseInt((((diff*240)+(sum/2))/sum),10)}else
{self.saturation=parseInt((((diff*240)+((510-sum)/2))/(510-sum)),10)}var partR=(((maxUnit-r)*40)+(diff/2))/diff;var partG=(((maxUnit-g)*40)+(diff/2))/diff;var partB=(((maxUnit-b)*40)+(diff/2))/diff;if(r===maxUnit){self.hue=parseInt((partB-partG),10)}else if(g===maxUnit){self.hue=parseInt(((80+partR)-partB),10)}else
{self.hue=parseInt(((160+partG)-partR),10)}if(self.hue<0){self.hue+=240}if(self.hue>240){self.hue-=240}}}HLSColor.prototype.toColor=function(){return _Color.fromHLS(this.hue,this.luminosity,this.saturation)};HLSColor.prototype.getLighterColor=function(percentLighter){var self=this;var luminosity=self.luminosity;var newLuma=self.newLuma(self.luminosity,500,true);return _Color.fromHLS(self.hue,luminosity+((newLuma-luminosity)*percentLighter),self.saturation)};HLSColor.prototype.getDrakerColor=function(percentDarker){var self=this;var newLuma=self.newLuma(self.luminosity,-333,true);return _Color.fromHLS(self.hue,newLuma*(1-percentDarker),self.saturation)};HLSColor.prototype.newLuma=function(luminosity,n,scale){if(n===0){return luminosity}if(scale){if(n>0){return(((luminosity*(0x3e8-n))+(0xf1*n))/0x3e8)}return((luminosity*(n+0x3e8))/0x3e8)}luminosity+=((n*240)/0x3e8);if(luminosity<0){luminosity=0}if(luminosity>240){luminosity=240}return luminosity};return HLSColor})();spread.HLSColor=HLSColor;function parseToColor(value){if(value instanceof _Color){return value}var a=0,r=0,g=0,b=0;if(value&&value!==""){var val=spread.util.parseColorString(value);if(val){if(val.length===3){a=255;r=val[0];g=val[1];b=val[2]}else if(val.length===4){a=val[0];r=val[1];g=val[2];b=val[3]}}}return new _Color(a,r,g,b)}var updateTint=function(color,tint){if(tint===0){return color}var hls=new HLSColor(color);var lumDiff=parseInt((tint>0?((240-hls.luminosity)*tint):(hls.luminosity*tint)),10);return _Color.fromHLS(hls.hue,hls.luminosity+lumDiff,hls.saturation)};var BACKCOLOR1=0,BACKCOLOR2=1,TEXTCOLOR1=2,TEXTCOLOR2=3,ACCENT1=4,ACCENT2=5,ACCENT3=6,ACCENT4=7,ACCENT5=8,ACCENT6=9,HYPERLINK=10,FHYPERLINK=11;var ThemeColor=(function(){function ThemeColor(name,text1,text2,background1,background2,accent1,accent2,accent3,accent4,accent5,accent6,link,followedLink){this._name=name;this._colorList=[parseToColor(background1),parseToColor(background2),parseToColor(text1),parseToColor(text2),parseToColor(accent1),parseToColor(accent2),parseToColor(accent3),parseToColor(accent4),parseToColor(accent5),parseToColor(accent6),parseToColor(link),parseToColor(followedLink)]}ThemeColor.prototype.name=function(value){if(arguments.length===0){return this._name}this._name=value;return this};ThemeColor.prototype.background1=function(value){return this._property(BACKCOLOR1,arguments.length===0,value)};ThemeColor.prototype.background2=function(value){return this._property(BACKCOLOR2,arguments.length===0,value)};ThemeColor.prototype.textColor1=function(value){return this._property(TEXTCOLOR1,arguments.length===0,value)};ThemeColor.prototype.textColor2=function(value){return this._property(TEXTCOLOR2,arguments.length===0,value)};ThemeColor.prototype.accent1=function(value){return this._property(ACCENT1,arguments.length===0,value)};ThemeColor.prototype.accent2=function(value){return this._property(ACCENT2,arguments.length===0,value)};ThemeColor.prototype.accent3=function(value){return this._property(ACCENT3,arguments.length===0,value)};ThemeColor.prototype.accent4=function(value){return this._property(ACCENT4,arguments.length===0,value)};ThemeColor.prototype.accent5=function(value){return this._property(ACCENT5,arguments.length===0,value)};ThemeColor.prototype.accent6=function(value){return this._property(ACCENT6,arguments.length===0,value)};ThemeColor.prototype.hyperline=function(value){return this._property(HYPERLINK,arguments.length===0,value)};ThemeColor.prototype.followedHyperline=function(value){return this._property(FHYPERLINK,arguments.length===0,value)};ThemeColor.prototype._property=function(index,isGet,value){if(isGet){return this._colorList[index]}this._colorList[index]=parseToColor(value);return this};ThemeColor.prototype.getColor=function(name){if(name){var t=name.split(' ');if(t){var index=-1,len=t.length;if(len>1){if(!t[0]){return name}var cn=t[0].toLowerCase();if(cn==="background"){index=parseInt(t[1],10)-1}else if(cn==="text"){index=parseInt(t[1],10)+1}else if(cn==="accent"){index=parseInt(t[1],10)+3}}else if(len===1){var cn=t[0].toLowerCase();if(cn==="hyperlink"){index=HYPERLINK}else if(cn==="followedhyperlink"){index=FHYPERLINK}}if(index>=0&&index<=11){if(len>2){var tint=parseInt(t[2],10)/100.0;return updateTint(this._colorList[index],tint).toString()}else
{return this._colorList[index].toString()}}}}return name};ThemeColor.prototype.toJSON=function(){return{name:this._name,colorList:this._colorList}};return ThemeColor})();spread.ThemeColor=ThemeColor;var ThemeColors=(function(){function ThemeColors(){}ThemeColors.Default=new ThemeColor("Default","#000000","#1F497D","#FFFFFF","#EEECE1","#4F81BD","#C0504D","#9BBB59","#8064A2","#4BACC6","#F79646","#0000FF","#800080");ThemeColors.Office=new ThemeColor("Office","#000000","#1F497D","#FFFFFF","#EEECE1","#4F81BD","#C0504D","#9BBB59","#8064A2","#4BACC6","#F79646","#0000FF","#800080");ThemeColors.Apex=new ThemeColor("Apex","#000000","#69676D","#FFFFFF","#C9C2D1","#CEB966","#9CB084","#6BB1C9","#6585CF","#7E6BC9","#A379BB","#410082","#932968");ThemeColors.Aspect=new ThemeColor("Aspect","#000000","#323232","#FFFFFF","#E3DED1","#F07F09","#9F2936","#1B587C","#4E8542","#604878","#C19859","#6B9F25","#B26B02");ThemeColors.Concourse=new ThemeColor("Concourse","#000000","#464646","#FFFFFF","#DEF5FA","#2DA2BF","#DA1F28","#EB641B","#39639D","#474B78","#7D3C4A","#FF8119","#44B9E8");ThemeColors.Civic=new ThemeColor("Civic","#000000","#646B86","#FFFFFF","#C5D1D7","#D16349","#CCB400","#8CADAE","#8C7B70","#8FB08C","#D19049","#00A3D6","#694F07");ThemeColors.Oriel=new ThemeColor("Oriel","#000000","#575F6D","#FFFFFF","#FFF39D","#FE8637","#7598D9","#B32C16","#F5CD2D","#AEBAD5","#777C84","#D2611C","#3B435B");ThemeColors.Origin=new ThemeColor("Origin","#000000","#464653","#FFFFFF","#DDE9EC","#727CA3","#9FB8CD","#D2DA7A","#FADA7A","#B88472","#8E736A","#B292CA","#6B5680");ThemeColors.Paper=new ThemeColor("Paper","#000000","#444D26","#FFFFFF","#FEFAC9","#A5B592","#F3A447","#E7BC29","#D092A7","#9C85C0","#809EC2","#8E58B6","#7F6F6F");ThemeColors.Solstice=new ThemeColor("Solstice","#000000","#4F271C","#FFFFFF","#E7DEC9","#3891A7","#FEB80A","#C32D2E","#84AA33","#964305","#475A8D","#8DC765","#AA8A14");ThemeColors.Technic=new ThemeColor("Technic","#000000","#3B3B3B","#FFFFFF","#D4D2D0","#6EA0B0","#CCAF0A","#8D89A4","#748560","#9E9273","#7E848D","#00C8C3","#A116E0");ThemeColors.Trek=new ThemeColor("Trek","#000000","#4E3B30","#FFFFFF","#FBEEC9","#F0A22E","#A5644E","#B58B80","#C3986D","#A19574","#C17529","#AD1F1F","#FFC42F");ThemeColors.Urban=new ThemeColor("Urban","#000000","#424456","#FFFFFF","#DEDEDE","#53548A","#438086","#A04DA3","#C4652D","#8B5D3D","#5C92B5","#67AFBD","#C2A874");ThemeColors.Verve=new ThemeColor("Verve","#000000","#666666","#FFFFFF","#D2D2D2","#FF388C","#E40059","#9C007F","#68007F","#005BD3","#00349E","#17BBFD","#FF79C2");ThemeColors.Equity=new ThemeColor("Equity","#000000","#696464","#FFFFFF","#E9E5DC","#D34817","#9B2D1F","#A28E6A","#956251","#918485","#855D5D","#CC9900","#96A9A9");ThemeColors.Flow=new ThemeColor("Flow","#000000","#04617B","#FFFFFF","#DBF5F9","#0F6FC6","#009DD9","#0BD0D9","#10CF9B","#7CCA62","#A5C249","#E2D700","#85DFD0");ThemeColors.Foundry=new ThemeColor("Foundry","#000000","#676A55","#FFFFFF","#EAEBDE","#72A376","#B0CCB0","#A8CDD7","#C0BEAF","#CEC597","#E8B7B7","#DB5353","#903638");ThemeColors.Median=new ThemeColor("Median","#000000","#775F55","#FFFFFF","#EBDDC3","#94B6D2","#DD8047","#A5AB81","#D8B25C","#7BA79D","#968C8C","#F7B615","#704404");ThemeColors.Metro=new ThemeColor("Metro","#000000","#4E5B6F","#FFFFFF","#D6ECFF","#7FD13B","#EA157A","#FEB80A","#00ADDC","#738AC8","#1AB39F","#EB8803","#5F7791");ThemeColors.Module=new ThemeColor("Module","#000000","#5A6378","#FFFFFF","#D4D4D6","#F0AD00","#60B5CC","#E66C7D","#6BB76D","#E88651","#C64847","#168BBA","#680000");ThemeColors.Opulent=new ThemeColor("Opulent","#000000","#B13F9A","#FFFFFF","#F4E7ED","#B83D68","#AC66BB","#DE6C36","#F9B639","#CF6DA4","#FA8D3D","#FFDE66","#D490C5");return ThemeColors})();spread.ThemeColors=ThemeColors;var SpreadTheme=(function(){function SpreadTheme(name,themeColor,headingFont,bodyFont){var self=this;self._name=name;self._themeColor=themeColor?themeColor:new ThemeColor(name);self._headingFont=headingFont;self._bodyFont=bodyFont}SpreadTheme.prototype.name=function(value){if(arguments.length===0){return this._name}this._name=value;return this};SpreadTheme.prototype.colors=function(value){if(arguments.length===0){return this._themeColor}this._themeColor=value;return this};SpreadTheme.prototype.headerFont=function(value){if(arguments.length===0){return this._headingFont}this._headingFont=value;return this};SpreadTheme.prototype.bodyFont=function(value){if(arguments.length===0){return this._bodyFont}this._bodyFont=value;return this};SpreadTheme.prototype.getColor=function(colorString){return this._themeColor.getColor(colorString)};SpreadTheme.prototype.getFont=function(fontString){if(fontString==="Body"){return this.bodyFont()}else if(fontString==="Headings"){return this.headerFont()}return fontString};SpreadTheme.prototype.toJSON=function(){var self=this;return{name:self._name,themeColor:self._themeColor?self._themeColor.toJSON():undefined,headingFont:self._headingFont,bodyFont:self._bodyFont}};return SpreadTheme})();spread.SpreadTheme=SpreadTheme;var SpreadThemes=(function(){function SpreadThemes(){}SpreadThemes.Default=new SpreadTheme("Default",ThemeColors.Default,"Cambria","Calibri");SpreadThemes.Office=new SpreadTheme("Office",ThemeColors.Office,"Cambria","Calibri");SpreadThemes.Apex=new SpreadTheme("Apex",ThemeColors.Apex,"Lucida Sans","Book Antiqua");SpreadThemes.Aspect=new SpreadTheme("Aspect",ThemeColors.Aspect,"Verdana","Verdana");SpreadThemes.Concourse=new SpreadTheme("Concourse",ThemeColors.Concourse,"Lucida Sans Unicode","Lucida Sans Unicode");SpreadThemes.Civic=new SpreadTheme("Civic",ThemeColors.Civic,"Georgia","Georgia");SpreadThemes.Oriel=new SpreadTheme("Oriel",ThemeColors.Oriel,"Century Schoolbook","Century Schoolbook");SpreadThemes.Origin=new SpreadTheme("Origin",ThemeColors.Origin,"Bookman Old Style","Gill Sans MT");SpreadThemes.Paper=new SpreadTheme("Paper",ThemeColors.Paper,"Constantia","Constantia");SpreadThemes.Solstice=new SpreadTheme("Solstice",ThemeColors.Solstice,"Gill Sans MT","Gill Sans MT");SpreadThemes.Technic=new SpreadTheme("Technic",ThemeColors.Technic,"Franklin Gothic Book","Arial");SpreadThemes.Trek=new SpreadTheme("Trek",ThemeColors.Trek,"Franklin Gothic Medium","Franklin Gothic Book");SpreadThemes.Urban=new SpreadTheme("Urban",ThemeColors.Urban,"Trebuchet MS","Georgia");SpreadThemes.Verve=new SpreadTheme("Verve",ThemeColors.Verve,"Century Gothic","Century Gothic");SpreadThemes.Equity=new SpreadTheme("Equity",ThemeColors.Equity,"Franklin Gothic Book","Perpetua");SpreadThemes.Flow=new SpreadTheme("Flow",ThemeColors.Flow,"Calibri","Constantia");SpreadThemes.Foundry=new SpreadTheme("Foundry",ThemeColors.Foundry,"Rockwell","Rockwell");SpreadThemes.Median=new SpreadTheme("Median",ThemeColors.Median,"Tw Cen MT","Tw Cen MT");SpreadThemes.Metro=new SpreadTheme("Metro",ThemeColors.Metro,"Consolas","Corbel");SpreadThemes.Module=new SpreadTheme("Module",ThemeColors.Module,"Corbel","Corbel");SpreadThemes.Opulent=new SpreadTheme("Opulent",ThemeColors.Opulent,"Trebuchet MS","Trebuchet MS");return SpreadThemes})();spread.SpreadThemes=SpreadThemes})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("core.spreadpanelex",["core.common"]);var keyword_null=null,const_undefined="undefined";var CSS_CLASS_SCROLLCONTAINER='scroll-container',CSS_CLASS_SCROLLOUTCONTAINER='scroll-outContainer',CSS_CLASS_SCROLLARROW='scroll-arrow',CSS_CLASS_SCROLLBARWRAPPER='scrollbar-wrapper',CSS_CLASS_SCROLLBAR='scroll-bar',CSS_CLASS_ARROWUP='scroll-arrowUp',CSS_CLASS_ARROWDOWN='scroll-arrowDown',CSS_CLASS_ARROWLEFT='scroll-arrowLeft',CSS_CLASS_ARROWRIGHT='scroll-arrowRight',CSS_CLASS_VERTICALSCROLL='scrollbar-vertical',CSS_CLASS_HORIZONTALSCROLL='scrollbar-horizontal',CSS_CLASS_NONE_USER_SELECT='scrollbar-none-user-select',CSS_CLASS_HORIZONTAL_SCROLLBAR='scroll-horizontal',CSS_CLASS_VERTICAL_SCROLLBAR='scroll-vertical',CSS_CLASS_CONTENT_WRAPPER_SCROLLBAR='scroll-content-wrapper',CSS_CLASS_CONTAINER_SCROLLBAR='scroll-panel-container',CSS_CLASS_TEMPCONTENT_SCROLLBAR='scroll-temp-content-wrapper',css_width='width',css_height='height',css_left='left',css_right='right',css_top='top',css_bottom='bottom',css_marginLeft='margin-left',css_marginTop='margin-top',ns_scrollbar='.gcScrollbar',e_mousedown='mousedown'+ns_scrollbar,e_mouseup='mouseup'+ns_scrollbar,e_mousemove='mousemove'+ns_scrollbar,e_mouseover='mouseover'+ns_scrollbar,e_mouseout='mouseout'+ns_scrollbar,e_mousewheel='mousewheel',e_dommousescroll='DOMMouseScroll',e_mouseout='mouseout'+ns_scrollbar,e_keydown='keydown'+ns_scrollbar,e_scroll='scroll'+ns_scrollbar;var EventUtil={addHandler:function(element,type,handler){if(element.addEventListener){element.addEventListener(type,handler,false)}},removeHandler:function(element,type,handler){if(element.removeEventListener){element.removeEventListener(type,handler,false)}}};(function(ScrollType){ScrollType[ScrollType["pixels"]=0]="pixels";ScrollType[ScrollType["continuous"]=1]="continuous"})(spread.ScrollType||(spread.ScrollType={}));var ScrollType=spread.ScrollType;(function(ScrollOrientation){ScrollOrientation[ScrollOrientation["horizontalScroll"]=0]="horizontalScroll";ScrollOrientation[ScrollOrientation["verticalScroll"]=1]="verticalScroll"})(spread.ScrollOrientation||(spread.ScrollOrientation={}));var ScrollOrientation=spread.ScrollOrientation;(function(ScrollEventType){ScrollEventType[ScrollEventType["smallDecrement"]=0]="smallDecrement";ScrollEventType[ScrollEventType["smallIncrement"]=1]="smallIncrement";ScrollEventType[ScrollEventType["largeDecrement"]=2]="largeDecrement";ScrollEventType[ScrollEventType["largeIncrement"]=3]="largeIncrement";ScrollEventType[ScrollEventType["thumbPosition"]=4]="thumbPosition";ScrollEventType[ScrollEventType["thumbTrack"]=5]="thumbTrack";ScrollEventType[ScrollEventType["endScroll"]=8]="endScroll"})(spread.ScrollEventType||(spread.ScrollEventType={}));var ScrollEventType=spread.ScrollEventType;var ScrollablePanel=(function(){function ScrollablePanel(superPanel,content){var self=this;self._showHorizontalScrollbar=true;self._showVerticalScrollbar=true;self._useWijmoTheme=false;self._hSmallChange=10;self._vSmallChange=10;self._defaultScrollbarSize=18;self._superPanel=superPanel;self._content=content;self.refreshLayout(true)}ScrollablePanel.prototype.content=function(value){var self=this;if(arguments.length===0){return self._content}if(value instanceof HTMLElement&&self._content!==value){self._content=value;self.refreshLayout(true)}return self};ScrollablePanel.prototype.superPanel=function(value){var self=this;if(arguments.length===0){return self._superPanel}if(value instanceof HTMLElement&&self._superPanel!==value){self._superPanel=value;self.refreshLayout(true)}return self};ScrollablePanel.prototype.horizontalSmallChange=function(smallChange){var self=this;if(arguments.length===0){return self._hSmallChange}if(typeof smallChange==='number'&&self._hSmallChange!==smallChange){self._hSmallChange=smallChange}return self};ScrollablePanel.prototype.verticalSmallChange=function(smallChange){var self=this;if(arguments.length===0){return self._vSmallChange}if(typeof smallChange==='number'&&self._vSmallChange!==smallChange){self._vSmallChange=smallChange}return self};ScrollablePanel.prototype.showHorizontalScrollbar=function(){return this._showHorizontalScrollbar};ScrollablePanel.prototype.showVerticalScrollbar=function(){return this._showVerticalScrollbar};ScrollablePanel.prototype.refreshLayout=function(isNewContent){var self=this;if(!self._superPanel||!self._content){return}var $superPanel=$(self._superPanel),$content=$(self._content),scrollbarSize=self._defaultScrollbarSize,contentWidth=$content.width(),contentHeight=$content.height(),superPanelWidth=$superPanel.width(),superPanelHeight=$superPanel.height(),pageWidth=superPanelWidth-scrollbarSize,pageHeight=superPanelHeight-scrollbarSize,isInitEvent=false;if(!self._container){self._container=document.createElement('div');$(self._container).addClass(CSS_CLASS_CONTAINER_SCROLLBAR);isInitEvent=true}var $container=$(self._container);$container.css({width:superPanelWidth,height:superPanelHeight});if(!self._contentWrapper){self._contentWrapper=document.createElement('div');$(self._contentWrapper).addClass(CSS_CLASS_CONTENT_WRAPPER_SCROLLBAR);$container.append(self._contentWrapper)}var $contentWrapper=$(self._contentWrapper);if(!self._tempContentWrapper){self._tempContentWrapper=document.createElement('div');$(self._tempContentWrapper).addClass(CSS_CLASS_TEMPCONTENT_SCROLLBAR);$contentWrapper.append(self._tempContentWrapper)}var $tempContentWrapper=$(self._tempContentWrapper);if(isNewContent){$tempContentWrapper.append(self._content)}$tempContentWrapper.css({top:0,left:0});var result=self._isNeedScrollbars(contentWidth,contentHeight,superPanelWidth,superPanelHeight);var isNeedVScroll=result.isNeedVScroll,isNeedHScroll=result.isNeedHScroll;if(isNeedHScroll){if(!isNeedVScroll){pageWidth+=scrollbarSize}if(!self._hScrollbar){self._hScrollbar=new Scrollbar(true);var hScrollbarElement=self._hScrollbar.getScrollbar();self._hbarContainer=document.createElement('div');var $hbarContainer=$(self._hbarContainer);$hbarContainer.addClass(CSS_CLASS_HORIZONTAL_SCROLLBAR);$hbarContainer.append(hScrollbarElement);$container.append(self._hbarContainer)}$(self._hbarContainer).css({width:pageWidth,height:scrollbarSize});var scrollH=self._hScrollbar,$hScrollbarElement=$(self._hScrollbar.getScrollbar());scrollH.width(pageWidth);scrollH.height(scrollbarSize);scrollH.minimum(0);scrollH.maximum(contentWidth-pageWidth);scrollH.pageValue(pageWidth);scrollH.smallChange(self.horizontalSmallChange());scrollH.largeChange(pageWidth);scrollH.refreshLayout();$hScrollbarElement.bind(e_scroll,function(e,args){$tempContentWrapper.css('left',0-args.newValue)});$(self._hbarContainer).show();self._showHorizontalScrollbar=true}else
{if(self._hbarContainer){$(self._hbarContainer).hide()}self._showHorizontalScrollbar=false}if(isNeedVScroll){if(!isNeedHScroll){pageHeight+=scrollbarSize}if(!self._vScrollbar){self._vScrollbar=new Scrollbar(false);var vScrollbarElement=self._vScrollbar.getScrollbar();self._vbarContainer=document.createElement('div');var $vbarContainer=$(self._vbarContainer);$vbarContainer.addClass(CSS_CLASS_VERTICAL_SCROLLBAR);$vbarContainer.append(vScrollbarElement);$container.append(self._vbarContainer)}$(self._vbarContainer).css({width:scrollbarSize,height:pageHeight});var scrollV=self._vScrollbar,$vScrollbarElement=$(self._vScrollbar.getScrollbar());scrollV.width(scrollbarSize);scrollV.height(pageHeight);scrollV.minimum(0);scrollV.maximum(contentHeight-pageHeight);scrollV.pageValue(pageHeight);scrollV.smallChange(self.verticalSmallChange());scrollV.largeChange(pageHeight);scrollV.refreshLayout();$vScrollbarElement.bind(e_scroll,function(e,args){$tempContentWrapper.css('top',0-args.newValue)});$(self._vbarContainer).show();self._showVerticalScrollbar=true}else
{if(self._vbarContainer){$(self._vbarContainer).hide()}self._showVerticalScrollbar=false}if(!isNeedHScroll&&!isNeedVScroll){pageWidth+=scrollbarSize;pageHeight+=scrollbarSize}self._pageWidth=pageWidth;self._pageHeight=pageHeight;$contentWrapper.css({width:pageWidth,height:pageHeight});if(isInitEvent){$superPanel.append(self._container);self._initEvent()}};ScrollablePanel.prototype.scrollChildIntoView=function(item){var self=this;var offset=self._getScrollOffset(item),left=offset.left,top=offset.top;if(left!==keyword_null){self.hScrollTo(left)}if(top!==keyword_null&&self._vScrollbar){self.vScrollTo(top)}};ScrollablePanel.prototype.hScrollTo=function(left){var self=this;self._hScrollbar.value(left);var pageWidth=self._pageWidth,contentHeight=$(self._content).width();if(left>=0&&left<=contentHeight-pageWidth){$(self._tempContentWrapper).css(css_left,0-left)}};ScrollablePanel.prototype.useWijmoTheme=function(useWijmoTheme){var self=this;if(arguments.length===0){return self._useWijmoTheme}if(typeof useWijmoTheme==='boolean'&&self._useWijmoTheme!==useWijmoTheme){self._useWijmoTheme=useWijmoTheme;var hScrollbar=self._hScrollbar,vScrollbar=self._vScrollbar;if(hScrollbar){hScrollbar.useWijmoTheme(useWijmoTheme)}if(vScrollbar){vScrollbar.useWijmoTheme(useWijmoTheme)}}return self};ScrollablePanel.prototype.vScrollTo=function(top){var self=this;self._vScrollbar.value(top);var pageHeight=self._pageHeight,contentHeight=$(self._content).height();if(top>=0&&top<=contentHeight-pageHeight){$(self._tempContentWrapper).css(css_top,0-top)}};ScrollablePanel.prototype._isNeedScrollbars=function(contentWidth,contentHeight,superPanelWidth,superPanelHeight){var scrollbarSize=this._defaultScrollbarSize,pageWidth=superPanelWidth-scrollbarSize,pageHeight=superPanelHeight-scrollbarSize,result={isNeedHScroll:false,isNeedVScroll:false};if(contentWidth>superPanelWidth){result.isNeedHScroll=true;if(contentHeight>pageHeight){result.isNeedVScroll=true}else
{result.isNeedVScroll=false}}if(contentHeight>superPanelHeight){result.isNeedVScroll=true;if(contentWidth>pageWidth){result.isNeedHScroll=true}else
{result.isNeedHScroll=false}}if(contentWidth>pageWidth&&contentHeight>pageHeight){result.isNeedVScroll=true;result.isNeedHScroll=true}return result};ScrollablePanel.prototype._getScrollOffset=function(item){var $child=$(item),$contentWrapper=$(this._contentWrapper),$tempContentWrapper=$(this._tempContentWrapper),childOffset,tempContentWrapperOffset,contentWrapperOffset,leftDistance,rightDistance,topDistance,bottomDistance,result={left:keyword_null,top:keyword_null};if(!item){return result}childOffset=$child.offset();tempContentWrapperOffset=$tempContentWrapper.offset();contentWrapperOffset=$contentWrapper.offset();childOffset.leftWidth=childOffset.left+$child.outerWidth();childOffset.topHeight=childOffset.top+$child.outerHeight();contentWrapperOffset.leftWidth=contentWrapperOffset.left+$contentWrapper.outerWidth();contentWrapperOffset.topHeight=contentWrapperOffset.top+$contentWrapper.outerHeight();leftDistance=childOffset.left-tempContentWrapperOffset.left;if(childOffset.left<contentWrapperOffset.left){result.left=leftDistance}else if(childOffset.leftWidth>contentWrapperOffset.leftWidth){rightDistance=childOffset.leftWidth-tempContentWrapperOffset.left-$contentWrapper.innerWidth();if(leftDistance<rightDistance){result.left=leftDistance}else
{result.left=rightDistance}}topDistance=childOffset.top-tempContentWrapperOffset.top;if(childOffset.top<contentWrapperOffset.top){result.top=topDistance}else if(childOffset.topHeight>contentWrapperOffset.topHeight){bottomDistance=childOffset.topHeight-tempContentWrapperOffset.top-$contentWrapper.innerHeight();if(topDistance<bottomDistance){result.top=topDistance}else
{result.top=bottomDistance}}return result};ScrollablePanel.prototype._initEvent=function(){var self=this;if(this._tempContentWrapper){self._mousewheelHandler=function(event){self._contentContainerMousewheel(event)};EventUtil.addHandler(self._tempContentWrapper,e_mousewheel,self._mousewheelHandler);EventUtil.addHandler(self._tempContentWrapper,e_dommousescroll,self._mousewheelHandler)}};ScrollablePanel.prototype._contentContainerMousewheel=function(e){var self=this;if((typeof e.wheelDelta===const_undefined||e.wheelDelta===keyword_null)&&(typeof e.detail===const_undefined||e.detail===keyword_null)){e.wheelDelta=e.originalEvent.wheelDelta;e.detail=e.originalEvent.detail}var wheelData=e.detail?e.detail:e.wheelDelta/-40,dragOffset=wheelData;var vScrollbar=self._vScrollbar,topOffset=parseInt($(self._tempContentWrapper).css(css_top)),pageHeight=self._pageHeight,contentHeight=$(self._content).height();if(contentHeight<pageHeight){contentHeight=pageHeight}if(isNaN(topOffset)){topOffset=0}var posOffset=topOffset-dragOffset*self.verticalSmallChange();if(posOffset>=0){posOffset=0}if(posOffset<0&&0-posOffset>contentHeight-pageHeight){posOffset=0-(contentHeight-pageHeight)}if(posOffset!==topOffset){$(self._tempContentWrapper).css(css_top,posOffset);if(self._showVerticalScrollbar){vScrollbar.value(0-posOffset)}}spread.util.cancelDefault(e)};ScrollablePanel.prototype.dispose=function(){var self=this;if(self._container){if(self._hScrollbar){self._hScrollbar.dispose()}if(self._vScrollbar){self._vScrollbar.dispose()}if(self._tempContentWrapper&&self._mousewheelHandler){EventUtil.removeHandler(self._tempContentWrapper,e_mousewheel,self._mousewheelHandler);EventUtil.removeHandler(self._tempContentWrapper,e_dommousescroll,self._mousewheelHandler)}$(self._container).remove()}};return ScrollablePanel})();spread.ScrollablePanel=ScrollablePanel;var Scrollbar=(function(){function Scrollbar(isHorizontalScroll,width,height,pageValue,maximum,minimum,scrollType){var self=this;self._pageValue=10;self._maximum=100;self._minimum=0;self._value=0;self._largeChange=10;self._smallChange=1;self._scrollType=1;self._useWijmoTheme=false;self._scrollPosition=0;self._isMousedownInScrollbar=false;self._scrollTimeOutArrow=keyword_null;self._scrollTimeOutContainer=keyword_null;self._initialDelay=300;self._trackClickPepeatFreq=70;self._isHorizontalScroll=isHorizontalScroll;self._width=(typeof width==='number')?width:0;self._height=(typeof height==='number')?height:0;self._pageValue=(typeof pageValue==='number')?pageValue:0;self._maximum=(typeof maximum==='number')?maximum:0;self._minimum=(typeof minimum==='number')?minimum:0;self._scrollType=(typeof scrollType==='number')?scrollType:1;self._isMouseCapture=false;self._scrollPosition=0;self._value=self._minimum;self.refreshLayout()}Scrollbar.prototype.getScrollbar=function(){return this._scrollContainerDiv};Scrollbar.prototype.smallChange=function(smallChange){var self=this;if(arguments.length===0){return self._smallChange}if(typeof smallChange==='number'&&self._smallChange!==smallChange){self._smallChange=smallChange}return self};Scrollbar.prototype.largeChange=function(largeChange){var self=this;if(arguments.length===0){return self._largeChange}if(typeof largeChange==='number'&&self._largeChange!==largeChange){self._largeChange=largeChange}return self};Scrollbar.prototype.pageValue=function(value){var self=this;if(arguments.length===0){return self._pageValue}if(typeof value==='number'&&self._pageValue!==value){if(value<=0){value=1}self._pageValue=value}return self};Scrollbar.prototype.maximum=function(value){var self=this;if(arguments.length===0){return self._maximum}if(typeof value==='number'&&self._maximum!==value){if(value<=0){value=0}self._maximum=value}return self};Scrollbar.prototype.minimum=function(value){var self=this;if(arguments.length===0){return self._minimum}if(typeof value==='number'&&self._minimum!==value){if(value<=0){value=0}self._minimum=value}return self};Scrollbar.prototype.value=function(value){var self=this;if(arguments.length===0){return self._value}if(typeof value==='number'&&value<=self._maximum&&value>=self._minimum){self._value=value;var scrollPosition=(value-self._minimum)*self._scrollUnit;self.scrollTo(scrollPosition,false,true)}return self};Scrollbar.prototype.width=function(width){var self=this;if(arguments.length===0){return self._width}if(typeof width==='number'&&self._width!==width){self._width=width}return self};Scrollbar.prototype.height=function(height){var self=this;if(arguments.length===0){return self._height}if(typeof height==='number'&&self._height!==height){self._height=height}return self};Scrollbar.prototype.scrollType=function(scrollType){var self=this;if(arguments.length===0){return self._scrollType}if(typeof(ScrollType[scrollType])!==const_undefined&&self._scrollType!==scrollType){self._scrollType=scrollType}return self};Scrollbar.prototype.useWijmoTheme=function(useWijmoTheme){var self=this;if(arguments.length===0){return self._useWijmoTheme}if(typeof useWijmoTheme==='boolean'&&self._useWijmoTheme!==useWijmoTheme){self._useWijmoTheme=useWijmoTheme;var cssClass_startArrow=CSS_CLASS_ARROWLEFT,cssClass_endArrow=CSS_CLASS_ARROWRIGHT,cssClass_scrollbar=CSS_CLASS_HORIZONTALSCROLL,wijmoCssClass_PanelDiv='wijmo-wijsuperpanel-hbarcontainer ui-widget-header ui-corner-bottom',wijmoCssClass_ArrowStartDiv='ui-state-default ui-corner-bl',wijmoCssClass_ArrowStartSpan='ui-icon ui-icon-triangle-1-w',wijmoCssClass_Scroll='scroll-handle ui-state-default ui-corner-all ui-draggable',wijmoCssClass_ScrollSpan='ui-icon ui-icon-grip-solid-vertical',wijmoCssClass_ArrowEndDiv='ui-state-default ui-corner-br',wijmoCssClass_ArrowEndSpan='ui-icon ui-icon-triangle-1-e';if(!self._isHorizontalScroll){cssClass_startArrow=CSS_CLASS_ARROWUP;cssClass_endArrow=CSS_CLASS_ARROWDOWN;cssClass_scrollbar=CSS_CLASS_VERTICALSCROLL;wijmoCssClass_PanelDiv='wijmo-wijsuperpanel-vbarcontainer ui-widget-header ui-corner-right';wijmoCssClass_ArrowStartDiv='ui-state-default ui-corner-tr';wijmoCssClass_ArrowStartSpan='ui-icon ui-icon-triangle-1-n';wijmoCssClass_Scroll='scroll-handle ui-state-default ui-corner-all ui-draggable';wijmoCssClass_ScrollSpan='ui-icon ui-icon-grip-solid-horizontal';wijmoCssClass_ArrowEndDiv='ui-state-default ui-corner-br';wijmoCssClass_ArrowEndSpan='ui-icon ui-icon-triangle-1-s'}if(useWijmoTheme){$(self._scrollContainerDiv).removeClass(CSS_CLASS_SCROLLCONTAINER).addClass(wijmoCssClass_PanelDiv);$(self._arrowStartDiv).removeClass(CSS_CLASS_SCROLLARROW).addClass(wijmoCssClass_ArrowStartDiv);$(self._arrowStartSpan).removeClass(cssClass_startArrow).addClass(wijmoCssClass_ArrowStartSpan);$(self._scrollbarWrapperDiv).removeClass(CSS_CLASS_SCROLLBARWRAPPER).addClass(CSS_CLASS_SCROLLBARWRAPPER);$(self._scrollbarDiv).removeClass(CSS_CLASS_SCROLLBAR).addClass(wijmoCssClass_Scroll);$(self._scrollbarSpan).removeClass(cssClass_scrollbar).addClass(wijmoCssClass_ScrollSpan);$(self._arrowEndDiv).removeClass(CSS_CLASS_SCROLLARROW).addClass(wijmoCssClass_ArrowEndDiv);$(self._arrowEndSpan).removeClass(cssClass_endArrow).addClass(wijmoCssClass_ArrowEndSpan)}else
{$(self._scrollContainerDiv).removeClass(wijmoCssClass_PanelDiv).addClass(CSS_CLASS_SCROLLCONTAINER);$(self._arrowStartDiv).removeClass(wijmoCssClass_ArrowStartDiv).addClass(CSS_CLASS_SCROLLARROW);$(self._arrowStartSpan).removeClass(wijmoCssClass_ArrowStartSpan).addClass(cssClass_startArrow);$(self._scrollbarWrapperDiv).removeClass(CSS_CLASS_SCROLLBARWRAPPER).addClass(CSS_CLASS_SCROLLBARWRAPPER);$(self._scrollbarDiv).removeClass(wijmoCssClass_Scroll).addClass(CSS_CLASS_SCROLLBAR);$(self._scrollbarSpan).removeClass(wijmoCssClass_ScrollSpan).addClass(cssClass_scrollbar);$(self._arrowEndDiv).removeClass(wijmoCssClass_ArrowEndDiv).addClass(CSS_CLASS_SCROLLARROW);$(self._arrowEndSpan).removeClass(wijmoCssClass_ArrowEndSpan).addClass(cssClass_endArrow)}}return self};Scrollbar.prototype.refreshLayout=function(){var self=this;var height=self._height,width=self._width,arrowWidth=height,scrollbarContainerWidth=width-2*height,scrollbarContainerHeight=arrowWidth,css_scrollbarContainerPos=css_left,css_scrollbarPos=css_right,scrollbarWidth=0,scrollbarHeight=0,isInitEvent=false,borderWidth=2,cssClass_startArrow=CSS_CLASS_ARROWLEFT,cssClass_endArrow=CSS_CLASS_ARROWRIGHT,cssClass_scrollbar=CSS_CLASS_HORIZONTALSCROLL,css_scrollSpanMargin=css_marginLeft;if(self._isHorizontalScroll){self._scrollSize=scrollbarContainerWidth}else
{arrowWidth=width;scrollbarContainerWidth=arrowWidth;scrollbarContainerHeight=height-2*width;css_scrollbarContainerPos=css_top;css_scrollbarPos=css_bottom;self._scrollSize=scrollbarContainerHeight;cssClass_startArrow=CSS_CLASS_ARROWUP;cssClass_endArrow=CSS_CLASS_ARROWDOWN;cssClass_scrollbar=CSS_CLASS_VERTICALSCROLL;css_scrollSpanMargin=css_marginTop}var scrollSize=self._scrollSize;self._scrollbarSize=self._pageValue*scrollSize/(self._maximum-self._minimum+self._pageValue);if(self._scrollbarSize>scrollSize){self._scrollbarSize=scrollSize}if(self._scrollbarSize<10){self._scrollbarSize=10}var scrollbarSize=self._scrollbarSize;self._scrollUnit=(scrollSize-scrollbarSize)/(self._maximum-self._minimum);if(self._isHorizontalScroll){scrollbarWidth=scrollbarSize;scrollbarHeight=arrowWidth}else
{scrollbarWidth=arrowWidth;scrollbarHeight=scrollbarSize}if(!self._scrollContainerDiv){isInitEvent=true;self._scrollContainerDiv=document.createElement("div");$(self._scrollContainerDiv).css({position:'relative',left:0,top:0,overflow:'hidden',outline:'none'}).addClass(CSS_CLASS_SCROLLCONTAINER).addClass(CSS_CLASS_SCROLLOUTCONTAINER)}var $scrollContainerDiv=$(self._scrollContainerDiv);$scrollContainerDiv.css(css_width,width).css(css_height,height);if(!self._arrowStartDiv){self._arrowStartDiv=document.createElement("div");$(self._arrowStartDiv).css({position:'absolute',display:'inline-block'}).addClass(CSS_CLASS_SCROLLARROW);self._arrowStartSpan=document.createElement("span");$(self._arrowStartSpan).addClass(cssClass_startArrow);$(self._arrowStartDiv).append(self._arrowStartSpan);$scrollContainerDiv.append(self._arrowStartDiv)}$(self._arrowStartDiv).css(css_scrollbarContainerPos,0).css(css_width,arrowWidth-borderWidth).css(css_height,arrowWidth-borderWidth);$(self._arrowStartSpan).css({width:'100%',height:'100%',display:'block'});if(!self._scrollbarWrapperDiv){self._scrollbarWrapperDiv=document.createElement("div");$(self._scrollbarWrapperDiv).css({position:'absolute',display:'inline-block'}).addClass(CSS_CLASS_SCROLLBARWRAPPER);$scrollContainerDiv.append(self._scrollbarWrapperDiv)}var $scrollbarWrapperDiv=$(self._scrollbarWrapperDiv);$scrollbarWrapperDiv.css(css_scrollbarContainerPos,arrowWidth).css(css_width,scrollbarContainerWidth).css(css_height,scrollbarContainerHeight);if(!self._scrollbarDiv){self._scrollbarDiv=document.createElement("div");$(self._scrollbarDiv).css({position:'absolute'}).addClass(CSS_CLASS_SCROLLBAR).addClass(CSS_CLASS_NONE_USER_SELECT);self._scrollbarSpan=document.createElement("span");$(self._scrollbarSpan).addClass(cssClass_scrollbar);$(self._scrollbarDiv).append(self._scrollbarSpan);$scrollbarWrapperDiv.append(self._scrollbarDiv)}$(self._scrollbarDiv).css(css_scrollbarContainerPos,self._scrollPosition).css(css_width,scrollbarWidth-borderWidth).css(css_height,scrollbarHeight-borderWidth);$(self._scrollbarSpan).css({width:arrowWidth-borderWidth,height:arrowWidth-borderWidth,display:'block'});$(self._scrollbarSpan).css(css_scrollSpanMargin,(self._scrollbarSize-arrowWidth)/2);if(!self._arrowEndDiv){self._arrowEndDiv=document.createElement("div");$(self._arrowEndDiv).css({position:'absolute',display:'inline-block'}).addClass(CSS_CLASS_SCROLLARROW);self._arrowEndSpan=document.createElement("span");$(self._arrowEndSpan).addClass(cssClass_endArrow);$(self._arrowEndDiv).append(self._arrowEndSpan);$scrollContainerDiv.append(self._arrowEndDiv)}$(self._arrowEndDiv).css(css_scrollbarPos,0).css(css_width,arrowWidth-borderWidth).css(css_height,arrowWidth-borderWidth);$(self._arrowEndSpan).css({width:'100%',height:'100%',display:'block'});if(isInitEvent){if(!$scrollContainerDiv.attr('tabindex')){$scrollContainerDiv.attr('tabindex',-1)}self._initEvents()}};Scrollbar.prototype._initEvents=function(){var self=this;$(self._arrowStartDiv).bind(e_mousedown,function(e){self._arrowMousedown(e,true)}).bind(e_mouseup,function(e){self._arrowMouseup(e,true)}).bind(e_mouseover,function(e){self._arrowMouseover(e,true)}).bind(e_mouseout,function(e){self._arrowMouseout(e,true)});$(self._arrowEndDiv).bind(e_mousedown,function(e){self._arrowMousedown(e,false)}).bind(e_mouseup,function(e){self._arrowMouseup(e,false)}).bind(e_mouseover,function(e){self._arrowMouseover(e,false)}).bind(e_mouseout,function(e){self._arrowMouseout(e,false)});$(self._scrollbarDiv).bind(e_mousedown,function(e){self._scrollbarMousedown(e)}).bind(e_mousemove,function(e){self._scrollbarMousemove(e)}).bind(e_mouseup,function(e){self._scrollbarMouseup(e)}).bind(e_mouseover,function(e){self._scrollbarMouseover(e)}).bind(e_mouseout,function(e){self._scrollbarMouseout(e)});$(self._scrollbarWrapperDiv).bind(e_mousedown,function(e){self._scrollbarContainerMousedown(e)}).bind(e_mouseup,function(e){self._scrollbarContainerMouseup(e)});self._mousewheelHandler=function(event){self._scrollContainerMousewheel(event)};EventUtil.addHandler(self._scrollContainerDiv,e_mousewheel,self._mousewheelHandler);EventUtil.addHandler(self._scrollContainerDiv,e_dommousescroll,self._mousewheelHandler);$(self._scrollContainerDiv).bind(e_keydown,function(e){self._scrollContainerKeydown(e)});if(spread.features.touch){self._simulateMouseEvents=new wijmo.spread._SimulateMouseEvents;self._simulateMouseEvents.bindUnBindTouchEvents(self._scrollContainerDiv,true,ns_scrollbar)}};Scrollbar.prototype.dispose=function(){var self=this,scrollContainerDiv=self._scrollContainerDiv;if(self._arrowEndDiv){$(self._arrowEndDiv).unbind(ns_scrollbar)}if(self._scrollbarDiv){$(self._scrollbarDiv).unbind(ns_scrollbar)}if(self._arrowStartDiv){$(self._arrowStartDiv).unbind(ns_scrollbar)}if(self._scrollbarWrapperDiv){$(self._scrollbarWrapperDiv).unbind(ns_scrollbar)}if(scrollContainerDiv){if(self._mousewheelHandler){EventUtil.removeHandler(scrollContainerDiv,e_mousewheel,self._mousewheelHandler);EventUtil.removeHandler(scrollContainerDiv,e_dommousescroll,self._mousewheelHandler)}if(self._simulateMouseEvents){self._simulateMouseEvents.bindUnBindTouchEvents(self._scrollContainerDiv,false,ns_scrollbar)}$(scrollContainerDiv).removeAttr("tabindex").unbind(ns_scrollbar).remove()}};Scrollbar.prototype._handleDocumentMouseMove=function(){var self=this;if(!self._isMouseCapture){$(document).bind(e_mousemove,function(e){self._scrollbarMousemove(e)}).bind(e_mouseup,function(e){self._scrollbarMouseup(e)});self._isMouseCapture=true}};Scrollbar.prototype._unhandleDocumentMouseMove=function(){if(this._isMouseCapture){this._isMouseCapture=false;$(document).unbind(e_mousemove).unbind(e_mouseup)}};Scrollbar.prototype._arrowMousedown=function(e,isStart){var scrollOffset=0,self=this,isFirst=true;if(self._scrollTimeOutArrow!==null){return}if(isStart){if(!self._useWijmoTheme){$(self._arrowStartDiv).addClass('scrollbar-stateActive')}else
{$(self._arrowStartDiv).addClass('ui-state-active')}scrollOffset=0-self._smallChange*self._scrollUnit;self._scrollEventType=0}else
{if(!self._useWijmoTheme){$(self._arrowEndDiv).addClass('scrollbar-stateActive')}else
{$(self._arrowEndDiv).addClass('ui-state-active')}scrollOffset=self._smallChange*self._scrollUnit;self._scrollEventType=1}var doScroll=function(){self.scrollTo(self._scrollPosition+scrollOffset,true);if(self._scrollType===1){self._scrollTimeOutArrow=setTimeout(doScroll,isFirst?self._initialDelay:self._trackClickPepeatFreq)}isFirst=false};doScroll()};Scrollbar.prototype._arrowMouseup=function(e,isStart){var self=this,$arrowDiv=$(self._arrowStartDiv);if(!isStart){$arrowDiv=$(self._arrowEndDiv)}if(!self._useWijmoTheme){$arrowDiv.removeClass('scrollbar-stateActive')}else
{$arrowDiv.removeClass('ui-state-active')}self._endArrowScroll()};Scrollbar.prototype._arrowMouseover=function(e,isStart){var self=this;var $arrowDiv=$(self._arrowStartDiv);if(!isStart){$arrowDiv=$(self._arrowEndDiv)}if(!self._useWijmoTheme){$arrowDiv.addClass('scrollbar-stateHover')}else
{$arrowDiv.addClass('ui-state-hover')}};Scrollbar.prototype._arrowMouseout=function(e,isStart){var self=this;var $arrowDiv=$(self._arrowStartDiv);if(!isStart){$arrowDiv=$(self._arrowEndDiv)}if(!self._useWijmoTheme){$arrowDiv.removeClass('scrollbar-stateHover').removeClass('scrollbar-stateActive')}else
{$arrowDiv.removeClass('ui-state-hover').removeClass('ui-state-active')}self._endArrowScroll()};Scrollbar.prototype._scrollbarMousedown=function(e){var self=this;if(e.button===0){self._isMousedownInScrollbar=true;self._oldPosition={x:e.pageX,y:e.pageY};self._handleDocumentMouseMove();if(!self._useWijmoTheme){$(self._scrollbarDiv).addClass('scrollbar-stateActive')}else
{$(self._scrollbarDiv).addClass('ui-state-active')}var scrollbarOffset=$(self._scrollbarDiv).offset(),scrollbarWidth=$(self._scrollbarDiv).outerWidth(true),scrollbarHeight=$(self._scrollbarDiv).outerHeight(true),scrollbarWrapperOffset=$(self._scrollbarWrapperDiv).offset(),scrollbarWrapperWidth=$(self._scrollbarWrapperDiv).outerWidth(true),scrollbarWrapperHeight=$(self._scrollbarWrapperDiv).outerHeight(true);self._edgePosition={isBeyondEdge:false,startEdgePosition:{x:scrollbarWrapperOffset.left+e.pageX-scrollbarOffset.left,y:scrollbarWrapperOffset.top+e.pageY-scrollbarOffset.top},endEdgePosition:{x:scrollbarWrapperOffset.left+scrollbarWrapperWidth-(scrollbarWidth-e.pageX+scrollbarOffset.left),y:scrollbarWrapperOffset.top+scrollbarWrapperHeight-(scrollbarHeight-e.pageY+scrollbarOffset.top)}}}};Scrollbar.prototype._scrollbarMousemove=function(e){var self=this;if(self._isMousedownInScrollbar){self._currentPosition={x:e.pageX,y:e.pageY};self._scrollbarDrag();self._oldPosition=self._currentPosition;$(document.body).addClass(CSS_CLASS_NONE_USER_SELECT)}};Scrollbar.prototype._scrollbarMouseup=function(e){var self=this;self._isMousedownInScrollbar=false;self._scrollEventType=4;self._edgePosition=null;var args={newValue:self._value,oldValue:self._value,scrollOrientation:self._isHorizontalScroll?0:1,scrollEventType:self._scrollEventType};$(self._scrollContainerDiv).trigger(e_scroll,args);var value=self._value,fixScrollPosition=(value-self._minimum)*self._scrollUnit,css_direction='left';if(!self._isHorizontalScroll){css_direction='top'}self._scrollPosition=fixScrollPosition;$(self._scrollbarDiv).css(css_direction,fixScrollPosition);self._unhandleDocumentMouseMove();$(document.body).removeClass(CSS_CLASS_NONE_USER_SELECT);if(!self._useWijmoTheme){$(self._scrollbarDiv).removeClass('scrollbar-stateActive')}else
{$(self._scrollbarDiv).removeClass('ui-state-active')}self._scrollEventType=8;var args={newValue:self._value,oldValue:self._value,scrollOrientation:self._isHorizontalScroll?0:1,scrollEventType:self._scrollEventType};$(self._scrollContainerDiv).trigger(e_scroll,args)};Scrollbar.prototype._scrollbarMouseover=function(e){if(!this._useWijmoTheme){$(this._scrollbarDiv).addClass('scrollbar-stateHover')}else
{$(this._scrollbarDiv).addClass('ui-state-hover')}};Scrollbar.prototype._scrollbarMouseout=function(e){if(!this._useWijmoTheme){$(this._scrollbarDiv).removeClass('scrollbar-stateHover')}else
{$(this._scrollbarDiv).removeClass('ui-state-hover')}};Scrollbar.prototype._scrollContainerMousewheel=function(e){var self=this;if((typeof e.wheelDelta===const_undefined||e.wheelDelta===keyword_null)&&(typeof e.detail===const_undefined||e.detail===keyword_null)){e.wheelDelta=e.originalEvent.wheelDelta;e.detail=e.originalEvent.detail}var wheelData=e.detail?e.detail:e.wheelDelta/-40,dragOffset=wheelData/3*self._smallChange*self._scrollUnit;self._scrollEventType=dragOffset>=0?1:0;self.scrollTo(self._scrollPosition+dragOffset,true);self._scrollEventType=8;var args={newValue:self._value,oldValue:self._value,scrollOrientation:self._isHorizontalScroll?0:1,scrollEventType:self._scrollEventType};$(self._scrollContainerDiv).trigger(e_scroll,args);spread.util.cancelDefault(e)};Scrollbar.prototype._scrollContainerKeydown=function(e){var self=this;var shift=e.shiftKey,keycode=e.keyCode,dragOffset=0,scrollPosition=self._scrollPosition,destPosition=scrollPosition;if(self._isHorizontalScroll){if(keycode===37){dragOffset=self._calcMovingOffsetByKeydown(shift,'left');destPosition=scrollPosition-dragOffset}if(keycode===39){dragOffset=self._calcMovingOffsetByKeydown(shift,'right');destPosition=scrollPosition+dragOffset}}else
{if(keycode===38){dragOffset=self._calcMovingOffsetByKeydown(shift,'top');destPosition=scrollPosition-dragOffset}if(keycode===40){dragOffset=self._calcMovingOffsetByKeydown(shift,'bottom');destPosition=scrollPosition+dragOffset}}if(destPosition!==self._scrollPosition){self.scrollTo(destPosition,true)}self._scrollEventType=8;var args={newValue:self._value,oldValue:self._value,scrollOrientation:self._isHorizontalScroll?0:1,scrollEventType:self._scrollEventType};$(self._scrollContainerDiv).trigger(e_scroll,args)};Scrollbar.prototype._scrollbarContainerMousedown=function(e){var self=this,isFirst=true,pageX=e.pageX,pageY=e.pageY,direction=0,offset=$(self._scrollbarWrapperDiv).offset(),largetStepOffset=self._largeChange*self._scrollUnit;if(self._scrollTimeOutContainer!==null){return}if(self._isHorizontalScroll){direction=pageX-offset.left-self._scrollPosition}else
{direction=pageY-offset.top-self._scrollPosition}var doScroll=function(){var offset=$(self._scrollbarWrapperDiv).offset(),pos=0,scrollPosition=self._scrollPosition;if(self._isHorizontalScroll){pos=pageX-offset.left-scrollPosition}else
{pos=pageY-offset.top-scrollPosition}if(pos*direction<0||pos>=0&&pos<self._scrollbarSize){self._endContainerScroll();return}if(direction<0){self._scrollEventType=2;self.scrollTo(scrollPosition-largetStepOffset,true)}else if(direction>0){self._scrollEventType=3;self.scrollTo(scrollPosition+largetStepOffset,true)}else
{self._endContainerScroll();return}if(self._scrollType===1){self._scrollTimeOutContainer=setTimeout(doScroll,isFirst?self._initialDelay:self._trackClickPepeatFreq)}isFirst=false};doScroll()};Scrollbar.prototype._scrollbarContainerMouseup=function(e){this._endContainerScroll()};Scrollbar.prototype._endContainerScroll=function(){var self=this;self._scrollTimeOutContainer&&clearTimeout(self._scrollTimeOutContainer);self._scrollTimeOutContainer=keyword_null;self._scrollEventType=8;var args={newValue:self._value,oldValue:self._value,scrollOrientation:self._isHorizontalScroll?0:1,scrollEventType:self._scrollEventType};$(self._scrollContainerDiv).trigger(e_scroll,args)};Scrollbar.prototype._endArrowScroll=function(){var self=this;self._scrollTimeOutArrow&&clearTimeout(self._scrollTimeOutArrow);self._scrollTimeOutArrow=keyword_null;self._scrollEventType=8;var args={newValue:self._value,oldValue:self._value,scrollOrientation:self._isHorizontalScroll?0:1,scrollEventType:self._scrollEventType};$(self._scrollContainerDiv).trigger(e_scroll,args)};Scrollbar.prototype._calcMovingOffsetByKeydown=function(shift,direction){var self=this;if(shift){if(direction==='left'||direction==='top'){self._scrollEventType=2}else
{self._scrollEventType=3}return self._largeChange*self._scrollUnit}else
{if(direction==='left'||direction==='top'){self._scrollEventType=0}else
{self._scrollEventType=1}return self._smallChange*self._scrollUnit}};Scrollbar.prototype._scrollbarDrag=function(){var self=this;var destPosition=0,scrollPosition=self._scrollPosition,currentPosition=self._currentPosition,edgePosition=self._edgePosition;if(self._isHorizontalScroll){if(edgePosition&&edgePosition.isBeyondEdge){var startEdgePositionX=edgePosition.startEdgePosition.x,endEdgePositionX=edgePosition.endEdgePosition.x,isBeyondStart=currentPosition.x<startEdgePositionX,isBeyondEnd=currentPosition.x>endEdgePositionX;if(isBeyondStart||isBeyondEnd){return}if(self._oldPosition.x<startEdgePositionX){self._oldPosition.x=startEdgePositionX}if(self._oldPosition.x>endEdgePositionX){self._oldPosition.x=endEdgePositionX}}var dragOffsetH=currentPosition.x-self._oldPosition.x;destPosition=scrollPosition+dragOffsetH}else
{if(edgePosition&&edgePosition.isBeyondEdge){var startEdgePositionY=edgePosition.startEdgePosition.y,endEdgePositionY=edgePosition.endEdgePosition.y,isBeyondStart=currentPosition.y<startEdgePositionY,isBeyondEnd=currentPosition.y>endEdgePositionY;if(isBeyondStart||isBeyondEnd){return}}if(self._oldPosition.y<startEdgePositionY){self._oldPosition.y=startEdgePositionY}if(self._oldPosition.y>endEdgePositionY){self._oldPosition.y=endEdgePositionY}var dragOffsetV=currentPosition.y-self._oldPosition.y;destPosition=scrollPosition+dragOffsetV}if(destPosition!==scrollPosition){self._scrollEventType=5;self.scrollTo(destPosition,false)}};Scrollbar.prototype.scrollTo=function(destPosition,isAnimation,notTriggerEvent){var self=this;var css_direction=css_top,scrollScope=self._scrollSize-self._scrollbarSize,direction='',scrollPosition=self._scrollPosition,ScrollOrientation=spread.ScrollOrientation;if(self._isHorizontalScroll){css_direction=css_left}var isBeyondEdge=false;if(destPosition>scrollScope){destPosition=scrollScope;isBeyondEdge=true}if(destPosition<0){destPosition=0;isBeyondEdge=true}if(self._edgePosition){self._edgePosition.isBeyondEdge=isBeyondEdge}if(scrollPosition===destPosition){return}var newValue=Math.round(destPosition/self._scrollUnit)+self._minimum,oldValue=self._value;if(Math.abs(newValue-oldValue)>=1){if(!notTriggerEvent){var args={newValue:newValue,oldValue:oldValue,scrollOrientation:self._isHorizontalScroll?0:1,scrollEventType:self._scrollEventType};$(self._scrollContainerDiv).trigger(e_scroll,args);newValue=args.newValue}self._value=newValue;if(self._scrollEventType!==5){destPosition=(newValue-self._minimum)*self._scrollUnit}}self._scrollPosition=destPosition;if(isAnimation){var paramsV={};paramsV[css_direction]=destPosition;$(self._scrollbarDiv).animate(paramsV,{duration:250,esaing:'linear',queue:false,disabled:false})}else
{$(self._scrollbarDiv).css(css_direction,destPosition)}};return Scrollbar})();spread.Scrollbar=Scrollbar})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var __extends=this.__extends||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __};var wijmo;(function(wijmo){(function(spread){spread.feature("core.basecelltype",["core.common","core.globalize","core.theme"]);var document=window.document,cssPositoin="position",cssAbsolute="absolute",cssMargin="margin",cssFont="font",cssClass="class",cssLeft="left",cssRight="right",cssTop="top",cssAlphabetic="alphabetic",cssCenter="center",cssAttr="gcUIElement",cssNone="none",zero="0",selectedFillColor="#9fa9c5",gradientColorStop1="#f6fafb",gradientColorStop2="#d2dbeb",_gcEditingInput=".gcEditingInput",_keyDown_gcEditingInput="keydown"+_gcEditingInput,_keyUp_gcEditingInput="keyup"+_gcEditingInput,_paste_gcEditingInput="paste"+_gcEditingInput,_mousedown_gcEditingInput="mousedown"+_gcEditingInput,_compositionstart_gcEditingInput="compositionstart"+_gcEditingInput,_compositionupdaten_gcEditingInput="compositionupdate"+_gcEditingInput,_compositionend_gcEditingInput="compositionend"+_gcEditingInput,cssWidth="width",cssHeight="height",cssPadding="padding",cssPaddingLeft="padding-left",cssPaddingRight="padding-right",cssPaddingTop="padding-top",cssPaddingBottom="padding-bottom",cssTextAlign="text-align",cssHidden="hidden",cssVisibility="visibility",cssWordWrap="word-wrap",cssOverflow="overflow",cssNormal="normal",cssBreakWord="break-word",cssOverflowY="overflow-y",cssResize="resize",cssBorder="border",cssOutline="outline",cssBoxShadow="box-shadow",cssBoxSizing="box-sizing",cssAutoComplete="autocomplete",cssColor="color",cssBorderWidth="border-width",cssBackgroundColor="background-color",cssZIndex="z-index",cssTextDecoration="text-decoration",cssImeMode="ime-mode",cssOverline="overline",cssLineThrough="line-through",cssUnderline="underline",const_undefined="undefined",keyword_undefined=undefined,keyword_null=null,Math_floor=Math.floor,Math_ceil=Math.ceil,Math_min=Math.min,Math_max=Math.max;(function(CellTypeKind){CellTypeKind[CellTypeKind["BaseCellType"]=0]="BaseCellType";CellTypeKind[CellTypeKind["TextCellType"]=1]="TextCellType";CellTypeKind[CellTypeKind["ColumnHeaderCellType"]=2]="ColumnHeaderCellType";CellTypeKind[CellTypeKind["RowHeaderCellType"]=3]="RowHeaderCellType";CellTypeKind[CellTypeKind["CornerCellType"]=4]="CornerCellType";CellTypeKind[CellTypeKind["CheckBoxCellType"]=5]="CheckBoxCellType";CellTypeKind[CellTypeKind["ButtonCellType"]=6]="ButtonCellType";CellTypeKind[CellTypeKind["ComboBoxCellType"]=7]="ComboBoxCellType";CellTypeKind[CellTypeKind["HyperLinkCellType"]=8]="HyperLinkCellType"})(spread.CellTypeKind||(spread.CellTypeKind={}));var CellTypeKind=spread.CellTypeKind;var CellTypeContext=(function(){function CellTypeContext(){}CellTypeContext._getAutoFitWidth=function(sheet,value,text,cellStyle,isFilterHeader,context){var width=0;if(typeof text==="string"&&text!==""){if(cellStyle.wordWrap){var indent=0,textIndent=cellStyle.textIndent;if(textIndent>0){indent=textIndent*8}var lines=text.split(/\r\n|\r|\n/);for(var i=0;i<lines.length;i++){width=Math_max(width,spread._WordWrapHelper._measureTextWithoutEndSpaces(lines[i],cellStyle.font)/sheet._zoomFactor)}}else
{width=sheet._getStringWidthByCanvas(text,cellStyle.font)/sheet._zoomFactor}if(cellStyle.hAlign!==1&&cellStyle.textIndent>0){width+=cellStyle.textIndent*8/sheet._zoomFactor}if(isFilterHeader){var filterButtonZoom=Math_min(sheet._zoomFactor,1);var buttonwidth=parseInt((sheet.defaults.rowHeight*filterButtonZoom).toString(),10);width+=buttonwidth}}return width};CellTypeContext._getAutoFitHeight=function(sheet,value,text,cellStyle,columnWidth,context){var height=0;if(typeof text==="string"&&text!==""){var lineHeight=sheet._getFontHeight(cellStyle.font)/sheet._zoomFactor;if(cellStyle.wordWrap){var indent=0,textIndent=cellStyle.textIndent;if(textIndent>0){indent=textIndent*8}var lines=spread._WordWrapHelper._getWrapInfo(text,columnWidth-3-indent,cellStyle.font);height=lines.length*lineHeight}else
{height=lineHeight}}return height};CellTypeContext.paintBackground=function(ctx,x,y,w,h,backColor,backgroundImage,backgroundImageLayout,imageLoader){if(!backColor&&!backgroundImage){return}ctx.save();ctx.beginPath();if(backColor){if(ctx.fillStyle!==backColor){ctx.fillStyle=backColor}ctx.fillRect(x,y,w,h)}if(backgroundImage&&backgroundImage!==cssNone&&imageLoader){try
{if(imageLoader.getState(backgroundImage)){var bkImg=imageLoader.getImage(backgroundImage);var imgWidth=bkImg.width;var imgHeight=bkImg.height;var sx=0,sy=0,swidth=imgWidth,sheight=imgHeight,useWidth=w,useHeight=h;var px=x,py=y;switch(backgroundImageLayout){case 0:break;case 1:swidth=w>=imgWidth?imgWidth:w;sheight=h>=imgHeight?imgHeight:h;px=(w>imgWidth)&&(imgWidth>0)?x+w/2-imgWidth/2:x;py=(h>imgHeight)&&(imgHeight>0)?y+h/2-imgHeight/2:y;useWidth=swidth;useHeight=sheight;break;case 2:if(h>0&&imgHeight>0&&w/h>imgWidth/imgHeight){useWidth=imgWidth/imgHeight*h;px=x+w/2-useWidth/2}else if(w>0&&imgWidth>0&&h/w>imgHeight/imgWidth){useHeight=imgHeight/imgWidth*w;py=y+h/2-useHeight/2}break;case 3:swidth=w>=imgWidth?imgWidth:w;sheight=h>=imgHeight?imgHeight:h;useWidth=swidth;useHeight=sheight;break;default:break}ctx.drawImage(bkImg,sx,sy,swidth,sheight,px,py,useWidth,useHeight)}else
{imageLoader.addImage(backgroundImage)}}catch(ex){}}ctx.restore()};CellTypeContext.paintConditionalFormats=function(ctx,value,x,y,w,h,style,options){var conditionalFormats=options.conditionalFormats;if(!conditionalFormats||conditionalFormats.count()<=0){return}var sheet=options.sheet,row=options.row,col=options.col,rules=conditionalFormats.getRules(row,col),rulesLength=rules.length;if(rulesLength<=0){return false}ctx.save();ctx.beginPath();var showBarOnly=false,showIconOnly=false,dataBarRule=keyword_null,iconSetRule=keyword_null,rule=keyword_null,obj=keyword_null;rules.sort(function(a,b){return a.priority()-b.priority()});for(var n=0;n<rulesLength;n++){rule=rules[n];if(rule){if(!dataBarRule&&rule instanceof spread.DataBarRule){dataBarRule=rule}else if(!iconSetRule&&rule instanceof spread.IconSetRule){iconSetRule=rule}if(rule.stopIfTrue()){obj=rule.evaluate(sheet,row,col,value);if(obj){break}}}}if(dataBarRule){obj=dataBarRule.evaluate(sheet,row,col,value);if(obj){dataBarRule._paintDataBar(ctx,obj,x,y,w,h);showBarOnly=obj.showBarOnly}}if(iconSetRule){obj=iconSetRule.evaluate(sheet,row,col,value);if(obj){if(w<16||h<16){ctx.rect(x,y,w,h);ctx.clip();ctx.beginPath()}iconSetRule._paintIconSet(ctx,obj,x,y,w,h,style,options.imageLoader);showIconOnly=obj.showIconOnly}}ctx.restore();return(showBarOnly||showIconOnly)};CellTypeContext.paintSparkline=function(ctx,x,y,w,h,sparkline){if(sparkline){sparkline.paintSparkline(ctx,x,y,w,h)}};CellTypeContext.paintSparklineEx=function(ctx,value,x,y,w,h,sheet){if(spread.features.sparklineEx&&value instanceof spread.SparklineExValue){var sp=sheet&&sheet.parent;if(sp){var sparklineEx=sp.getSparklineEx(value.name);if(sparklineEx){sparklineEx._paintSparkline(ctx,value.value,x,y,w,h,sheet);return true}}}return false};return CellTypeContext})();spread.CellTypeContext=CellTypeContext;var BaseCellType=(function(){function BaseCellType(){this.allowOverflow=false}BaseCellType.prototype.paintValue=function(ctx,value,x,y,w,h,style,options){var conditionalForeColor={value:keyword_null},text;text=this.format(value,style.formatter||style._autoFormatter,conditionalForeColor);if(!text){return}ctx.save();ctx.beginPath();var fillStyle=style.foreColor,font=style.font;if(conditionalForeColor.value){fillStyle=conditionalForeColor.value}if(fillStyle&&ctx.fillStyle!==fillStyle){ctx.fillStyle=fillStyle}if(font&&ctx.font!==font){ctx.font=font}var indent=0,textIndent=style.textIndent,wordWrap=style.wordWrap,hAlign=style.hAlign,vAlign=style.vAlign,textDecoration=style.textDecoration,textAlign=cssLeft,textBaseline=cssAlphabetic,adjX=2,adjY=2,textHeight=0,lineHeight=options.lineHeight,lines=[],lineCount=0,fontSize=options.fontInfo.fontSize;if(textIndent>0){indent=textIndent*8}if(hAlign===3){hAlign=spread.util.getHAlignByValueType(hAlign,value)}adjX+=indent;if(hAlign===1){adjX=w/2;textAlign=cssCenter}else if(hAlign===2){adjX=w-1-2;adjX-=indent;textAlign=cssRight}if(ctx.textAlign!==textAlign){ctx.textAlign=textAlign}if(wordWrap){lines=spread._WordWrapHelper._getWrapInfo(text,w-3-indent,font);lineCount=lines.length;if(lineCount>1&&vAlign!==0){textHeight=(lineCount-1)*lineHeight}}var baselineOffset=fontSize>8?Math_floor((fontSize-8)/5+2):1,lineOffset=lineHeight/2-fontSize/2+baselineOffset;adjY+=lineHeight-lineOffset;if(vAlign===1){adjY=(h-textHeight)/2+lineHeight/2-lineOffset}else if(vAlign===2){adjY=h-textHeight-2-lineOffset}if(ctx.textBaseline!==textBaseline){ctx.textBaseline=textBaseline}var clipRect={x:x,y:y,width:w-1,height:h},cellOverflowlayout=options.cellOverflowLayout,layout=(cellOverflowlayout&&cellOverflowlayout.layout);if(layout){clipRect={x:layout.x,y:layout.y,width:layout.width,height:layout.height}}if(wordWrap){ctx.rect(clipRect.x,clipRect.y,clipRect.width,clipRect.height);ctx.clip();ctx.beginPath();var vpos=y+adjY;for(var i=0;i<lineCount;i++){ctx.fillText(lines[i],x+adjX,vpos);if(textDecoration){var textLength=ctx.measureText(lines[i]).width;this._renderTextDecoration(ctx,textDecoration,x+adjX,vpos,textLength,fontSize,baselineOffset)}vpos+=lineHeight}}else
{var txtWidth=ctx.measureText(text).width,clipWidth=clipRect.width,clipHeight=clipRect.height,needClip=(txtWidth>clipWidth||lineHeight>clipHeight);if(!needClip){if(hAlign===1){if(cellOverflowlayout){var txtHalfWidth=txtWidth/2;if(txtHalfWidth>cellOverflowlayout.backgroundLeftWidth||txtHalfWidth>cellOverflowlayout.backgroundRightWidth){needClip=true}}}else
{if(txtWidth+indent>clipWidth){needClip=true}}}if(needClip){ctx.rect(clipRect.x,clipRect.y,clipWidth,clipHeight);ctx.clip();ctx.beginPath()}ctx.fillText(text,x+adjX,y+adjY);if(textDecoration){this._renderTextDecoration(ctx,textDecoration,x+adjX,y+adjY,txtWidth,fontSize,baselineOffset)}}ctx.restore()};BaseCellType.prototype.paint=function(ctx,value,x,y,w,h,style,context){};BaseCellType.prototype.createEditorElement=function(context){return keyword_null};BaseCellType.prototype._getLocator=function(){var span=document.createElement("span");$(span).css(cssPositoin,cssAbsolute).css(cssVisibility,cssHidden).css(cssBackgroundColor,"#68E").css(cssMargin,zero).css(cssPadding,"2px").css(cssFont,"normal 12px Arial").css(cssColor,"white").css(cssBorderWidth,zero).attr(cssClass,"gc-input-locator").attr(cssAttr,"gcEditingLocator");return span};BaseCellType.prototype.getEditorValue=function(editorContext,context){return keyword_null};BaseCellType.prototype._formatEditorValue=function(editorContext,cellStyle,value,context){return value};BaseCellType.prototype.setEditorValue=function(editorContext,value,context){};BaseCellType.prototype.getEditingElement=function(){return keyword_null};BaseCellType.prototype.parse=function(text,formatStr,context){var formatStrIsNull=(typeof(formatStr)===const_undefined||formatStr===keyword_null),textIsNull=(typeof(text)===const_undefined||text===keyword_null);if(formatStrIsNull||textIsNull){return textIsNull?"":text.toString()}else
{try
{if(spread.features.formatter){var formatter=(typeof(formatStr)==='string'?new spread.GeneralFormatter(formatStr):formatStr);return formatter.Parse(text)}else
{return text.toString()}}catch(ex){return text.toString()}}};BaseCellType.prototype.format=function(value,format,conditionalForeColor,context){if(value===keyword_undefined||value===keyword_null||value===""){return''}if(!format){if(typeof value==='boolean'||value instanceof Boolean){return value.toString().toUpperCase()}else if(value instanceof Date){return new spread._DateTimeHelper(value).localeFormat("M/d/yyyy h:mm:ss")}return value.toString()}else
{try
{if(spread.features.formatter){var formatter=keyword_null;if(typeof format==="string"){formatter=new spread.GeneralFormatter(format)}else
{formatter=format}return formatter.Format(value,conditionalForeColor)}else
{return value.toString()}}catch(ex){return value.toString()}}};BaseCellType.prototype.focus=function(editorContext,context){if(editorContext&&editorContext.focus){editorContext.focus()}};BaseCellType.prototype.getThemeStyle=function(visualState){return spread.Global.prototype.getWijmoThemeStyle(visualState)};BaseCellType.prototype.activateEditor=function(editorContext,cellStyle,cellRect,context){};BaseCellType.prototype.deactivateEditor=function(editorContext,context){};BaseCellType.prototype.selectAll=function(editorContext,context){if(editorContext&&editorContext.select){editorContext.select()}};BaseCellType.prototype.updateEditor=function(editorContext,cellStyle,cellRect,context){};BaseCellType.prototype.setImeMode=function(editorContext,imeMode,context){if(this.isImeAware(context)){this.updateImeMode(editorContext,imeMode,context)}else if(editorContext){$(editorContext).css(cssImeMode,this._getImeModeString(0))}};BaseCellType.prototype.updateImeMode=function(editorContext,imeMode,context){if(editorContext){$(editorContext).css(cssImeMode,this._getImeModeString(imeMode))}};BaseCellType.prototype._getImeModeString=function(imeMode){var cssImeModeString="";if(imeMode===keyword_undefined){imeMode=1}switch(imeMode){case 1:cssImeModeString="auto";break;case 2:cssImeModeString="active";break;case 4:cssImeModeString="inactive";break;case 0:cssImeModeString="disabled";break}return cssImeModeString};BaseCellType.prototype._updateEditorLocator=function(editorContext,context){var sheet=(editorContext&&context&&context.sheet);if(sheet&&sheet.isEditing()&&sheet.showEditingLocator){var locator=editorContext._editingLocator,$editor=$(editorContext);if(locator){$(locator).css(cssTop,parseInt($editor.css(cssTop),10)-18).css(cssLeft,parseInt($editor.css(cssLeft),10))}}};BaseCellType.prototype.getHitInfo=function(x,y,cellStyle,cellRect,context){return keyword_null};BaseCellType.prototype.processMouseDown=function(hitInfo){return false};BaseCellType.prototype.processMouseMove=function(hitInfo){return false};BaseCellType.prototype.processMouseUp=function(hitInfo){return false};BaseCellType.prototype.processMouseEnter=function(hitInfo){};BaseCellType.prototype.processMouseLeave=function(hitInfo){};BaseCellType.prototype.isReservedKey=function(e,context){return false};BaseCellType.prototype.isEditingValueChanged=function(oldValue,newValue,context){return oldValue!==newValue};BaseCellType.prototype.processKeyDown=function(event,context){return false};BaseCellType.prototype.processKeyUp=function(event,context){return false};BaseCellType.prototype._getAutoFitWidth=function(sheet,value,text,cellStyle,isFilterHeader,context){return 0};BaseCellType.prototype._getAutoFitHeight=function(sheet,value,text,cellStyle,columnWidth,context){return 0};BaseCellType.prototype._renderTextDecoration=function(ctx,textDecoration,x,y,textLength,fontSize,offset){ctx.strokeStyle=ctx.fillStyle;var vposY=0,lineWidth=0,posOffset=0.5,fontSizeTemp;fontSizeTemp=fontSize<=12?12:fontSize;lineWidth=Math_floor((fontSizeTemp-12)/21+1);ctx.lineWidth=lineWidth;if((lineWidth&1)===0){posOffset=0}if(ctx.textAlign===cssCenter){x=x-textLength/2}else if(ctx.textAlign===cssRight){x=x-textLength}ctx.beginPath();if((textDecoration&4)===4){vposY=Math_ceil(y+offset-fontSize-1)-posOffset;ctx.moveTo(x,vposY);ctx.lineTo(x+textLength,vposY)}if((textDecoration&2)===2){vposY=Math_ceil(y+offset-fontSize/2)-posOffset;ctx.moveTo(x,vposY);ctx.lineTo(x+textLength,vposY)}if((textDecoration&1)===1){vposY=Math_ceil(y+offset-1)-posOffset;ctx.moveTo(x,vposY);ctx.lineTo(x+textLength,vposY)}ctx.stroke()};BaseCellType.prototype._setEditStatusTextDecoration=function(content,textDecorationType){var textDecoration="";if((textDecorationType&4)===4){textDecoration=cssOverline}if((textDecorationType&2)===2){textDecoration+=" "+cssLineThrough}if((textDecorationType&1)===1){textDecoration+=" "+cssUnderline}content.css(cssTextDecoration,textDecoration)};BaseCellType.prototype.isImeAware=function(context){return false};BaseCellType.prototype.isEditting=function(){return false};BaseCellType.prototype.toJSON=function(){return{type:0}};BaseCellType.prototype.fromJSON=function(settings){};return BaseCellType})();spread.BaseCellType=BaseCellType;var TextCellType=(function(_super){__extends(TextCellType,_super);function TextCellType(){_super.call(this);this.allowOverflow=true}TextCellType.prototype.paint=function(ctx,value,x,y,w,h,style,context){if(!ctx){return}CellTypeContext.paintBackground(ctx,x,y,w,h,style.backColor,style.backgroundImage,style.backgroundImageLayout,context.imageLoader);var showBarIconOnly=CellTypeContext.paintConditionalFormats(ctx,value,x,y,w,h,style,context);context.showBarIconOnly=showBarIconOnly;CellTypeContext.paintSparkline(ctx,x,y,w,h,context.sparkline);var showSparklineEx=CellTypeContext.paintSparklineEx(ctx,value,x,y,w,h,context.sheet);if(!context.cellOverflowLayout&&!showBarIconOnly&&!showSparklineEx){this.paintValue(ctx,value,x,y,w,h,style,context)}};TextCellType.prototype.createEditorElement=function(context){var $textarea=$("<textarea></textarea>").css(cssMargin,zero).css(cssPadding,"1px").css(cssBoxSizing,"content-box").css(cssFont,"normal 10pt Arial").css(cssWordWrap,"normal").css(cssOverflow,cssHidden).css(cssResize,cssNone).css(cssBorder,"2px #5292f7 solid").css(cssOutline,cssNone).css(cssBoxShadow,"1px 2px 5px rgba(0,0,0,0.4)").attr(cssAutoComplete,"off").attr(cssAttr,"gcEditingInput");var editor=document.createElement("div");$(editor).css(cssPositoin,cssAbsolute).css(cssZIndex,"2000").append($textarea);return editor};TextCellType.prototype.getEditorValue=function(editorContext,context){var textarea=editorContext&&editorContext.children[0];if(textarea){var v=textarea.value;if(v!==keyword_undefined&&v!==keyword_null&&v.length>0){return v}}return keyword_null};TextCellType.prototype.setEditorValue=function(editorContext,value,context){var t=editorContext&&editorContext.children[0];if(t){var startEditByKeydown=(context&&context.sheet&&context.sheet._startEditByKeydown)?true:false;t.value=(value===keyword_null||value===keyword_undefined||startEditByKeydown)?"":value;t.selectionStart=t.selectionEnd=t.value.length}};TextCellType.prototype.focus=function(editorContext,context){if(editorContext){var t=editorContext.children[0];if(this.isImeAware()&&t){t.focus();t.selectionStart=t.value.length}else
{editorContext.focus()}}};TextCellType.prototype._formatEditorValue=function(editorContext,cellStyle,value,context){var sheet=editorContext&&context&&context.sheet;if(sheet){var r=sheet._activeRowIndex,c=sheet._activeColIndex;var formatter=cellStyle.formatter?cellStyle.formatter:cellStyle._autoFormatter;if(spread.features.formatter&&value!==keyword_null&&value!==keyword_undefined){if(formatter instanceof spread.AutoFormatter&&formatter._innerFormatter instanceof spread.GeneralFormatter){value=formatter._innerFormatter.GetPreferredEditingFormatter(value).Format(value)}else
{if(typeof formatter==="string"){formatter=new spread.GeneralFormatter(formatter)}if(formatter){try
{var numberFormatType=formatter.GetFormatType(value);if(numberFormatType===2){if(value.getHours()===0&&value.getMinutes()===0&&value.getSeconds()===0&&value.getMilliseconds()===0){formatter=new spread.GeneralFormatter("yyyy/mm/dd")}else
{formatter=new spread.GeneralFormatter("yyyy/mm/dd hh:mm:ss")}sheet._editingTimeValue=true}else
{formatter=new spread.GeneralFormatter("General")}value=formatter.Format(value)}catch(ex){value=sheet.getText(r,c)}}else
{value=sheet.getText(r,c)}}}}if(value!==keyword_null&&value!==keyword_undefined){value=spread.util.toString(value)}return value};TextCellType.prototype.activateEditor=function(editorContext,cellStyle,cellRect,context){var sheet=editorContext&&context&&context.sheet;if(sheet){var $editor=$(editorContext);var offset=sheet._eventHandler._getCanvasOffset(),bounds=sheet._bounds;$editor.css(cssTop,offset.top+bounds.y+cellRect.y-2).css(cssLeft,offset.left+bounds.x+cellRect.x-2);var self=this;var textarea=editorContext.children[0];if(textarea){var $textarea=$(textarea);self._editingElement=$textarea.get(0);$textarea.bind(_keyDown_gcEditingInput,function(event){var isIme=event.keyCode===229||event.keyCode===0;if(!(isIme||self._isImeInputing)){self._updateEditorImp(editorContext,cellStyle,cellRect,event,context)}if(self._processEditingWrap(event,context)){return}var pressLeftOnStart=textarea.selectionStart===0&&event.keyCode===37&&!event.ctrlKey&&!event.shiftKey&&!event.altKey,pressRightOnEnd=textarea.selectionStart===textarea.value.length&&event.keyCode===39&&!event.ctrlKey&&!event.shiftKey&&!event.altKey,noSelection=textarea.selectionStart===textarea.selectionEnd;if(noSelection&&(pressLeftOnStart||pressRightOnEnd)&&sheet._editorStatus===2){spread.util.cancelDefault(event)}});$textarea.bind(_keyUp_gcEditingInput,function(event){if(event.keyCode===46||event.keyCode===8||((event.keyCode===90||event.keyCode===89)&&event.ctrlKey&&!event.altKey)){self._updateEditorImp(editorContext,cellStyle,cellRect,event,context)}if((event.keyCode===13||event.keyCode===9)&&!event.ctrlKey&&!event.altKey){}else
{sheet._trigger(spread.Events.EditChange,{sheet:sheet,sheetName:sheet._name,row:sheet._activeRowIndex,col:sheet._activeColIndex,editingText:self.getEditorValue(editorContext,context)})}});$textarea.bind(_paste_gcEditingInput,function(event){self._pasteInputSizingToken=window.setTimeout(function(){self._updateEditorImp(editorContext,cellStyle,cellRect,event,context);if(self._pasteInputSizingToken){window.clearTimeout(self._pasteInputSizingToken);delete self._pasteInputSizingToken}},10)});$textarea.bind(_mousedown_gcEditingInput,function(event){if(sheet._editorStatus===1){sheet._editorStatus=2;sheet._trigger(spread.Events.EditorStatusChanged,{sheet:sheet,sheetName:sheet._name,oldStatus:1,newStatus:2})}});$textarea.bind(_compositionstart_gcEditingInput,function(event){self._isImeInputing=true;self._oldValueBeforeImeInputting=$textarea.val()});$textarea.bind(_compositionupdaten_gcEditingInput,function(event){self._updateEditorImp(editorContext,cellStyle,cellRect,event?event.originalEvent:keyword_null,context)});$textarea.bind(_compositionend_gcEditingInput,function(event){self._updateEditorImp(editorContext,cellStyle,cellRect,event?event.originalEvent:keyword_null,context);self._isImeInputing=false})}}};TextCellType.prototype.deactivateEditor=function(editorContext,context){if(editorContext){var textarea=editorContext.children[0];if(textarea){$(textarea).unbind(_gcEditingInput)}var locator=editorContext._editingLocator;if(locator){document.body.removeChild(locator)}}this._editingElement=keyword_null};TextCellType.prototype.getEditingElement=function(){return this._editingElement};TextCellType.prototype.selectAll=function(editorContext,context){var textarea=editorContext&&editorContext.children[0];if(textarea){if(textarea.select){textarea.select()}}};TextCellType.prototype._updateEditorImp=function(editorContext,cellStyle,cellRect,event,context){var textarea=editorContext&&editorContext.children[0],sheet=(context&&context.sheet);if(textarea&&sheet){var self=this,$textarea=$(textarea),render=sheet._render;if(sheet.isEditing()){var hAlign=keyword_null,hAlignValue=cssLeft;var font=keyword_null;if(cellStyle){hAlign=spread.util.getHAlignByValueType(cellStyle.hAlign,editorContext._originalValue);if(hAlign===1){hAlignValue=cssCenter}else if(hAlign===2){hAlignValue=cssRight}$textarea.css(cssTextAlign,hAlignValue);if(cellStyle.backColor){$textarea.css(cssBackgroundColor,cellStyle.backColor)}if(cellStyle.foreColor){$textarea.css(cssColor,cellStyle.foreColor)}font=cellStyle.font||render._getDefaultFont();if(font){if(sheet._zoomFactor>1){font=render._getZoomFont(font)}$textarea.css(cssFont,font)}if(cellStyle.textDecoration){self._setEditStatusTextDecoration($textarea,cellStyle.textDecoration)}}if(cellRect){$(editorContext).width(cellRect.width).height(cellRect.height);var sheetLayout=sheet._getSheetLayout();var adjustWidth=1;var adjustHeight=1;adjustWidth=adjustWidth+parseInt($textarea.css(cssPaddingLeft),10)+parseInt($textarea.css(cssPaddingRight),10);adjustHeight=adjustHeight+parseInt($textarea.css(cssPaddingTop),10)+parseInt($textarea.css(cssPaddingBottom),10);var width=cellRect.width;if(cellRect.x+cellRect.width>sheetLayout.width){width=sheetLayout.width-cellRect.x}$textarea.css(cssWidth,width-adjustWidth).css(cssHeight,cellRect.height-adjustHeight);if(hAlign===keyword_undefined||hAlign===keyword_null||hAlign===0){textarea.maxWidth=sheetLayout.width-cellRect.x-adjustWidth}else if(hAlign===1){textarea.maxWidth=Math_max(0,Math_min(sheetLayout.width-cellRect.x-cellRect.width-adjustWidth,cellRect.x-sheetLayout.rowHeaderWidth-adjustWidth))*2+cellRect.width}else if(hAlign===2){textarea.maxWidth=cellRect.x+cellRect.width-sheetLayout.rowHeaderWidth-adjustWidth}textarea.maxHeight=sheetLayout.height-cellRect.y-adjustHeight;textarea.minWidth=parseInt(textarea.style.width,10);textarea.minHeight=parseInt(textarea.style.height,10)}var value=textarea.value;font=textarea.style.font;if(!font){font=render._getZoomFont(render._getDefaultFont())}var lineHeight=sheet._getFontHeight(font);if(event){if(sheet._eventHandler.allowEnterEditing(event)){var index=textarea.selectionStart;var preValue=value.substr(0,index);var endValue=value.substr(index,value.length-index);value=preValue+String.fromCharCode(event.keyCode)+endValue}if(self._isImeInputing){if($.browser.msie){value=$textarea.val()}else
{value=self._oldValueBeforeImeInputting+event.data}}}var lines=[];if(cellStyle&&cellStyle.wordWrap){lines=spread._WordWrapHelper._getWrapInfo(value,$textarea.width(),font)}else
{lines=value.split(/\r\n|\r|\n/)}var i,lineWidth,rowCount,linesLength=lines.length;textarea.minWidth=Math_min(textarea.minWidth,textarea.maxWidth);textarea.minHeight=Math_min(textarea.minHeight,textarea.maxHeight);if((cellStyle&&cellStyle.wordWrap)||linesLength>0){var wrapHeight=linesLength*lineHeight;if(cellStyle&&cellStyle.wordWrap){$textarea.css(cssWordWrap,cssBreakWord).css(cssOverflow,cssHidden)}else
{var maxLineWidth=0;var lineWidthTemps=[];for(i=0;i<linesLength;i++){var lineValue=lines[i];lineWidth=sheet._getStringWidth(lineValue,font);lineWidthTemps.push(lineWidth);maxLineWidth=Math_max(maxLineWidth,lineWidth)}if(maxLineWidth<=textarea.minWidth){$textarea.css(cssWidth,textarea.minWidth).css(cssWordWrap,cssNormal).css(cssOverflow,cssHidden)}else if(maxLineWidth>textarea.minWidth&&maxLineWidth<=textarea.maxWidth){$textarea.css(cssWidth,maxLineWidth).css(cssWordWrap,cssNormal).css(cssOverflow,cssHidden)}else if(maxLineWidth>textarea.maxWidth){$textarea.css(cssWidth,textarea.maxWidth).css(cssWordWrap,cssBreakWord).css(cssOverflow,cssHidden);wrapHeight=0;for(i=0;i<lineWidthTemps.length;i++){lineWidth=lineWidthTemps[i];if(lineWidth<=textarea.maxWidth){wrapHeight+=lineHeight}else if(lineWidth>textarea.maxWidth){rowCount=Math_ceil(lineWidth/textarea.maxWidth);wrapHeight+=lineHeight*rowCount}}}}if(wrapHeight<=textarea.minHeight){$textarea.css(cssHeight,textarea.minHeight)}else if(wrapHeight>textarea.minHeight&&wrapHeight<=textarea.maxHeight){$textarea.css(cssHeight,wrapHeight)}else if(wrapHeight>textarea.maxHeight){$textarea.css(cssHeight,textarea.maxHeight).css(cssOverflowY,"scroll")}}else
{var width=sheet._getStringWidth(value,font);if(width>textarea.minWidth&&width<=textarea.maxWidth){$textarea.css(cssWidth,width).css(cssHeight,textarea.minHeight).css(cssWordWrap,cssNormal).css(cssOverflow,cssHidden)}else if(width<=textarea.minWidth){$textarea.css(cssWidth,textarea.minWidth).css(cssHeight,textarea.minHeight).css(cssWordWrap,cssNormal).css(cssOverflow,cssHidden)}else if(width>textarea.maxWidth){$textarea.css(cssWidth,textarea.maxWidth).css(cssWordWrap,cssBreakWord);rowCount=Math_ceil(width/textarea.maxWidth);var actualHeight=lineHeight*rowCount;if(actualHeight<=textarea.minHeight){$textarea.css(cssHeight,textarea.minHeight).css(cssOverflow,cssHidden)}else if(actualHeight<=textarea.maxHeight){$textarea.css(cssHeight,actualHeight).css(cssOverflow,cssHidden)}else if(actualHeight>textarea.maxHeight){$textarea.css(cssHeight,textarea.maxHeight).css(cssOverflowY,"scroll")}}}hAlign=$textarea.css(cssTextAlign);var flowWidth=$textarea.width()-textarea.minWidth;if(hAlign!==keyword_undefined&&hAlign!==keyword_null&&hAlign!==cssLeft){if(hAlign===cssCenter){$textarea.css(cssLeft,textarea.originalLeft-flowWidth/2)}else if(hAlign===cssRight){$textarea.css(cssLeft,textarea.originalLeft-flowWidth)}}self._updateEditorLocator(editorContext,context)}}};TextCellType.prototype.updateEditor=function(editorContext,cellStyle,cellRect,context){var sheet=context&&context.sheet;if(sheet&&cellRect){var offset=sheet._eventHandler._getCanvasOffset(),bounds=sheet._bounds;$(editorContext).css(cssTop,offset.top+bounds.y+cellRect.y-2).css(cssLeft,offset.left+bounds.x+cellRect.x-2)}this._updateEditorImp(editorContext,cellStyle,cellRect,keyword_null,context);if($.browser.msie){var $textarea=$(editorContext.children[0]),width=$textarea.width();$textarea.width(width+1).width(width)}};TextCellType.prototype.updateImeMode=function(editorContext,imeMode,context){if(this.isImeAware()){var content=editorContext&&editorContext.children[0];if(content){$(content).css(cssImeMode,this._getImeModeString(imeMode))}}};TextCellType.prototype.isReservedKey=function(event,context){var src=event.srcElement||event.target;if(src&&context&&context.isEditing){if(src.getAttribute(cssAttr)==="gcEditingInput"){return event.keyCode===13&&(event.ctrlKey&&!event.shiftKey||event.altKey)||(event.keyCode===90&&event.ctrlKey&&!event.altKey)||(event.keyCode===89&&event.ctrlKey&&!event.altKey)}}return false};TextCellType.prototype._processEditingWrap=function(event,context){var src=event.srcElement||event.target;if(src){if(src.getAttribute(cssAttr)==="gcEditingInput"){if(event.keyCode===13&&(event.ctrlKey||event.altKey)){var index=src.selectionStart;var value=src.value;var preValue=value.substr(0,index);var endValue=value.substr(index,value.length-index);src.value=preValue+"\n"+endValue;src.selectionStart=index+1;src.selectionEnd=index+1;var ae=window.gcGlobal.activeElement,spreadns=wijmo.spread;if(ae instanceof spreadns.Sheet){var ct=ae.getCellType(ae._activeRowIndex,ae._activeColIndex);if(ct){ct.updateEditor(ae._editor,keyword_null,keyword_null,context)}}spread.util.cancelDefault(event);return true}}}return false};TextCellType.prototype._getAutoFitWidth=function(sheet,value,text,cellStyle,isFilterHeader,context){return CellTypeContext._getAutoFitWidth(sheet,value,text,cellStyle,isFilterHeader,context)};TextCellType.prototype._getAutoFitHeight=function(sheet,value,text,cellStyle,columnWidth,context){return CellTypeContext._getAutoFitHeight(sheet,value,text,cellStyle,columnWidth,context)};TextCellType.prototype.isImeAware=function(context){return true};TextCellType.prototype.toJSON=function(){return{type:1}};return TextCellType})(BaseCellType);spread.TextCellType=TextCellType;var HeaderCellType=(function(_super){__extends(HeaderCellType,_super);function HeaderCellType(){_super.apply(this,arguments)}HeaderCellType.prototype._paint=function(ctx,value,x,y,w,h,style,options,fillStyleWithoutWijmoTheme,sheetArea){if(!ctx){return}var self=this;var themeStyle=keyword_null,visualState=options.visualState,useWijmoTheme=options.useWijmoTheme;if(typeof(visualState)!==const_undefined){ctx.save();ctx.beginPath();if(useWijmoTheme){try
{themeStyle=self.getThemeStyle(options.visualState);var backColor=(themeStyle&&themeStyle.backgroundColor),backgroundImg=(themeStyle&&themeStyle.backgroundImage);if(backColor){ctx.fillStyle=backColor;ctx.fillRect(x,y,w,h)}else if(backgroundImg&&backgroundImg!==cssNone){var img=new Image;var src=backgroundImg;src=src.replace("url(\"",'');src=src.replace("\")",'');img.src=src;ctx.drawImage(img,x,y,w,h)}}catch(ex){}}else
{if(fillStyleWithoutWijmoTheme&&ctx.fillStyle!==fillStyleWithoutWijmoTheme){ctx.fillStyle=fillStyleWithoutWijmoTheme}ctx.fillRect(x,y,w,h)}ctx.restore()}var text=self.format(value,style.formatter);if(text){var clipRect={x:x,y:y,width:w,height:h};ctx.save();ctx.beginPath();var sheet=options.sheet,rowFilter=sheet.rowFilter();var isFilterHeader=!!(rowFilter&&rowFilter.isFilterHeader(options.row,options.col,sheetArea));if(isFilterHeader){var filterButtonZoom=Math_min(sheet._zoomFactor,1);var buttonwidth=Math_floor(sheet.defaults.rowHeight*filterButtonZoom);w-=buttonwidth}var fillStyle=style.foreColor;if(useWijmoTheme&&themeStyle){fillStyle=themeStyle.color}if(fillStyle&&ctx.fillStyle!==fillStyle){ctx.fillStyle=fillStyle}var font=style.font;if(font&&ctx.font!==font){ctx.font=font}var indent=0,textIndent=style.textIndent;if(textIndent>0){indent=textIndent*8}var hAlign=style.hAlign,vAlign=style.vAlign;var textAlign=cssLeft,adjX=2;adjX+=indent;if(hAlign===1){adjX=w/2;textAlign=cssCenter}else if(hAlign===2){adjX=w-1;adjX-=indent;textAlign=cssRight}if(ctx.textAlign!==textAlign){ctx.textAlign=textAlign}var textHeight=0,textBaseline=cssAlphabetic,adjY=3,wordWrap=style.wordWrap,lineHeight=options.lineHeight,fontSize=options.fontInfo.fontSize,lines=[],lineCount=0;if(wordWrap){lines=spread._WordWrapHelper._getWrapInfo(text,w-3-indent,font);lineCount=lines.length;if(lineCount>1&&vAlign!==0){textHeight=(lineCount-1)*lineHeight}}var baselineOffset=fontSize>8?Math_floor((fontSize-8)/5+2):1,lineOffset=lineHeight/2-fontSize/2+baselineOffset;adjY+=lineHeight-lineOffset;if(vAlign===1){adjY=(h-textHeight)/2+1+lineHeight/2-lineOffset}else if(vAlign===2){adjY=h-textHeight-1-lineOffset}if(ctx.textBaseline!==textBaseline){ctx.textBaseline=textBaseline}var textDecoration=style.textDecoration;if(style.wordWrap){ctx.rect(clipRect.x,clipRect.y,clipRect.width,clipRect.height);ctx.clip();ctx.beginPath();var vpos=y+adjY;for(var i=0;i<lineCount;i++){ctx.fillText(lines[i],x+adjX,vpos);if(textDecoration){var textLength=ctx.measureText(lines[i]).width;self._renderTextDecoration(ctx,textDecoration,x+adjX,vpos,textLength,fontSize,baselineOffset)}vpos+=options.lineHeight}}else
{var txtWidth=ctx.measureText(text).width;if(txtWidth>clipRect.width||lineHeight>clipRect.height){ctx.rect(clipRect.x,clipRect.y,clipRect.width,clipRect.height);ctx.clip();ctx.beginPath()}ctx.fillText(text,x+adjX,y+adjY);if(textDecoration){self._renderTextDecoration(ctx,textDecoration,x+adjX,y+adjY,txtWidth,fontSize,baselineOffset)}}ctx.restore()}};HeaderCellType.prototype._getAutoFitWidth=function(sheet,value,text,cellStyle,isFilterHeader,context){var width=CellTypeContext._getAutoFitWidth(sheet,value,text,cellStyle,isFilterHeader,context);return width};HeaderCellType.prototype._getAutoFitHeight=function(sheet,value,text,cellStyle,columnWidth,context){var height=CellTypeContext._getAutoFitHeight(sheet,value,text,cellStyle,columnWidth,context);return height};return HeaderCellType})(BaseCellType);spread.HeaderCellType=HeaderCellType;var ColumnHeaderCellType=(function(_super){__extends(ColumnHeaderCellType,_super);function ColumnHeaderCellType(){_super.call(this)}ColumnHeaderCellType.prototype.paint=function(ctx,value,x,y,w,h,style,context){var gradient=ctx.createLinearGradient(x+w/2,y,x+w/2,y+h),fillStyle,visualState=context.visualState;if(visualState===0){if(style.backColor){fillStyle=style.backColor}else
{gradient.addColorStop(0.125,gradientColorStop1);gradient.addColorStop(1.0,gradientColorStop2);fillStyle=gradient}}else if(visualState===1){gradient.addColorStop(0.125,'#ffd45a');gradient.addColorStop(1.0,'#ffef72');fillStyle=gradient}else if(visualState===2){fillStyle=selectedFillColor}else if(visualState===4){gradient.addColorStop(0.125,'#ffe165');gradient.addColorStop(1.0,'#fff9a3');fillStyle=gradient}_super.prototype._paint.call(this,ctx,value,x,y,w,h,style,context,fillStyle,1)};ColumnHeaderCellType.prototype.toJSON=function(){return{type:2}};return ColumnHeaderCellType})(HeaderCellType);spread.ColumnHeaderCellType=ColumnHeaderCellType;var RowHeaderCellType=(function(_super){__extends(RowHeaderCellType,_super);function RowHeaderCellType(){_super.call(this)}RowHeaderCellType.prototype.paint=function(ctx,value,x,y,w,h,style,context){var fillStyle,visualState=context.visualState;if(visualState===0){if(style.backColor){fillStyle=style.backColor}else
{fillStyle="#e4ecf7"}}else if(visualState===1){ctx.fillStyle="#ffdc61"}else if(visualState===2){ctx.fillStyle=selectedFillColor}else if(visualState===4){ctx.fillStyle="#fde47b"}_super.prototype._paint.call(this,ctx,value,x,y,w,h,style,context,fillStyle,2)};RowHeaderCellType.prototype.toJSON=function(){return{type:3}};return RowHeaderCellType})(HeaderCellType);spread.RowHeaderCellType=RowHeaderCellType;var CornerCellType=(function(_super){__extends(CornerCellType,_super);function CornerCellType(){_super.call(this)}CornerCellType.prototype.paint=function(ctx,value,x,y,w,h,style,context){if(!ctx){return}ctx.save();ctx.rect(x,y,w,h);ctx.clip();ctx.beginPath();var visualState=context.visualState,useWijmoTheme=context.useWijmoTheme;if(typeof(visualState)!==const_undefined){if(useWijmoTheme){try
{var tmpStyle=this.getThemeStyle(context.visualState),backColor=(tmpStyle&&tmpStyle.backgroundColor),backgroundImg=(tmpStyle&&tmpStyle.backgroundImage);if(backColor){ctx.fillStyle=backColor;ctx.fillRect(x,y,w,h)}else if(backgroundImg&&backgroundImg!==cssNone){var img=new Image;var src=backgroundImg;src=src.replace("url(\"",'');src=src.replace("\")",'');img.src=src;ctx.drawImage(img,x,y,w,h)}}catch(ex){}}else
{var fillStyle;if(visualState===0){fillStyle="#a9c4e9"}else if(visualState===2){fillStyle=selectedFillColor}else if(visualState===4){fillStyle="#a1b0c8"}if(fillStyle&&ctx.fillStyle!==fillStyle){ctx.fillStyle=fillStyle}ctx.fillRect(x,y,w,h)}var gradient=ctx.createLinearGradient(x+w/2,y,x+w/2,y+h);gradient.addColorStop(0.125,gradientColorStop1);if(useWijmoTheme){var hoverStyle=this.getThemeStyle(4);gradient.addColorStop(1.0,hoverStyle.backgroundColor)}else
{gradient.addColorStop(1.0,gradientColorStop2)}ctx.fillStyle=gradient;ctx.beginPath();var padding=3;var size=h;if(w<h){size=w}ctx.moveTo(x+w-size+padding,y+h-padding);ctx.lineTo(x+w-padding,y+h-padding);ctx.lineTo(x+w-padding,y+h-size+padding);ctx.fill()}ctx.restore()};CornerCellType.prototype.toJSON=function(){return{type:4}};CornerCellType.prototype._getAutoFitWidth=function(sheet,value,text,cellStyle,isFilterHeader,context){var width=CellTypeContext._getAutoFitWidth(sheet,value,text,cellStyle,isFilterHeader,context);return width};CornerCellType.prototype._getAutoFitHeight=function(sheet,value,text,cellStyle,columnWidth,context){var height=CellTypeContext._getAutoFitHeight(sheet,value,text,cellStyle,columnWidth,context);return height};return CornerCellType})(BaseCellType);spread.CornerCellType=CornerCellType})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("basedialog",["core.common"]);var BaseDialog=(function(){function BaseDialog(){var self=this;self._wijpopupClass="wijspread-popup";self._overlayClass="wijspread-overlay";self._useWijmoTheme=false;self.defaultOverlayCSS={position:"fixed",width:"100%",height:"100%",margin:0,padding:0,top:0,left:0,border:"none",zIndex:999,backgroundColor:"rgba(0,0,0,0)"};self.defaultContainerCSS={position:"absolute",padding:0,margin:0,height:"auto",zIndex:1e3,outline:"none"};self._init()}BaseDialog.prototype._init=function(){var self=this;if(!self._hasTargetContainer(self._name)){self._name=self._generateName();self.container=$("<div></div>").addClass(self._wijpopupClass).attr({id:self._name,tabIndex:-1}).css(self.defaultContainerCSS)}else
{self.container=$("#"+self._name)}};BaseDialog.prototype._generateName=function(){var num=0;var prefix="dialog";while(this._hasTargetContainer(prefix+num)){num++}return prefix+num};BaseDialog.prototype.useWijmoTheme=function(value){var self=this;if(typeof value==="undefined"){return self._useWijmoTheme}if(typeof value==='boolean'&&self._useWijmoTheme!==value){self._useWijmoTheme=value;if(value){self.container.addClass("ui-widget ui-widget-content")}else
{self.container.removeClass("ui-widget ui-widget-content")}return self}return null};BaseDialog.prototype.getContainer=function(){if(this.container){return this.container}};BaseDialog.prototype.show=function(speed,effect,callback){var self=this,argumentsLength=arguments.length,container=self.container;if(!self._hasOverlay()){self._createOverlay()}window.gcGlobal.suspendEvent();if(!self._hasTargetContainer(self._name)){$(document.body).append(container);self.resetDialogPosition();container.css("display","none")}if(argumentsLength===3){if(effect==="slide"){container.slideDown(speed,callback)}else if(effect==="fade"){container.fadeIn(speed,callback)}else
{container.show(speed,callback)}}else if(argumentsLength===2){if(effect==="slide"){container.slideDown(speed)}else if(effect==="fade"){container.fadeIn(speed)}else
{container.show(speed)}}else if(argumentsLength===1){container.show(speed)}else
{container.show()}};BaseDialog.prototype.close=function(){var self=this;if(self._hasTargetContainer(self._name)){self.container.remove()}if(!$("."+self._wijpopupClass).is(":visible")){self.closeOverlay()}window.gcGlobal.resumeEvent()};BaseDialog.prototype.closeOverlay=function(){$("."+this._overlayClass).remove()};BaseDialog.prototype.resetDialogPosition=function(){var container=this.container;if(container.length===0){return}var left=parseInt(container.css("left"));var top=parseInt(container.css("top"));var dialogWidth=container.width();var dialogHeight=container.height();if(isNaN(left)||isNaN(top)||isNaN(dialogWidth)||isNaN(dialogHeight)){return}var bottomCross=0,rightCross=0;var clientWidth=document.documentElement.clientWidth;var clientHeight=document.documentElement.clientHeight;var pos=container.get(0).getBoundingClientRect();if(pos.left+dialogWidth>clientWidth){rightCross=pos.left+dialogWidth-clientWidth}if(pos.top+dialogHeight>clientHeight){bottomCross=pos.top+dialogHeight-clientHeight}if(left<0||top<0||bottomCross>0||rightCross>0){left-=rightCross;top-=bottomCross;if(left<0){left=0}if(top<0){top=0}container.css({left:left,top:top})}};BaseDialog.prototype._hasTargetContainer=function(target){if($("#"+target).length){return true}return false};BaseDialog.prototype._createOverlay=function(){var self=this;var overlay=$("<div></div>").addClass(self._overlayClass);overlay.css(self.defaultOverlayCSS);$(document.body).append(overlay);var events='mousedown touchstart touchend touchmove';overlay.bind(events,function(e){self.close();spread.util.cancelDefault(e)})};BaseDialog.prototype._hasOverlay=function(){if($("."+this._overlayClass).length>0){return true}return false};return BaseDialog})();spread.BaseDialog=BaseDialog})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var __extends=this.__extends||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __};var wijmo;(function(wijmo){(function(spread){spread.feature("core.sheet_model",["core.common","core.stringResource"]);var keyword_null=null,keyword_undefined=undefined,Math_min=Math.min,Math_floor=Math.floor;var _SpanModel=(function(_super){__extends(_SpanModel,_super);function _SpanModel(){_super.call(this)}_SpanModel.prototype.find=function(row,col){var l=this.length;var t;for(var i=0;i<l;i++){t=this[i];if(t&&t.contains(row,col))return t}return keyword_null};_SpanModel.prototype.remove=function(ele){for(var i=0;i<this.length;i++){if(this[i]===ele){this.splice(i,1);return}}};_SpanModel.prototype.copy=function(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount){var self=this;var changed=false;var cellRangeCount=self.length;var cs;var cr,i;var temp;if(fromRow===-1){temp=[];for(i=0;i<cellRangeCount;i++){cs=self[i];if(fromColumn<=cs.col&&cs.col<fromColumn+columnCount){temp.push(new spread.Range(cs.row,toColumn+cs.col-fromColumn,cs.rowCount,cs.colCount));changed=true}else if(toColumn<=cs.col&&cs.col<toColumn+columnCount){self.splice(i,1);i--;cellRangeCount--;changed=true}}for(i=0;i<temp.length;i++){cr=temp[i];if(!self.isValid(self,0,self.length,cr)){throw new Error(spread.SR.Exp_OverlappingSpans);}self.push(cr)}}else if(fromColumn===-1){temp=[];for(i=0;i<cellRangeCount;i++){cs=self[i];if(fromRow<=cs.row&&cs.row<fromRow+rowCount){temp.push(new spread.Range(toRow+cs.row-fromRow,cs.col,cs.rowCount,cs.colCount));changed=true}else if(toRow<=cs.row&&cs.row<toRow+rowCount){self.splice(i,1);i--;cellRangeCount--;changed=true}}for(i=0;i<temp.length;i++){cr=temp[i];if(!self.isValid(self,0,self.length,cr)){throw new Error(spread.SR.Exp_OverlappingSpans);}self.push(cr)}}else
{temp=[];for(i=0;i<cellRangeCount;i++){cs=self[i];if(fromRow<=cs.row&&cs.row<fromRow+rowCount&&fromColumn<=cs.col&&cs.col<fromColumn+columnCount){temp.push(new spread.Range(toRow+cs.row-fromRow,toColumn+cs.col-fromColumn,cs.rowCount,cs.colCount));changed=true}else if(toRow<=cs.row&&cs.row<toRow+rowCount&&toColumn<=cs.col&&cs.col<toColumn+columnCount){self.splice(i,1);i--;cellRangeCount--;changed=true}}for(i=0;i<temp.length;i++){cr=temp[i];if(!self.isValid(self,0,self.length,cr)){throw new Error(spread.SR.Exp_OverlappingSpans);}self.push(cr)}}};_SpanModel.prototype.isValid=function(list,start,end,cellRange){for(var i=start;i<end&&i<list.length;i++){var cr=list[i];if(cr.intersect(cellRange.row,cellRange.col,cellRange.rowCount,cellRange.colCount)){return false}}return true};_SpanModel.prototype.getEnumerator=function(row,col,rowCount,colCount){return new _SpanEnumerator(this,row,col,rowCount,colCount)};_SpanModel.prototype.clear=function(row,col,rowCount,colCount){for(var i=0;i<this.length;i++){var span=this[i];if((row===-1||(row<=span.row&&span.row<row+rowCount))&&(col===-1||(col<=span.col&&span.col<col+colCount))){this.splice(i--,1)}}};_SpanModel.prototype.move=function(fromRow,fromCol,toRow,toCol,rowCount,colCount){var self=this;var changed=false;var tmpList=new _SpanModel;var changeList=[];var cellRangeCount=self.length;var cs;var i,cr;if(fromRow===-1){for(i=0;i<cellRangeCount;i++){cs=self[i];if(fromCol<=cs.col&&cs.col<fromCol+colCount){cr=new spread.Range(cs.row,toCol+cs.col-fromCol,cs.rowCount,cs.colCount);changeList.push(cr);changed=true}else if(toCol<cs.col&&cs.col<toCol+colCount){changed=true}else
{tmpList.push(cs)}}}else if(fromCol===-1){for(i=0;i<cellRangeCount;i++){cs=self[i];if(fromRow<=cs.row&&cs.row<fromRow+rowCount){cr=new spread.Range(toRow+cs.row-fromRow,cs.col,cs.rowCount,cs.colCount);changeList.push(cr);changed=true}else if(toRow<=cs.row&&cs.row<toRow+rowCount){changed=true}else
{tmpList.push(cs)}}}else
{for(i=0;i<cellRangeCount;i++){cs=self[i];if(fromRow<=cs.row&&cs.row<fromRow+rowCount&&fromCol<=cs.col&&cs.col<fromCol+colCount){cr=new spread.Range(toRow+cs.row-fromRow,toCol+cs.col-fromCol,cs.rowCount,cs.colCount);changeList.push(cr);changed=true}else if(toRow<=cs.row&&cs.row<toRow+rowCount&&toCol<=cs.col&&cs.col<toCol+colCount){changed=true}else
{tmpList.push(cs)}}}if(changed){if(changeList.length>0){for(i=0;i<changeList.length;i++){cr=changeList[i];if(!self.isValid(tmpList,0,tmpList.length,cr)){throw new Error(spread.SR.Exp_OverlappingSpans);}tmpList.push(cr)}}self.length=0;for(i=0;i<tmpList.length;i++){self.push(tmpList[i])}}};_SpanModel.prototype.isEmpty=function(){if(this.length<=0){return true}return false};_SpanModel.prototype.addRows=function(row,count){var self=this;var changed=false;var countOld=self.length;for(var i=0;i<countOld;i++){var cs=self[i];if(cs.row>=row){self[i]=new spread.Range(cs.row+count,cs.col,cs.rowCount,cs.colCount);changed=true}else if(cs.row<row&&row<cs.row+cs.rowCount){self[i]=new spread.Range(cs.row,cs.col,cs.rowCount+count,cs.colCount);changed=true}}};_SpanModel.prototype.addColumns=function(column,count){var self=this;var changed=false;var countOld=self.length;for(var i=0;i<countOld;i++){var cs=self[i];if(cs.col>=column){self[i]=new spread.Range(cs.row,cs.col+count,cs.rowCount,cs.colCount);changed=true}else if(cs.col<column&&column<cs.col+cs.colCount){self[i]=new spread.Range(cs.row,cs.col,cs.rowCount,cs.colCount+count);changed=true}}};_SpanModel.prototype.removeRows=function(row,count){var self=this;var changed=false;var delList=[];var countOld=self.length;var i;for(i=0;i<countOld;i++){var cs=self[i];if(cs.row>=row){if(cs.row<row+count){delList.push(i);changed=true}else
{self[i]=new spread.Range(cs.row-count,cs.col,cs.rowCount,cs.colCount);changed=true}}else if(cs.row<row&&row<cs.row+cs.rowCount){self[i]=new spread.Range(cs.row,cs.col,cs.rowCount-Math_min(cs.row+cs.rowCount-row,count),cs.colCount);if(self[i].rowCount===1&&self[i].colCount===1){delList.push(i)}changed=true}}for(i=0;i<delList.length;i++){var index=delList[i];self.splice(index,1)}};_SpanModel.prototype.removeColumns=function(column,count){var self=this;var changed=false;var delList=[];var countOld=self.length;var i;for(i=0;i<countOld;i++){var cs=self[i];if(cs.col>=column){if(cs.col<column+count){delList.push(i);changed=true}else
{self[i]=new spread.Range(cs.row,cs.col-count,cs.rowCount,cs.colCount);changed=true}}else if(cs.col<column&&column<cs.col+cs.colCount){self[i]=new spread.Range(cs.row,cs.col,cs.rowCount,cs.colCount-Math_min(cs.col+cs.colCount-column,count));if(self[i].rowCount===1&&self[i].colCount===1){delList.push(i)}changed=true}}for(i=0;i<delList.length;i++){var index=delList[i];self.splice(index,1)}};_SpanModel.prototype.toJSON=function(){var array=[];for(var i=0;i<this.length;i++){array.push(this[i])}if(array.length===0){return keyword_undefined}return array};_SpanModel.prototype.fromJSON=function(setting){if(!setting){return}var spans=setting;for(var i=0;i<spans.length;i++){var cr=spans[i];this.push(new spread.Range(cr.row,cr.col,cr.rowCount,cr.colCount))}};return _SpanModel})(spread._XArray);spread._SpanModel=_SpanModel;var _SpanEnumerator=(function(){function _SpanEnumerator(model,row,col,rowCount,colCount){var self=this;self.model=model;self.row=row;self.column=col;self.rowCount=rowCount;self.columnCount=colCount;self.currentIndex=-1;if(row===-1&&col===-1){self.all=true}}_SpanEnumerator.prototype.current=function(){var self=this;if(0<=self.currentIndex&&self.currentIndex<self.model.length){return self.model[self.currentIndex]}else
{return keyword_null}};_SpanEnumerator.prototype.moveNext=function(){var self=this;self.currentIndex++;if(!self.all){while(self.currentIndex<self.model.length&&!(self.model[self.currentIndex]).intersect(self.row,self.column,self.rowCount,self.columnCount)){self.currentIndex++}}return self.currentIndex<self.model.length};_SpanEnumerator.prototype.reset=function(){this.currentIndex=-1};return _SpanEnumerator})();spread._SpanEnumerator=_SpanEnumerator;var _CellOverflowLayoutModel=(function(_super){__extends(_CellOverflowLayoutModel,_super);function _CellOverflowLayoutModel(){_super.call(this);this.headingOverflowlayout=keyword_null;this.trailingOverflowLayout=keyword_null}_CellOverflowLayoutModel.prototype.find=function(col){var self=this,count=self.length,cellOverflowLayout;if(count>0){for(var i=0;i<count;i++){cellOverflowLayout=self[i];if(cellOverflowLayout.contains(col)){return cellOverflowLayout}}}return keyword_null};return _CellOverflowLayoutModel})(spread._XArray);spread._CellOverflowLayoutModel=_CellOverflowLayoutModel;var _CellOverflowLayout=(function(){function _CellOverflowLayout(column,startColumn,endColumn,valueWidth,columnWidth,backgroundWidth,backgroundLeftWidth,backgroundRightWidth){var self=this;self.column=column;self.startColumn=startColumn;self.endColumn=endColumn;self.valueWidth=valueWidth;self.columnWidth=columnWidth;self.backgroundWidth=backgroundWidth;self.backgroundLeftWidth=backgroundLeftWidth;self.backgroundRightWidth=backgroundRightWidth}_CellOverflowLayout.prototype.contains=function(col){return col>=this.startColumn&&col<=this.endColumn};return _CellOverflowLayout})();spread._CellOverflowLayout=_CellOverflowLayout;var _SelectionModel=(function(_super){__extends(_SelectionModel,_super);function _SelectionModel(){_super.call(this);this.selectionPolicy=2;this.selectionUnit=0}_SelectionModel.prototype.find=function(row,col){var self=this,count=self.length,selection;if(count>0){for(var i=0;i<count;i++){selection=self[i];if(selection.contains(row,col)){return selection}}}return keyword_null};_SelectionModel.prototype.clear=function(){this.splice(0,this.length);this.activeSelectedRangeIndex=-1};_SelectionModel.prototype.add=function(row,col,rowCount,colCount){var self=this;if(self.selectionPolicy===0){rowCount=Math_min(rowCount,1);colCount=Math_min(colCount,1);self.clear()}else if(self.selectionPolicy===1){self.clear()}if(self.selectionUnit===1){col=-1;colCount=-1}else if(self.selectionUnit===2){row=-1;rowCount=-1}var r=new spread.Range(row,col,rowCount,colCount);self.push(r);self.activeSelectedRangeIndex=self.length-1};_SelectionModel.prototype.toArray=function(){var newArray=[];for(var i=0;i<this.length;i++){newArray.push(this[i])}return newArray};_SelectionModel.prototype._isDefaultValue=function(propertyName,value){var self=this;switch(propertyName){case"selectionPolicy":return value===2;case"selectionUnit":return value===0;case"activeSelectedRangeIndex":return value===0;case"0":var r=value;return(self.length===1&&r.row===0&&r.col===0&&r.rowCount===1&&r.colCount===1);case"length":return value===1;default:return false}};_SelectionModel.prototype.toJSON=function(){var self=this;var sdata={};for(var item in self){if(!self._isDefaultValue(item,self[item])&&self.hasOwnProperty(item)){sdata[item]=self[item]}}if($.isEmptyObject(sdata)){return keyword_undefined}return sdata};_SelectionModel.prototype.fromJSON=function(setting){if(!setting){return}var self=this;var selections=setting,count=setting.length;if(count===keyword_undefined){count=1}for(var i=0;i<count;i++){var cr=selections[i];if(cr===keyword_undefined){cr={row:0,col:0,rowCount:1,colCount:1}}self.push(new spread.Range(cr.row,cr.col,cr.rowCount,cr.colCount))}var activeSelectedRangeIndex=setting.activeSelectedRangeIndex;if(activeSelectedRangeIndex===keyword_undefined){activeSelectedRangeIndex=0}self.activeSelectedRangeIndex=activeSelectedRangeIndex;if((setting.selectionPolicy)!==keyword_undefined){self.selectionPolicy=setting.selectionPolicy}if((setting.selectionUnit)!==keyword_undefined){self.selectionUnit=setting.selectionUnit}};return _SelectionModel})(spread._XArray);spread._SelectionModel=_SelectionModel;var _LayoutModel=(function(_super){__extends(_LayoutModel,_super);function _LayoutModel(){_super.call(this)}_LayoutModel.prototype.findCell=function(row,col){var self=this,count=self.length,layout;if(count>0){for(var i=0;i<count;i++){layout=self[i];if(layout.contains(row,col)){return layout}}}return keyword_null};_LayoutModel.prototype.findRow=function(row){var self=this,count=self.length,layout;if(count>0){for(var i=0;i<count;i++){layout=self[i];if(layout.row===row){return layout}}}return keyword_null};_LayoutModel.prototype.findCol=function(col){var self=this,count=self.length,layout;if(count>0){for(var i=0;i<count;i++){layout=self[i];if(layout.col===col){return layout}}}return keyword_null};_LayoutModel.prototype.findX=function(x){var self=this,count=self.length,layout;if(count>0){for(var i=0;i<count;i++){layout=self[i];if(layout.containsX(x)){return layout}}}return keyword_null};_LayoutModel.prototype.findY=function(y){var self=this,count=self.length,layout;if(count>0){for(var i=0;i<count;i++){layout=self[i];if(layout.containsY(y)){return layout}}}return keyword_null};_LayoutModel.prototype.findNearX=function(x){var ret=keyword_null,self=this,count=self.length;if(count>0){ret=self.findX(x);if(!ret){ret=(x<self[0].x)?self[0]:self[count-1]}}return ret};_LayoutModel.prototype.findNearY=function(y){var ret=keyword_null,self=this,count=self.length;if(count>0){ret=self.findY(y);if(!ret){ret=(y<self[0].y)?self[0]:self[count-1]}}return ret};return _LayoutModel})(spread._XArray);spread._LayoutModel=_LayoutModel;var _Layout=(function(){function _Layout(row,col,x,y,width,height,rowCount,colCount){var self=this;self.rowCount=rowCount;self.colCount=colCount;self.row=row;self.col=col;self.x=x;self.y=y;self.width=width;self.height=height}_Layout.prototype.contains=function(row,col){var self=this;return((((row<(self.row+self.rowCount))&&(self.row<=row))&&(col<(self.col+self.colCount)))&&(self.col<=col))};_Layout.prototype.intersect=function(rect){var self=this;return((self.x<0||(rect.x<self.x+self.width&&self.x<rect.x+rect.width))&&(self.y<0||(rect.y<self.y+self.height&&self.y<rect.y+rect.height)))};_Layout.prototype.containsX=function(x){return this.x<=x&&x<this.x+this.width};_Layout.prototype.containsY=function(y){return this.y<=y&&y<this.y+this.height};return _Layout})();spread._Layout=_Layout;var _GcSheetModel=(function(){function _GcSheetModel(rowCount,colCount,name){this._defaultRowCount=200;this._defaultColCount=20;this._isSuspendDirty=false;var self=this;self.rowCount=(rowCount!==keyword_null&&rowCount!==keyword_undefined)?rowCount:self._defaultRowCount;self.colCount=(colCount!==keyword_null&&colCount!==keyword_undefined)?colCount:self._defaultColCount;self.name=name;self.dataTable={};self._rowDataArray=[];self._columnDataArray=[];self._defaultDataNode=keyword_null;self.dirtyNodes={}}_GcSheetModel.prototype.getRowCount=function(){return this.rowCount};_GcSheetModel.prototype.getColumnCount=function(){return this.colCount};_GcSheetModel.prototype._updateDirty=function(row,col){if(this._isSuspendDirty){return}if(row>=0&&col>=0){var dr=this.dataTable[row];if(dr.rs!=="n"){dr.rs="e"}this.dirtyNodes[row]=dr}};_GcSheetModel.prototype._suspendDirty=function(){this._isSuspendDirty=true};_GcSheetModel.prototype._resumeDirty=function(){this._isSuspendDirty=false};_GcSheetModel.prototype.getValue=function(row,col){var node=this.getNode(row,col);if(node&&node.value!==keyword_undefined&&node.value!==keyword_null){return node.value}return keyword_null};_GcSheetModel.prototype.setValue=function(row,col,value){var node=this.getNode(row,col,true);if(node.value!==value){node.value=value;this._updateDirty(row,col)}};_GcSheetModel.prototype.getBindingPath=function(row,col){var node=this.getNode(row,col);if(node&&node.bindingPath!==keyword_undefined&&node.bindingPath!==keyword_null){return node.bindingPath}return keyword_null};_GcSheetModel.prototype.setBindingPath=function(row,col,value){var node=this.getNode(row,col,true);if(node.bindingPath!==value){node.bindingPath=value;this._updateDirty(row,col)}};_GcSheetModel.prototype.getSparkline=function(row,col){var node=this.getNode(row,col);return((node&&node.sparkline)||keyword_null)};_GcSheetModel.prototype.setSparkline=function(row,col,sparkline){var node=this.getNode(row,col,true);if(node.sparkline!==sparkline){node.sparkline=sparkline;this._updateDirty(row,col)}};_GcSheetModel.prototype.setFormula=function(row,col,value,arrayInfo){var node=this.getNode(row,col,true);if(node.formula!==value){node.formula=value;this._updateDirty(row,col)}if(arrayInfo){node.arrayInfo=arrayInfo}};_GcSheetModel.prototype.getFormula=function(row,col){var node=this.getNode(row,col);return(node&&node.formula)};_GcSheetModel.prototype.getStyle=function(row,col){var node=this.getNode(row,col);return(node&&node.style)};_GcSheetModel.prototype.setStyle=function(row,col,value){var node=this.getNode(row,col,true);if(node&&node.style!==value){node.style=value;this._updateDirty(row,col)}};_GcSheetModel.prototype.getComment=function(row,col){var node=this.getNode(row,col);return(node&&node.comment)};_GcSheetModel.prototype.setComment=function(row,col,comment){var node=this.getNode(row,col,true);if(node&&node.comment!==comment){node.comment=comment;this._updateDirty(row,col)}};_GcSheetModel.prototype.getVisualState=function(row,col){var node=this.getNode(row,col);return(node&&node.visualState)};_GcSheetModel.prototype.setVisualState=function(row,col,value){var node=this.getNode(row,col,true);if(node.visualState!==value){node.visualState=value;this._updateDirty(row,col)}};_GcSheetModel.prototype.addRows=function(row,count){var self=this;if(row<0||row>self.rowCount||count<0){return}self.addElements(self.dataTable,self.rowCount,row,count);self.addElements(self._rowDataArray,self.rowCount,row,count);self.addElements(self.dirtyNodes,self.rowCount,row,count);self.rowCount+=count;for(var i=0;i<count;i++){self.dataTable[row+i]={rs:"n"};self.dirtyNodes[row+i]=self.dataTable[row+i]}};_GcSheetModel.prototype.deleteRows=function(row,count){var self=this;var n=self.rowCount;if(row<0||row>=n||count<=0){return}if(row+count>n){count=n-row}self.deleteElements(self.dataTable,n,row,count);self.deleteElements(self._rowDataArray,n,row,count);self.deleteElements(self.dirtyNodes,n,row,count);self.rowCount-=count};_GcSheetModel.prototype.addElements=function(a,aCount,index,count){if(a&&0<=index&&index<aCount){var rows=[],rowCount,i;for(i=index;i<aCount;i++){if(a[i]!==keyword_undefined){rows.push(i)}}rowCount=rows.length;for(i=0;i<rowCount;i++){var k=rows[rowCount-i-1];var value=a[k];a[k]=keyword_null;a[Math_floor(k)+count]=value}}};_GcSheetModel.prototype.deleteElements=function(a,aCount,index,count){if(a&&0<=index&&index<aCount){var rows=[],rowCount,index2=index+count,i;for(i=index;i<aCount;i++){if(a[i]!==keyword_undefined){if(index<=i&&i<index2){a[i]=keyword_null}else if(i>=index2){rows.push(i)}}}rowCount=rows.length;for(i=0;i<rowCount;i++){var k=rows[i];var value=a[k];a[k]=keyword_null;a[Math_floor(k)-count]=value}}};_GcSheetModel.prototype.addColumns=function(col,count){var self=this;if(col<0||col>self.colCount||count<0){return}for(var i=0;i<self.rowCount;i++){var tr=self.dataTable[i];if(tr&&col<self.colCount){self.addElements(tr,self.colCount,col,count)}}self.addElements(self._columnDataArray,self.colCount,col,count);self.colCount+=count};_GcSheetModel.prototype.deleteColumns=function(col,count){var self=this;var n=self.colCount;if(col<0||col>=n||count<0){return}for(var i=0;i<self.rowCount;i++){var tr=self.dataTable[i];if(tr&&col<self.colCount){self.deleteElements(tr,self.colCount,col,count)}}self.deleteElements(self._columnDataArray,self.colCount,col,count);if(col+count>n){count=n-col}self.colCount-=count};_GcSheetModel.prototype.getNode=function(row,col,create){var self=this;if(row>=self.rowCount||col>=self.colCount){return keyword_null}var node=keyword_null;if(row>=0&&col>=0){var dr=self.dataTable[row];if(create&&!dr){dr=self.dataTable[row]={}}if(dr){node=dr[col];if(create&&!node){node=dr[col]={}}}}else if(row===-1&&col>=0){node=self._columnDataArray[col];if(create&&!node){node=self._columnDataArray[col]={}}}else if(row>=0&&col===-1){node=self._rowDataArray[row];if(create&&!node){node=self._rowDataArray[row]={}}}else if(row===-1&&col===-1){node=self._defaultDataNode;if(create&&!node){node=self._defaultDataNode={}}}return node};_GcSheetModel.prototype._setNode4Swap=function(or,oc,row,col,node){var self=this;if(row>=0&&col>=0){var dr=self.dataTable[row];if(!dr){dr=self.dataTable[row]={}}dr[col]=node;if(node&&node.cellCalc){delete node.cellCalc}}else if(row>=0&&col===-1&&or>=0&&oc===-1){self._rowDataArray[row]=node}else if(col>=0&&row===-1&&oc>=0&&or===-1){self._columnDataArray[col]=node}};_GcSheetModel.prototype.swapNode=function(row,col,row2,col2){var self=this;var node=self.getNode(row,col);var node2=self.getNode(row2,col2);if(node){self._setNode4Swap(row,col,row2,col2,node)}else if(node2){self._setNode4Swap(row,col,row2,col2,keyword_null)}if(node2){self._setNode4Swap(row2,col2,row,col,node2)}else if(node){self._setNode4Swap(row2,col2,row,col,keyword_null)}};_GcSheetModel.prototype.getDataRowIndex=function(row){return row};_GcSheetModel.prototype.nextNonNullRow=function(row){row++;var rowCount=this.rowCount,dataTable=this.dataTable;while(row>=0&&row<rowCount){if(dataTable[row]){break}row++}if(row<rowCount){return row}return-1};_GcSheetModel.prototype.nextNonNullColumn=function(row,col){var self=this;var dr=keyword_null,colCount=self.colCount;if(row>=0&&row<self.rowCount){dr=self.dataTable[row]}if(!dr){return-1}col++;while(col>=0&&col<colCount){if(dr[col]){break}col++}if(col<colCount){return col}return-1};_GcSheetModel.prototype.clear=function(row,column,rowCount,columnCount,type,ignoredRowList){var self=this;var nodes=[];var node,c,r;if(row>=0&&column>=0){if(row+rowCount>self.rowCount){rowCount=self.rowCount-row}if(rowCount<=0){return}if(column+columnCount>self.colCount){columnCount=self.colCount-column}if(columnCount<=0){return}for(r=row;r<row+rowCount;r++){if(ignoredRowList&&ignoredRowList.indexOf(r)>=0){continue}for(c=column;c<column+columnCount;c++){node=self.getNode(r,c);if(node){nodes.push(node)}}}}else if(row>=0&&column===-1){if(row+rowCount>self.rowCount){rowCount=self.rowCount-row}if(rowCount<=0){return}for(r=row;r<row+rowCount;r++){node=self.getNode(r,-1);if(node){nodes.push(node)}}}else if(row===-1&&column>=0){if(column+columnCount>self.colCount){columnCount=self.colCount-column}if(columnCount<=0){return}for(c=column;c<column+columnCount;c++){node=self.getNode(-1,c);if(node){nodes.push(node)}}}else if(row===-1&&column===-1){node=self._defaultDataNode;if(node){nodes.push(node)}}self.clearCore(nodes,type)};_GcSheetModel.prototype.clearCore=function(nodes,type){for(var i=0;i<nodes.length;i++){if(nodes[i]){if((type&2)>0){nodes[i].style=keyword_null}if((type&1)>0){nodes[i].value=keyword_null;nodes[i].formula=keyword_null}if((type&16)>0){nodes[i].sparkline=keyword_null}if((type&64)>0){nodes[i].bindingPath=keyword_null}if((type&4)>0){nodes[i].comment=keyword_null}}}};_GcSheetModel.prototype.toJSON=function(sheetArea){var self=this;var jsonData={};if(sheetArea===2){if(self.rowCount!==self._defaultRowCount){jsonData["rowCount"]=self.rowCount}if(self.colCount!==1){jsonData["colCount"]=self.colCount}}else if(sheetArea===1){if(self.rowCount!==1){jsonData["rowCount"]=self.rowCount}if(self.colCount!==self._defaultColCount){jsonData["colCount"]=self.colCount}}else
{if(self.rowCount!==self._defaultRowCount){jsonData["rowCount"]=self.rowCount}if(self.colCount!==self._defaultColCount){jsonData["colCount"]=self.colCount}}var ndata={};var r=self.nextNonNullRow(-1);while(r>=0){var ndr=ndata[r]={};var c=self.nextNonNullColumn(r,-1);while(c>=0){var node=self.getNode(r,c);if(node){ndr[c]=self._toJSONNode(node)}c=self.nextNonNullColumn(r,c)}r=self.nextNonNullRow(r)}if(!$.isEmptyObject(ndata)){jsonData["dataTable"]=ndata}var nRowData=[];var rowData=self._rowDataArray;for(var r=0;r<self.rowCount;r++){if(rowData.hasOwnProperty(r)&&rowData[r]){nRowData[r]=self._toJSONNode(rowData[r])}}if(nRowData.length>0){jsonData["rowDataArray"]=nRowData}var nColData=[];var colData=self._columnDataArray;for(var c=0;c<self.colCount;c++){if(colData.hasOwnProperty(c)&&colData[c]){nColData[c]=self._toJSONNode(colData[c])}}if(nColData.length>0){jsonData["columnDataArray"]=nColData}var defaultDataNode=self._toJSONNode(self._defaultDataNode,sheetArea);if(!$.isEmptyObject(defaultDataNode)){jsonData["defaultDataNode"]=defaultDataNode}return jsonData};_GcSheetModel.prototype.fromJSON=function(setting){if(!setting){return}var self=this;var dt=setting;this._suspendDirty();if(dt.name!==keyword_undefined){self.name=dt.name}if(dt.rowCount!==keyword_undefined){self.rowCount=dt.rowCount}if(dt.colCount!==keyword_undefined){self.colCount=dt.colCount}var data=dt.dataTable;if(data){var dr,node;var rowCount=self.rowCount;var colCount=self.colCount;for(var r=0;r<rowCount;r++){dr=data[r];if(!dr){continue}for(var c=0;c<colCount;c++){node=dr[c];if(!node){continue}self._copyFromJSONNode(r,c,node)}}}var rowData=dt.rowDataArray?dt.rowDataArray:dt._rowDataArray;if(rowData){for(var r=0;r<self.rowCount;r++){if(rowData.hasOwnProperty(r)&&rowData[r]){self._copyFromJSONNode(r,-1,rowData[r])}}}var colData=dt.columnDataArray?dt.columnDataArray:dt._columnDataArray;if(colData){for(var c=0;c<self.colCount;c++){if(colData.hasOwnProperty(c)&&colData[c]){self._copyFromJSONNode(-1,c,colData[c])}}}var defDataNode=dt.defaultDataNode?dt.defaultDataNode:dt._defaultDataNode;if(defDataNode){self._copyFromJSONNode(-1,-1,defDataNode)}this._resumeDirty()};_GcSheetModel.prototype._getCellTypeKinds=function(){if(!this._dict){var dict={},spreadns=wijmo.spread,CellTypeKind=spreadns.CellTypeKind;dict[CellTypeKind.BaseCellType]=spreadns.BaseCellType;dict[CellTypeKind.TextCellType]=spreadns.TextCellType;dict[CellTypeKind.ColumnHeaderCellType]=spreadns.ColumnHeaderCellType;dict[CellTypeKind.RowHeaderCellType]=spreadns.RowHeaderCellType;dict[CellTypeKind.CornerCellType]=spreadns.CornerCellType;dict[CellTypeKind.CheckBoxCellType]=spreadns.CheckBoxCellType;dict[CellTypeKind.ButtonCellType]=spreadns.ButtonCellType;dict[CellTypeKind.ComboBoxCellType]=spreadns.ComboBoxCellType;dict[CellTypeKind.HyperLinkCellType]=spreadns.HyperLinkCellType;this._dict=dict}return this._dict};_GcSheetModel.prototype._saveStyle=function(targetStyle,sourceStyle,sheetArea){if(sourceStyle.backgroundImage!==keyword_undefined){targetStyle.backgroundImage=sourceStyle.backgroundImage}if(sourceStyle.backgroundImageLayout!==keyword_undefined){targetStyle.backgroundImageLayout=sourceStyle.backgroundImageLayout}if(sourceStyle.backColor!==keyword_undefined){targetStyle.backColor=sourceStyle.backColor}if(sourceStyle.font!==keyword_undefined){targetStyle.font=sourceStyle.font}if(sourceStyle.themeFont!==keyword_undefined){targetStyle.themeFont=sourceStyle.themeFont}if(sourceStyle.formatter!==keyword_undefined){targetStyle.formatter=sourceStyle.formatter}if(sourceStyle.validator!==keyword_undefined){targetStyle.validator=sourceStyle.validator}if(sourceStyle.borderLeft!==keyword_undefined){targetStyle.borderLeft=sourceStyle.borderLeft}if(sourceStyle.borderTop!==keyword_undefined){targetStyle.borderTop=sourceStyle.borderTop}if(sourceStyle.borderRight!==keyword_undefined){targetStyle.borderRight=sourceStyle.borderRight}if(sourceStyle.borderBottom!==keyword_undefined){targetStyle.borderBottom=sourceStyle.borderBottom}if(sourceStyle.locked!==keyword_undefined){targetStyle.locked=sourceStyle.locked}if(sourceStyle.textIndent!==keyword_undefined){targetStyle.textIndent=sourceStyle.textIndent}if(sourceStyle.wordWrap!==keyword_undefined){targetStyle.wordWrap=sourceStyle.wordWrap}if(sourceStyle.shrinkToFit!==keyword_undefined){targetStyle.shrinkToFit=sourceStyle.shrinkToFit}if(sourceStyle.cellType!==keyword_undefined){targetStyle.cellType=sourceStyle.cellType}if(sourceStyle.tabStop!==keyword_undefined){targetStyle.tabStop=sourceStyle.tabStop}if(sourceStyle.textDecoration!==keyword_undefined){targetStyle.textDecoration=sourceStyle.textDecoration}if(sourceStyle.name!==keyword_undefined){targetStyle.name=sourceStyle.name}if(sourceStyle.parentName!==keyword_undefined){targetStyle.parentName=sourceStyle.parentName}if(sourceStyle.foreColor!==keyword_undefined&&sourceStyle.foreColor!=="#000000"){targetStyle.foreColor=sourceStyle.foreColor}if(sourceStyle.imeMode!==keyword_undefined&&sourceStyle.imeMode!==1){targetStyle.imeMode=sourceStyle.imeMode}if(sheetArea===2){if(sourceStyle.hAlign!==keyword_undefined&&sourceStyle.hAlign!==1){targetStyle.hAlign=sourceStyle.hAlign}if(sourceStyle.vAlign!==keyword_undefined&&sourceStyle.vAlign!==1){targetStyle.vAlign=sourceStyle.vAlign}}else if(sheetArea===1){if(sourceStyle.hAlign!==keyword_undefined&&sourceStyle.hAlign!==1){targetStyle.hAlign=sourceStyle.hAlign}if(sourceStyle.vAlign!==keyword_undefined&&sourceStyle.vAlign!==1){targetStyle.vAlign=sourceStyle.vAlign}}else
{if(sourceStyle.hAlign!==keyword_undefined&&sourceStyle.hAlign!==3){targetStyle.hAlign=sourceStyle.hAlign}if(sourceStyle.vAlign!==keyword_undefined&&sourceStyle.vAlign!==0){targetStyle.vAlign=sourceStyle.vAlign}}};_GcSheetModel.prototype._toJSONNode=function(node,sheetArea){if(!node){return keyword_null}var jsonNode={};if(node.value!==keyword_undefined&&node.value!==keyword_null){jsonNode.value=node.value}if(node.formula!==keyword_undefined&&node.formula!==keyword_null){jsonNode.formula=node.formula;if(node.arrayInfo){jsonNode.arrayInfo=node.arrayInfo}}var nodeStyle=node.style;if(typeof nodeStyle==="string"){jsonNode.style=nodeStyle}else if(nodeStyle){var style={};this._saveStyle(style,nodeStyle,sheetArea);if(!$.isEmptyObject(style)){jsonNode.style=style;if(nodeStyle.font){jsonNode.style.font=nodeStyle.font;}}}if(node.bindingPath!==keyword_undefined&&node.bindingPath!==keyword_null){jsonNode.bindingPath=node.bindingPath}return jsonNode};_GcSheetModel.prototype._copyFromJSONNode=function(toRow,toCol,node){if(!node){return}var self=this;var r=toRow,c=toCol;var targetNode=self.getNode(r,c,true);self._updateDirty(r,c);if(node.value!==keyword_undefined){if(node.value!=keyword_null&&node.value._calcError){var value=spread.Calc.CalcError._parseCore(node.value._calcError);if(value!==keyword_undefined){node.value=value}}targetNode.value=node.value}if(node.formula!==keyword_undefined){targetNode.formula=node.formula;if(node.arrayInfo){targetNode.arrayInfo=node.arrayInfo}}if(node.style!==keyword_undefined){var style=keyword_null;if(typeof(node.style)==='string'){style=node.style}else if(node.style){style=new spread.Style;style.copyFrom(node.style);if(node.style.validator!==keyword_undefined){var dv;if(spread.features.dataValidator){dv=new wijmo.spread.DefaultDataValidator;dv.fromJSON(node.style.validator)}style.validator=dv}if(node.style.cellType!==keyword_undefined){var ct;var dict=self._getCellTypeKinds();var cellTypeClass=dict[node.style.cellType.type];if(cellTypeClass){ct=new cellTypeClass;ct.fromJSON(node.style.cellType)}style.cellType=ct}}targetNode.style=style}if(node.visualState!==keyword_undefined){targetNode.visualState=node.visualState}if(node.bindingPath!==keyword_undefined){targetNode.bindingPath=node.bindingPath}};return _GcSheetModel})();spread._GcSheetModel=_GcSheetModel;var _UndoManager=(function(){function _UndoManager(context,maxLength,allowUndo){this.changed=keyword_null;var self=this;self._context=context;if(parseInt(maxLength.toString(),10)<0){maxLength=2147483647}self._maxLength=maxLength;self._allowUndo=allowUndo;self._undoStack=[];self._redoStack=[]}_UndoManager.prototype.context=function(){return this._context};_UndoManager.prototype.canUndo=function(){return this._undoStack.length>0};_UndoManager.prototype.canRedo=function(){return this._redoStack.length>0};_UndoManager.prototype._shrinkUndoStack=function(count){for(var i=0;i<count;i++){this._undoStack.shift()}};_UndoManager.prototype._raiseChanged=function(){var self=this;if(self.changed&&typeof(self.changed)==='function'){self.changed(self)}};_UndoManager.prototype.doAction=function(action){if(!action||!action.execute){return false}var self=this;var success=true;try
{action.execute(self._context)}catch(e){success=false}if(self._allowUndo){if(success&&action.canUndo()&&action.undo){if(self._maxLength>0&&self._undoStack.length>=self._maxLength){self._shrinkUndoStack(self._undoStack.length-self._maxLength+1)}self._undoStack.push(action);self._redoStack=[];self._raiseChanged()}}return success};_UndoManager.prototype.undo=function(){var self=this;var result=true;if(self._allowUndo&&self.canUndo()){var undoAction=self._undoStack[self._undoStack.length-1];try
{if(undoAction&&undoAction.canUndo&&undoAction.canUndo()&&undoAction.undo){result=undoAction.undo(self._context)}}catch(e){result=false}if(result){self._redoStack.push(self._undoStack.pop());self._raiseChanged()}}return result};_UndoManager.prototype.redo=function(){var self=this;var result=true;if(self._allowUndo&&self.canRedo()){var redoAction=self._redoStack[self._redoStack.length-1];try
{if(redoAction&&redoAction.execute){redoAction.execute(self._context)}}catch(e){result=false}if(result){self._undoStack.push(self._redoStack.pop());self._raiseChanged()}}return result};_UndoManager.prototype.getUndoList=function(){return this._undoStack.slice(0)};_UndoManager.prototype.getRedoList=function(){return this._redoStack.slice(0)};return _UndoManager})();spread._UndoManager=_UndoManager;var _CalcModel=(function(_super){__extends(_CalcModel,_super);function _CalcModel(rowCount,colCount,name){_super.call(this,rowCount,colCount,name)}_CalcModel.prototype.getExpr=function(row,col){var node=this.getNode(row,col);return(node&&node.expr)};_CalcModel.prototype.setExpr=function(row,col,expr,arrayInfo,workingExpr){var node=this.getNode(row,col,true);node.expr=expr;if(arrayInfo){node.arrayInfo=arrayInfo}else if(node.arrayInfo){node.arrayInfo=keyword_undefined}if(workingExpr){node.workingExpr=workingExpr}else
{node.workingExpr=keyword_undefined}};_CalcModel.prototype.clearExpr=function(row,col){var node=this.getNode(row,col,true);if(node){node.expr=node.workingExpr=node.arrayInfo=keyword_undefined}};_CalcModel.prototype.CopyExpr=function(dest,row,col,desRow,desCol){var node=this.getNode(row,col);if(node&&node.expr){var destNode=dest.getNode(desRow,desCol,true);if(node.arrayInfo){destNode.arrayInfo=new spread.Range(desRow,desCol,node.arrayInfo.rowCount-(row-node.arrayInfo.row),node.arrayInfo.colCount-(col-node.arrayInfo.col))}destNode.expr=node.expr;if(node.workingExpr){destNode.workingExpr=node.workingExpr}}};_CalcModel.prototype.getWorkingExpr=function(row,col){var node=this.getNode(row,col);return(node&&(node.workingExpr||node.expr))};_CalcModel.prototype.containsNoe=function(row,col){var dt=this.dataTable;var dr=dt[row];return dr&&dr[col]};_CalcModel.prototype.clearCore=function(nodes,type){_super.prototype.clearCore.call(this,nodes,type);for(var i=0;i<nodes.length;i++){var node=nodes[i];if(node){if((type&1)>0){if(node.arrayInfo){node.arrayInfo=keyword_undefined}if(node.expr){node.expr=keyword_undefined}if(node.workingExpr){node.workingExpr=keyword_undefined}}}}};return _CalcModel})(_GcSheetModel);spread._CalcModel=_CalcModel})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var __extends=this.__extends||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __};var wijmo;(function(wijmo){(function(spread){spread.feature("core.sheet_action",["core.common","core.sheet_model"]);var keyword_null=null;function __navigateNoWrap(sheet,direction){if(sheet){if(sheet._editorStatus===2){return false}var fbx=sheet._formulaTextBox;if(fbx&&fbx.canAppendRange()){sheet._moveFormulaTextBoxCell(direction,false)}else
{sheet.moveActiveCell(direction,false)}return true}return false}function __navigateNoWrapFrom(sheet,direction,row,col){if(sheet){if(sheet._editorStatus===2){return false}var fbx=sheet._formulaTextBox;if(fbx&&fbx.canAppendRange()){sheet._moveFormulaTextBoxCell(direction,false,row,col)}else
{sheet.moveActiveCell(direction,false,row,col)}return true}return false}function __alterSelection(sheet,key,isCtrl){if(sheet){if(sheet._editorStatus===2){return false}var fbx=sheet._formulaTextBox;if(fbx&&fbx.canAppendRange()){sheet._changeFormulaTextBoxActiveRange(key,isCtrl)}else
{sheet.endEdit();sheet._changeActiveSelectedRange(key,isCtrl)}return true}return false}function __createFloatingObjectActionExtent(sheet,onlySelected){var names=[];for(var i=0,len=sheet._floatingObjectArray.length;i<len;i++){var item=sheet._floatingObjectArray[i];if(onlySelected&&item.isSelected()){names.push(item.name())}else
{names.push(item.name)}}return names}var SpreadActions=(function(){function SpreadActions(){}SpreadActions.navigationLeft=function(){return __navigateNoWrap(this,3)};SpreadActions.navigationRight=function(){return __navigateNoWrap(this,4)};SpreadActions.navigationUp=function(){return __navigateNoWrap(this,1)};SpreadActions.navigationDown=function(){return __navigateNoWrap(this,2)};SpreadActions.commitArrayFormula=function(){var sheet=this;sheet.commitArrayFormula();return true};SpreadActions.commitInputNavigationDown=function(){var sheet=this;sheet.moveActiveCell(2,false);return true};SpreadActions.commitInputNavigationUp=function(){var sheet=this;sheet.moveActiveCell(1,false);return true};SpreadActions.navigationHome=function(){var sheet=this;return __navigateNoWrapFrom(sheet,4,keyword_null,sheet.frozenColCount?sheet.frozenColCount-1:-1)};SpreadActions.navigationHome2=function(){var sheet=this;return __navigateNoWrapFrom(sheet,4,keyword_null,-1)};SpreadActions.navigationEnd=function(){var sheet=this;return __navigateNoWrapFrom(this,3,keyword_null,sheet.getColumnCount()-sheet._frozenTrailingColCount)};SpreadActions.navigationEnd2=function(){var sheet=this;return __navigateNoWrapFrom(sheet,3,keyword_null,sheet.getColumnCount())};SpreadActions.navigationTop=function(){var sheet=this;return __navigateNoWrapFrom(sheet,2,-1,keyword_null)};SpreadActions.navigationBottom=function(){var sheet=this;return __navigateNoWrapFrom(sheet,1,sheet.getRowCount(),keyword_null)};SpreadActions.navigationPageUp=function(){var sheet=this;if(!sheet||sheet._editorStatus===2){return false}var prevPageTopRow=sheet._getPrevPageTopRow();if(prevPageTopRow===keyword_null||prevPageTopRow===sheet._scrollTopRow){return true}var rls=sheet._getRowLayout(1,3);var newActiveRow=sheet._getNextVisualRow(sheet._activeRowIndex-rls.length);if(newActiveRow<prevPageTopRow){newActiveRow=prevPageTopRow}var fbx=sheet._formulaTextBox;if(fbx&&fbx.canAppendRange()){var appendingInfo=sheet._getKeyboardAppendingInfo();appendingInfo.anchorRow=newActiveRow;appendingInfo.leadingRow=newActiveRow;var rangeString=sheet._eventHandler.rangeToString(new spread.Range(appendingInfo.anchorRow,appendingInfo.anchorCol,1,1));if(rangeString){fbx.appendRange(rangeString,false,true)}}else
{sheet.endEdit();sheet._setActiveCellCore(newActiveRow,keyword_null);sheet._leadingCellRow=newActiveRow;sheet.moveActiveCell()}sheet._setTopRow(prevPageTopRow);return true};SpreadActions.navigationPageDown=function(){var sheet=this;if(!sheet||sheet._editorStatus===2){return false}var nextPageTopRow=sheet._getNextPageTopRow();if(nextPageTopRow===keyword_null||nextPageTopRow===sheet._scrollTopRow){return true}var rls=sheet._getRowLayout(1,3);var newActiveRow=sheet._getPrevVisualRow(sheet._activeRowIndex+rls.length);if(newActiveRow<nextPageTopRow){newActiveRow=nextPageTopRow}var fbx=sheet._formulaTextBox;if(fbx&&fbx.canAppendRange()){var appendingInfo=sheet._getKeyboardAppendingInfo();appendingInfo.anchorRow=newActiveRow;appendingInfo.leadingRow=newActiveRow;var rangeString=sheet._eventHandler.rangeToString(new spread.Range(appendingInfo.anchorRow,appendingInfo.anchorCol,1,1));if(rangeString){fbx.appendRange(rangeString,false,true)}}else
{sheet.endEdit();sheet._setActiveCellCore(newActiveRow,keyword_null);sheet._leadingCellRow=newActiveRow;sheet.moveActiveCell()}sheet._setTopRow(nextPageTopRow);return true};SpreadActions.navigationNextSheet=function(){var sheetTmp=this,spreadTmp=sheetTmp.parent,spreadns=wijmo.spread;if(spreadTmp||spreadTmp instanceof spreadns.Spread){var count=spreadTmp.getSheetCount();var index=spreadTmp.getActiveSheetIndex();if(index<count-1){index++;spreadTmp.setActiveSheetIndex(index);spreadTmp.repaint()}}};SpreadActions.navigationPreviousSheet=function(){var sheetTmp=this,spreadTmp=sheetTmp.parent,spreadns=wijmo.spread;if(spreadTmp||spreadTmp instanceof spreadns.Spread){var index=spreadTmp.getActiveSheetIndex();if(index>0){index--;spreadTmp.setActiveSheetIndex(index);spreadTmp.repaint()}}};SpreadActions.navigationPrevious=function(){};SpreadActions.navigationNext=function(){};SpreadActions.navigationFirst=function(){var sheet=this;if(!sheet||sheet._editorStatus===2){return false}var prevCol=sheet.frozenColCount?sheet.frozenColCount-1:-1;var prevRow=sheet.frozenRowCount?sheet.frozenRowCount-1:-1;var fbx=sheet._formulaTextBox;if(fbx&&fbx.canAppendRange()){var eventHandler=sheet._eventHandler,appendingInfo;if(fbx.isAppending){appendingInfo=eventHandler._formulaRangeAppendingInfo}else
{appendingInfo=eventHandler._formulaRangeAppendingInfo={anchorRow:sheet._activeRowIndex,anchorCol:sheet._activeColIndex,leadingRow:sheet._leadingCellRow,leadingCol:sheet._leadingCellCol}}sheet._moveFormulaTextBoxCell(4,false,appendingInfo.anchorRow,prevCol);sheet._moveFormulaTextBoxCell(2,false,prevRow,appendingInfo.anchorCol)}else
{sheet.moveActiveCell(4,false,sheet._activeRowIndex,prevCol);sheet.moveActiveCell(2,false,prevRow,sheet._activeColIndex)}return true};SpreadActions.navigationLast=function(){var sheet=this;if(!sheet||sheet._editorStatus===2){return false}var fbx=sheet._formulaTextBox;if(fbx&&fbx.canAppendRange()){var eventHandler=sheet._eventHandler,appendingInfo;if(fbx.isAppending){appendingInfo=eventHandler._formulaRangeAppendingInfo}else
{appendingInfo=eventHandler._formulaRangeAppendingInfo={anchorRow:sheet._activeRowIndex,anchorCol:sheet._activeColIndex,leadingRow:sheet._leadingCellRow,leadingCol:sheet._leadingCellCol}}sheet._moveFormulaTextBoxCell(3,false,appendingInfo.anchorRow,sheet.getColumnCount()-sheet._frozenTrailingColCount);sheet._moveFormulaTextBoxCell(1,false,sheet.getRowCount()-sheet._frozenTrailingRowCount,appendingInfo.anchorCol)}else
{sheet.moveActiveCell(3,false,sheet._activeRowIndex,sheet.getColumnCount()-sheet._frozenTrailingColCount);sheet.moveActiveCell(1,false,sheet.getRowCount()-sheet._frozenTrailingRowCount,sheet._activeColIndex)}return true};SpreadActions.commitInputNavigationTabNext=function(){var sheet=this;sheet._isTabNavigation=true;if(sheet._isNavigateInSelection){sheet._moveActiveCellInSelection(4)}else
{sheet.moveActiveCell(4,true)}sheet._isTabNavigation=false};SpreadActions.commitInputNavigationTabPrevious=function(){var sheet=this;sheet._isTabNavigation=true;if(sheet._isNavigateInSelection){sheet._moveActiveCellInSelection(3)}else
{sheet.moveActiveCell(3,true)}sheet._isTabNavigation=false};SpreadActions.cancelInput=function(){var sheet=this;if(sheet.isEditing()){var cacheValue=sheet.getValue(sheet._activeRowIndex,sheet._activeColIndex,3);sheet.endEdit(true);sheet.setValue(sheet._activeRowIndex,sheet._activeColIndex,cacheValue,3,true);return true}else
{var tempSpread=sheet.parent;if(tempSpread&&tempSpread.sheets){var sheets=tempSpread.sheets;for(var index=0,len=sheets.length;index<len;index++){var item=sheets[index];if(item){item._cutCopyIndicatorManager.cancelIndicator()}}}}};SpreadActions.clear=function(){var sheet=this;if(!sheet.isEditing()){var sels=sheet.getSelections();var ranges=sels.toArray();var action=new spread.UndoRedo.ClearValueUndoAction(sheet,ranges);if(action.canExecute(sheet)){sheet._doCommand(action)}}};SpreadActions.clearAndEditing=function(){var sheet=this;if(!sheet.isEditing()){sheet.startEdit(true,"");return true}return false};SpreadActions.copy=function(){var sheet=this;sheet._doCopy()};SpreadActions.cut=function(){var sheet=this;sheet._doCut()};SpreadActions.paste=function(istyle){var sheet=this;sheet._doPaste(null,null,istyle)};SpreadActions.selectionLeft=function(){return __alterSelection(this,37)};SpreadActions.selectionRight=function(){return __alterSelection(this,39)};SpreadActions.selectionUp=function(){return __alterSelection(this,38)};SpreadActions.selectionDown=function(){return __alterSelection(this,40)};SpreadActions.selectionHome=function(){return __alterSelection(this,37,true)};SpreadActions.selectionEnd=function(){return __alterSelection(this,39,true)};SpreadActions.selectionPageUp=function(){return __alterSelection(this,33)};SpreadActions.selectionPageDown=function(){return __alterSelection(this,34)};SpreadActions.selectionTop=function(){return __alterSelection(this,38,true)};SpreadActions.selectionBottom=function(){return __alterSelection(this,40,true)};SpreadActions.selectionFirst=function(){return __alterSelection(this,36,true)};SpreadActions.selectionLast=function(){return __alterSelection(this,35,true)};SpreadActions.unSelectAllFloatingObjects=function(){var sheet=this;if(sheet._hasFloatingObjectsSelected()){sheet._suspendInvalidate();sheet.unSelectAllFloatingObjects();sheet._loadAndSetSheetSelections();sheet._resumeInvalidate()}};SpreadActions.selectAllFloatingObjects=function(){var sheet=this;if(sheet._hasFloatingObjectsSelected()){sheet._suspendInvalidate();for(var i=0,len=sheet._floatingObjectArray.length;i<len;i++){var item=sheet._floatingObjectArray[i];if(!item.isSelected()){item.isSelected(true)}}sheet._resumeInvalidate()}};SpreadActions.deleteFloatingObject=function(){var sheet=this;var names=__createFloatingObjectActionExtent(sheet,true);if(names.length>0){var deleteExtent={names:names};var deleteFloationgObjectUndoAction=new spread.UndoRedo.DeleteFloatingObjectUndoAction(sheet,deleteExtent);sheet._doCommand(deleteFloationgObjectUndoAction)}};SpreadActions.navigationNextFloatingObject=function(){var sheet=this;if(sheet._hasFloatingObjectsSelected()){sheet._suspendInvalidate();var i,len,selectedIndex=0;;for(i=0,len=sheet._floatingObjectArray.length;i<len;i++){var item=sheet._floatingObjectArray[i];if(item.isSelected()){selectedIndex=i}}sheet.unSelectAllFloatingObjects();selectedIndex+=1;if(selectedIndex==sheet._floatingObjectArray.length){selectedIndex=0}sheet._floatingObjectArray[selectedIndex].isSelected(true);sheet._resumeInvalidate()}};SpreadActions.navigationPreviousFloatingObject=function(){var sheet=this;if(sheet._hasFloatingObjectsSelected()){sheet._suspendInvalidate();var i,len,selectedIndex=0;;for(i=0,len=sheet._floatingObjectArray.length;i<len;i++){var item=sheet._floatingObjectArray[i];if(item.isSelected()){selectedIndex=i}}sheet.unSelectAllFloatingObjects();selectedIndex-=1;if(selectedIndex<0){selectedIndex=sheet._floatingObjectArray.length-1}sheet._floatingObjectArray[selectedIndex].isSelected(true);sheet._resumeInvalidate()}};SpreadActions.clipboardCutFloatingObject=function(){var sheet=this;sheet._doFloatingObjectCut()};SpreadActions.clipboardCopyFloatingObject=function(){var sheet=this;sheet._doFloatingObjectCopy()};SpreadActions.clipboardPasteFloatingObject=function(){var sheet=this;sheet._doFloatingObjectPaste()};SpreadActions.moveFloatingObjectUp=function(){var sheet=this;var names=[];var i,len,selectedIndex=0;;for(i=0,len=sheet._floatingObjectArray.length;i<len;i++){var item=sheet._floatingObjectArray[i];if(item.isSelected()){names.push(item.name())}}var movingFloatingObjectUndoAction=new spread.UndoRedo.MovingFloatingObjectUndoAction(sheet,{names:names},{offsetX:0,offsetY:-1});sheet._doCommand(movingFloatingObjectUndoAction)};SpreadActions.moveFloatingObjectDown=function(){var sheet=this;var names=[];var i,len,selectedIndex=0;;for(i=0,len=sheet._floatingObjectArray.length;i<len;i++){var item=sheet._floatingObjectArray[i];if(item.isSelected()){names.push(item.name())}}var movingFloatingObjectUndoAction=new spread.UndoRedo.MovingFloatingObjectUndoAction(sheet,{names:names},{offsetX:0,offsetY:1});sheet._doCommand(movingFloatingObjectUndoAction)};SpreadActions.moveFloatingObjectLeft=function(){var sheet=this;var names=[];var i,len,selectedIndex=0;;for(i=0,len=sheet._floatingObjectArray.length;i<len;i++){var item=sheet._floatingObjectArray[i];if(item.isSelected()){names.push(item.name())}}var movingFloatingObjectUndoAction=new spread.UndoRedo.MovingFloatingObjectUndoAction(sheet,{names:names},{offsetX:-1,offsetY:0});sheet._doCommand(movingFloatingObjectUndoAction)};SpreadActions.moveFloatingObjectRight=function(){var sheet=this;var names=[];var i,len,selectedIndex=0;;for(i=0,len=sheet._floatingObjectArray.length;i<len;i++){var item=sheet._floatingObjectArray[i];if(item.isSelected()){names.push(item.name())}}var movingFloatingObjectUndoAction=new spread.UndoRedo.MovingFloatingObjectUndoAction(sheet,{names:names},{offsetX:1,offsetY:0});sheet._doCommand(movingFloatingObjectUndoAction)};SpreadActions.deleteComment=function(){var sheet=this;var activeComment=sheet._commentManager.getActiveComment();if(activeComment){var commentDeleteUndoAction=new spread.UndoRedo.CommentDeleteUndoAction(sheet,activeComment);sheet._doCommand(commentDeleteUndoAction)}};SpreadActions.deactivateComment=function(){var sheet=this;sheet._commentManager.deactivateComment();sheet._loadAndSetSheetSelections();sheet.repaint()};SpreadActions.moveCommentUp=function(){var sheet=this;var activeComment=sheet._commentManager.getActiveComment();if(activeComment){var action=new spread.UndoRedo.CommentPropertyUndoAction(sheet,activeComment,activeComment.location().clone(),new spread.Point(activeComment.location().x,activeComment.location().y-1),"location");sheet._doCommand(action)}};SpreadActions.moveCommentDown=function(){var sheet=this;var activeComment=sheet._commentManager.getActiveComment();if(activeComment){var action=new spread.UndoRedo.CommentPropertyUndoAction(sheet,activeComment,activeComment.location().clone(),new spread.Point(activeComment.location().x,activeComment.location().y+1),"location");sheet._doCommand(action)}};SpreadActions.moveCommentLeft=function(){var sheet=this;var activeComment=sheet._commentManager.getActiveComment();if(activeComment){var action=new spread.UndoRedo.CommentPropertyUndoAction(sheet,activeComment,activeComment.location().clone(),new spread.Point(activeComment.location().x-1,activeComment.location().y),"location");sheet._doCommand(action)}};SpreadActions.moveCommentRight=function(){var sheet=this;var activeComment=sheet._commentManager.getActiveComment();if(activeComment){var action=new spread.UndoRedo.CommentPropertyUndoAction(sheet,activeComment,activeComment.location().clone(),new spread.Point(activeComment.location().x+1,activeComment.location().y),"location");sheet._doCommand(action)}};SpreadActions.changeFormulaReference=function(){var sheet=this;if(!sheet||!sheet._formulaTextBox){return}var eventHandler=sheet._eventHandler;if(eventHandler){sheet._suspendInvalidate();try
{eventHandler.changeFormulaReference()}finally
{sheet._resumeInvalidate()}}};SpreadActions.undo=function(){var sheet=this;var undoManager=sheet.undoManager();if(sheet.isProtected===false&&undoManager.canUndo()){undoManager.undo()}};SpreadActions.redo=function(){var sheet=this;var undoManager=sheet.undoManager();if(sheet.isProtected===false&&undoManager.canRedo()){undoManager.redo()}};return SpreadActions})();spread.SpreadActions=SpreadActions})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){(function(UndoRedo){var keyword_null=null,keyword_undefined=undefined,Math_min=Math.min,Math_max=Math.max,Math_ceil=Math.ceil,Math_floor=Math.floor;var CellData=(function(){function CellData(row,column,value){var self=this;self.row=row;self.column=column;self.value=value}return CellData})();UndoRedo.CellData=CellData;var CopyMoveSheetInfo=(function(){function CopyMoveSheetInfo(){}CopyMoveSheetInfo.prototype.saveDefaultStyle=function(style){this._defaultStyle=style;this._defaultStyleSaved=true};CopyMoveSheetInfo.prototype.getDefaultStyle=function(){return this._defaultStyle};CopyMoveSheetInfo.prototype.saveDefaultColumnWidth=function(width){this._defaultColumnWidth=width;this._defaultColumnWidthSaved=true};CopyMoveSheetInfo.prototype.getDefaultColumnWidth=function(){return this._defaultColumnWidth};CopyMoveSheetInfo.prototype.saveDefaultRowHeight=function(height){this._defaultRowHeight=height;this._defaultRowHeightSaved=true};CopyMoveSheetInfo.prototype.getDefaultRowHeight=function(){return this._defaultRowHeight};CopyMoveSheetInfo.prototype.saveColumnHeaderDefaultStyle=function(style){this._columnHeaderDefaultStyle=style;this._columnHeaderDefaultStyleSaved=true};CopyMoveSheetInfo.prototype.getColumnHeaderDefaultStyle=function(){return this._columnHeaderDefaultStyle};CopyMoveSheetInfo.prototype.saveColumnHeaderDefaultRowHeight=function(height){this._columnHeaderDefaultRowHeight=height;this._columnHeaderDefaultRowHeightSaved=true};CopyMoveSheetInfo.prototype.getColumnHeaderDefaultRowHeight=function(){return this._columnHeaderDefaultRowHeight};CopyMoveSheetInfo.prototype.saveRowHeaderDefaultStyle=function(style){this._rowHeaderDefaultStyle=style;this._rowHeaderDefaultStyleSaved=true};CopyMoveSheetInfo.prototype.getRowHeaderDefaultStyle=function(){return this._rowHeaderDefaultStyle};CopyMoveSheetInfo.prototype.saveRowHeaderDefaultColumnWidth=function(width){this._rowHeaderDefaultColumnWidth=width;this._rowHeaderDefaultColumnWidthSaved=true};CopyMoveSheetInfo.prototype.getRowHeaderDefaultColumnWidth=function(){return this._rowHeaderDefaultColumnWidth};CopyMoveSheetInfo.prototype.saveCommentManager=function(commentManager){this._commentManager=commentManager;this._commentManagerSaved=true};CopyMoveSheetInfo.prototype.isDefaultStyleSaved=function(){return this._defaultStyleSaved};CopyMoveSheetInfo.prototype.isDefaultColumnWidthSaved=function(){return this._defaultColumnWidthSaved};CopyMoveSheetInfo.prototype.isDefaultRowHeightSaved=function(){return this._defaultRowHeightSaved};CopyMoveSheetInfo.prototype.isColumnHeaderDefaultStyleSaved=function(){return this._columnHeaderDefaultStyleSaved};CopyMoveSheetInfo.prototype.isColumnHeaderDefaultRowHeightSaved=function(){return this._columnHeaderDefaultRowHeightSaved};CopyMoveSheetInfo.prototype.isRowHeaderDefaultStyleSaved=function(){return this._rowHeaderDefaultStyleSaved};CopyMoveSheetInfo.prototype.isRowHeaderDefaultColumnWidthSaved=function(){return this._rowHeaderDefaultColumnWidthSaved};CopyMoveSheetInfo.prototype.isCommentManagerSaved=function(){return this._commentManagerSaved};return CopyMoveSheetInfo})();UndoRedo.CopyMoveSheetInfo=CopyMoveSheetInfo;var CopyMoveCellsInfo=(function(){function CopyMoveCellsInfo(rowCount,columnCount){var self=this;self._rowCount=rowCount;self._columnCount=columnCount;self._init()}CopyMoveCellsInfo.prototype._init=function(){var self=this;self._values=[];self._formulas=[];self._sparklines=[];self._styles=[];self._comments=[];self._tags=[];self._bindingPaths=[];self._spans=keyword_null;self._arrayFormulas=[];self._valueSaved=false;self._formulaSaved=false;self._sparklineSaved=false;self._styleSaved=false;self._commentSaved=false;self._tagSaved=false;self._spanSaved=false;self._arrayFormulaSaved=false;self._bindingPathSaved=false};CopyMoveCellsInfo.prototype.saveValue=function(row,column,value){if(value!==keyword_undefined&&value!==keyword_null){this._values.push(new CellData(row,column,value))}this._valueSaved=true};CopyMoveCellsInfo.prototype.getValues=function(){return this._values};CopyMoveCellsInfo.prototype.saveFormula=function(row,column,formula){if(formula&&formula!==""){this._formulas.push(new CellData(row,column,formula))}this._formulaSaved=true};CopyMoveCellsInfo.prototype.getFormulas=function(){return this._formulas};CopyMoveCellsInfo.prototype.saveArrayFormula=function(arrayFormulaInfo){this._arrayFormulas.push(arrayFormulaInfo);this._arrayFormulaSaved=true};CopyMoveCellsInfo.prototype.getArrayFormula=function(){return this._arrayFormulas};CopyMoveCellsInfo.prototype.saveSparkline=function(row,column,sparkline){if(sparkline){this._sparklines.push(new CellData(row,column,sparkline))}this._sparklineSaved=true};CopyMoveCellsInfo.prototype.getSparklines=function(){return this._sparklines};CopyMoveCellsInfo.prototype.saveStyle=function(row,column,style){if(style){this._styles.push(new CellData(row,column,style))}this._styleSaved=true};CopyMoveCellsInfo.prototype.getStyles=function(){return this._styles};CopyMoveCellsInfo.prototype.saveComment=function(row,column,comment){if(comment){this._comments.push(new CellData(row,column,comment))}this._commentSaved=true};CopyMoveCellsInfo.prototype.getComments=function(){return this._comments};CopyMoveCellsInfo.prototype.saveTag=function(row,column,tag){if(tag!==keyword_undefined&&tag!==keyword_null){this._tags.push(new CellData(row,column,tag))}this._tagSaved=true};CopyMoveCellsInfo.prototype.getTags=function(){return this._tags};CopyMoveCellsInfo.prototype.saveBindingPath=function(row,column,path){if(path!==keyword_undefined&&path!==keyword_null){this._bindingPaths.push(new CellData(row,column,path))}this._bindingPathSaved=true};CopyMoveCellsInfo.prototype.getBindingPaths=function(){return this._bindingPaths};CopyMoveCellsInfo.prototype.saveSpan=function(span){var self=this;if(!self._spans){self._spans=[]}self._spans.push(span);self._spanSaved=true};CopyMoveCellsInfo.prototype.isValueSaved=function(){return this._valueSaved};CopyMoveCellsInfo.prototype.isFormulaSaved=function(){return this._formulaSaved};CopyMoveCellsInfo.prototype.isArrayFormulaSaved=function(){return this._arrayFormulaSaved};CopyMoveCellsInfo.prototype.isSparklineSaved=function(){return this._sparklineSaved};CopyMoveCellsInfo.prototype.isStyleSaved=function(){return this._styleSaved};CopyMoveCellsInfo.prototype.isCommentSaved=function(){return this._commentSaved};CopyMoveCellsInfo.prototype.isTagSaved=function(){return this._tagSaved};CopyMoveCellsInfo.prototype.isSpanSaved=function(){return this._spanSaved};CopyMoveCellsInfo.prototype.isBindingPathSaved=function(){return this._bindingPathSaved};return CopyMoveCellsInfo})();UndoRedo.CopyMoveCellsInfo=CopyMoveCellsInfo;var CopyMoveColumnsInfo=(function(){function CopyMoveColumnsInfo(columnCount){this._columnCount=columnCount;this._init()}CopyMoveColumnsInfo.prototype._init=function(){var self=this;self._widths={};self._visibles={};self._resizables={};self._tags={};self._viewportColumnStyles={};self._headerColumnStyles={};self._levels={};self._collapsed={};self._bindingFields={};self._widthSaved=false;self._visibleSaved=false;self._resizableSaved=false;self._tagSaved=false;self._viewportColumnStyleSaved=false;self._headerColumnStyleSaved=false;self._rangeGroupSaved=false;self._bindingFieldSaved=false};CopyMoveColumnsInfo.prototype.saveWidth=function(index,width){var self=this;if(self._widths[index]!==keyword_null){if(width<0){self._widths[index]=keyword_null}else
{self._widths[index]=width}}else
{if(width>=0){self._widths[index]=width}}self._widthSaved=true};CopyMoveColumnsInfo.prototype.getWidth=function(index){if(this._widths[index]!==keyword_null){return this._widths[index]}return-1};CopyMoveColumnsInfo.prototype.saveVisible=function(index,visible){var self=this;if(self._visibles[index]!==keyword_null){if(visible){self._visibles[index]=keyword_null}else
{self._visibles[index]=visible}}else
{if(!visible){self._visibles[index]=visible}}self._visibleSaved=true};CopyMoveColumnsInfo.prototype.getVisible=function(index){if(this._visibles[index]!==keyword_null){return this._visibles[index]}return true};CopyMoveColumnsInfo.prototype.saveResizable=function(index,resizable){var self=this;if(self._resizables[index]!==keyword_null){if(resizable){self._resizables[index]=keyword_null}else
{self._resizables[index]=resizable}}else
{if(!resizable){self._resizables[index]=resizable}}self._resizableSaved=true};CopyMoveColumnsInfo.prototype.getResizable=function(index){if(this._resizables[index]!==keyword_null){return this._resizables[index]}return true};CopyMoveColumnsInfo.prototype.saveTag=function(index,tag){var self=this;if(self._tags[index]!==keyword_null){if(tag===keyword_undefined||tag===keyword_null){self._tags[index]=keyword_null}else
{self._tags[index]=tag}}else
{if(tag!==keyword_null){self._tags[index]=tag}}self._tagSaved=true};CopyMoveColumnsInfo.prototype.getTag=function(index){if(this._tags[index]!==keyword_null){return this._tags[index]}return keyword_null};CopyMoveColumnsInfo.prototype.saveViewportColumnStyle=function(index,style){var self=this;if(self._viewportColumnStyles[index]){if(!style){self._viewportColumnStyles[index]=keyword_null}else
{self._viewportColumnStyles[index]=style}}else
{if(style){self._viewportColumnStyles[index]=style}}self._viewportColumnStyleSaved=true};CopyMoveColumnsInfo.prototype.getViewportColumnStyle=function(index){if(this._viewportColumnStyles[index]){return this._viewportColumnStyles[index]}return keyword_null};CopyMoveColumnsInfo.prototype.saveHeaderColumnStyle=function(index,style){var self=this;if(self._headerColumnStyles[index]){if(!style){self._headerColumnStyles[index]=keyword_null}else
{self._headerColumnStyles[index]=style}}else
{if(style){self._headerColumnStyles[index]=style}}self._headerColumnStyleSaved=true};CopyMoveColumnsInfo.prototype.getHeaderColumnStyle=function(index){if(this._headerColumnStyles[index]){return this._headerColumnStyles[index]}return keyword_null};CopyMoveColumnsInfo.prototype.saveRangeGroup=function(index,level,collapsed){var self=this;if(self._levels[index]!==keyword_null){if(level<0){self._levels[index]=keyword_null}else
{self._levels[index]=level}}else
{if(level>=0){self._levels[index]=level}}if(self._collapsed[index]!==keyword_null){if(collapsed){self._collapsed[index]=collapsed}else
{self._collapsed[index]=keyword_null}}else
{if(collapsed){self._collapsed[index]=collapsed}}self._rangeGroupSaved=true};CopyMoveColumnsInfo.prototype.getRangeGroup=function(index,outData){var self=this;outData.level=-1;outData.collapsed=false;if(self._levels[index]!==keyword_null){outData.level=self._levels[index]}if(self._collapsed[index]!==keyword_null){outData.collapsed=self._collapsed[index]}};CopyMoveColumnsInfo.prototype.saveBindingField=function(index,fieldName){this._bindingFields[index]=fieldName;this._bindingFieldSaved=true};CopyMoveColumnsInfo.prototype.getBindingField=function(index,outData){outData.fieldName=keyword_null;if(this._bindingFields[index]!==keyword_null){outData.fieldName=this._bindingFields[index];return true}return false};CopyMoveColumnsInfo.prototype.isWidthSaved=function(){return this._widthSaved};CopyMoveColumnsInfo.prototype.isVisibleSaved=function(){return this._visibleSaved};CopyMoveColumnsInfo.prototype.isResizableSaved=function(){return this._resizableSaved};CopyMoveColumnsInfo.prototype.isTagSaved=function(){return this._tagSaved};CopyMoveColumnsInfo.prototype.isViewportColumnStyleSaved=function(){return this._viewportColumnStyleSaved};CopyMoveColumnsInfo.prototype.isHeaderColumnStyleSaved=function(){return this._headerColumnStyleSaved};CopyMoveColumnsInfo.prototype.isRangeGroupSaved=function(){return this._rangeGroupSaved};CopyMoveColumnsInfo.prototype.isBindingFieldSaved=function(){return this._bindingFieldSaved};return CopyMoveColumnsInfo})();UndoRedo.CopyMoveColumnsInfo=CopyMoveColumnsInfo;var CopyMoveRowsInfo=(function(){function CopyMoveRowsInfo(rowCount){this._rowCount=rowCount;this._init()}CopyMoveRowsInfo.prototype._init=function(){var self=this;self._heights={};self._visibles={};self._resizables={};self._tags={};self._viewportRowStyles={};self._headerRowStyles={};self._levels={};self._collapsed={};self._heightSaved=false;self._visibleSaved=false;self._resizableSaved=false;self._tagSaved=false;self._viewportRowStyleSaved=false;self._headerRowStyleSaved=false;self._rangeGroupSaved=false};CopyMoveRowsInfo.prototype.saveHeight=function(index,height){var self=this;if(self._heights[index]!==keyword_null){if(height<0){self._heights[index]=keyword_null}else
{self._heights[index]=height}}else
{if(height>=0){self._heights[index]=height}}self._heightSaved=true};CopyMoveRowsInfo.prototype.getHeight=function(index){if(this._heights[index]!==keyword_null){return this._heights[index]}return-1};CopyMoveRowsInfo.prototype.saveVisible=function(index,visible){var self=this;if(self._visibles[index]!==keyword_null){if(visible){self._visibles[index]=keyword_null}else
{self._visibles[index]=visible}}else
{if(!visible){self._visibles[index]=visible}}self._visibleSaved=true};CopyMoveRowsInfo.prototype.getVisible=function(index){if(this._visibles[index]!==keyword_null){return this._visibles[index]}return true};CopyMoveRowsInfo.prototype.saveResizable=function(index,resizable){var self=this;if(self._resizables[index]!==keyword_null){if(resizable){self._resizables[index]=keyword_null}else
{self._resizables[index]=resizable}}else
{if(!resizable){self._resizables[index]=resizable}}self._resizableSaved=true};CopyMoveRowsInfo.prototype.getResizable=function(index){if(this._resizables[index]!==keyword_null){return this._resizables[index]}return true};CopyMoveRowsInfo.prototype.saveTag=function(index,tag){var self=this;if(self._tags[index]!==keyword_null){if(tag===keyword_undefined||tag===keyword_null){self._tags[index]=keyword_null}else
{self._tags[index]=tag}}else
{if(tag!==keyword_null){self._tags[index]=tag}}self._tagSaved=true};CopyMoveRowsInfo.prototype.getTag=function(index){if(this._tags[index]!==keyword_null){return this._tags[index]}return keyword_null};CopyMoveRowsInfo.prototype.saveViewportRowStyle=function(index,style){var self=this;if(self._viewportRowStyles[index]){if(!style){self._viewportRowStyles[index]=keyword_null}else
{self._viewportRowStyles[index]=style}}else
{if(style){self._viewportRowStyles[index]=style}}self._viewportRowStyleSaved=true};CopyMoveRowsInfo.prototype.getViewportRowStyle=function(index){if(this._viewportRowStyles[index]){return this._viewportRowStyles[index]}return keyword_null};CopyMoveRowsInfo.prototype.saveHeaderRowStyle=function(index,style){var self=this;if(self._headerRowStyles[index]){if(!style){self._headerRowStyles[index]=keyword_null}else
{self._headerRowStyles[index]=style}}else
{if(style){self._headerRowStyles[index]=style}}self._headerRowStyleSaved=true};CopyMoveRowsInfo.prototype.getHeaderRowStyle=function(index){if(this._headerRowStyles[index]){return this._headerRowStyles[index]}return keyword_null};CopyMoveRowsInfo.prototype.saveRangeGroup=function(index,level,collapsed){var self=this;if(self._levels[index]!==keyword_null){if(level<0){self._levels[index]=keyword_null}else
{self._levels[index]=level}}else
{if(level>=0){self._levels[index]=level}}if(self._collapsed[index]!==keyword_null){if(collapsed){self._collapsed[index]=collapsed}else
{self._collapsed[index]=keyword_null}}else
{if(collapsed){self._collapsed[index]=collapsed}}self._rangeGroupSaved=true};CopyMoveRowsInfo.prototype.getRangeGroup=function(index,outData){var self=this;outData.level=-1;outData.collapsed=false;if(self._levels[index]!==keyword_null){outData.level=self._levels[index]}if(self._collapsed[index]!==keyword_null){outData.collapsed=self._collapsed[index]}};CopyMoveRowsInfo.prototype.isHeightSaved=function(){return this._heightSaved};CopyMoveRowsInfo.prototype.isVisibleSaved=function(){return this._visibleSaved};CopyMoveRowsInfo.prototype.isResizableSaved=function(){return this._resizableSaved};CopyMoveRowsInfo.prototype.isTagSaved=function(){return this._tagSaved};CopyMoveRowsInfo.prototype.isViewportRowStyleSaved=function(){return this._viewportRowStyleSaved};CopyMoveRowsInfo.prototype.isHeaderRowStyleSaved=function(){return this._headerRowStyleSaved};CopyMoveRowsInfo.prototype.isRangeGroupSaved=function(){return this._rangeGroupSaved};return CopyMoveRowsInfo})();UndoRedo.CopyMoveRowsInfo=CopyMoveRowsInfo;var CopyMoveHelper=(function(){function CopyMoveHelper(){}CopyMoveHelper.getStyleObject=function(sheet,row,column,area){return sheet.getStyleObject(row,column,area)};CopyMoveHelper.setStyleObject=function(sheet,row,column,area,style){sheet.setStyleObject(row,column,style,area)};CopyMoveHelper.getComment=function(sheet,row,col){return sheet.getComment(row,col)};CopyMoveHelper.setComment=function(sheet,row,col,comment){sheet.setComment(row,col,comment)};CopyMoveHelper.saveSheetInfo=function(sheet,sheetInfo,option){if((option&64)>0){sheetInfo.saveDefaultStyle(sheet.getDefaultStyle());sheetInfo.saveColumnHeaderDefaultStyle(sheet.getDefaultStyle(1));sheetInfo.saveRowHeaderDefaultStyle(sheet.getDefaultStyle(2))}sheetInfo.saveDefaultColumnWidth(sheet.defaults.colWidth);sheetInfo.saveDefaultRowHeight(sheet.defaults.rowHeight);sheetInfo.saveColumnHeaderDefaultRowHeight(sheet.defaults.rowHeight);sheetInfo.saveRowHeaderDefaultColumnWidth(sheet.defaults.rowHeaderColWidth)};CopyMoveHelper.saveColumnHeaderInfo=function(sheet,headerCellsInfo,columnsInfo,baseColumn,option){var rowCount=headerCellsInfo._rowCount;var columnCount=headerCellsInfo._columnCount;var r,c;for(r=0;r<rowCount;r++){for(c=0;c<columnCount;c++){if((option&1)>0){var value=sheet._getModel(1).getValue(r,baseColumn+c);headerCellsInfo.saveValue(r,c,value)}if((option&64)>0){headerCellsInfo.saveStyle(r,c,CopyMoveHelper.getStyleObject(sheet,r,baseColumn+c,1))}}}if((option&1)>0){for(c=0;c<columnCount;c++){if(sheet.isColumnBound(baseColumn+c)){columnsInfo.saveBindingField(c,sheet.getDataColumnName(baseColumn+c))}}}if((option&32)>0){var spanEnumerator=sheet._colHeaderSpanModel.getEnumerator(0,baseColumn,rowCount,columnCount);while(spanEnumerator.moveNext()){headerCellsInfo.saveSpan(spanEnumerator.current())}}columnCount=columnsInfo._columnCount;for(c=0;c<columnCount;c++){columnsInfo.saveWidth(c,sheet._getActualColumnWidth(baseColumn+c));columnsInfo.saveVisible(c,sheet.getColumnVisible(baseColumn+c));columnsInfo.saveResizable(c,sheet.getColumnResizable(baseColumn+c))}if((option&64)>0){for(c=0;c<columnCount;c++){columnsInfo.saveViewportColumnStyle(c,CopyMoveHelper.getStyleObject(sheet,-1,baseColumn+c,3));columnsInfo.saveHeaderColumnStyle(c,CopyMoveHelper.getStyleObject(sheet,-1,baseColumn+c,1))}}if((option&8)>0){var group=sheet.colRangeGroup;if(group&&!group._isEmpty()){for(c=0;c<columnCount;c++){columnsInfo.saveRangeGroup(c,group.getLevel(baseColumn+c),group.getCollapsed(baseColumn+c))}}}};CopyMoveHelper.saveRowHeaderInfo=function(sheet,headerCellsInfo,rowsInfo,baseRow,option){if((option&1023)<=0){return}var rowCount=headerCellsInfo._rowCount;var columnCount=headerCellsInfo._columnCount;var r,c;for(r=0;r<rowCount;r++){for(c=0;c<columnCount;c++){if((option&1)>0){var value=sheet._getModel(2).getValue(baseRow+r,c);headerCellsInfo.saveValue(r,c,value)}if((option&64)>0){headerCellsInfo.saveStyle(r,c,CopyMoveHelper.getStyleObject(sheet,baseRow+r,c,2))}}}if((option&32)>0){var spanEnumerator=sheet._rowHeaderSpanModel.getEnumerator(baseRow,0,rowCount,columnCount);while(spanEnumerator.moveNext()){headerCellsInfo.saveSpan(spanEnumerator.current())}}rowCount=rowsInfo._rowCount;for(r=0;r<rowCount;r++){rowsInfo.saveHeight(r,sheet._getActualRowHeight(baseRow+r));rowsInfo.saveVisible(r,sheet.getRowVisible(baseRow+r));rowsInfo.saveResizable(r,sheet.getRowResizable(baseRow+r))}if((option&64)>0){for(r=0;r<rowCount;r++){rowsInfo.saveViewportRowStyle(r,CopyMoveHelper.getStyleObject(sheet,baseRow+r,-1,3));rowsInfo.saveHeaderRowStyle(r,CopyMoveHelper.getStyleObject(sheet,baseRow+r,-1,2))}}if((option&8)>0){var group=sheet.rowRangeGroup;if(group&&!group._isEmpty()){for(r=0;r<rowCount;r++){rowsInfo.saveRangeGroup(r,group.getLevel(baseRow+r),group.getCollapsed(baseRow+r))}}}};CopyMoveHelper.saveViewportInfo=function(sheet,cellsInfo,baseRow,baseColumn,option){if((option&1023)<=0){return}var rowCount=cellsInfo._rowCount;var columnCount=cellsInfo._columnCount;for(var r=0;r<rowCount;r++){for(var c=0;c<columnCount;c++){var formulaInfo;if((option&2)>0){formulaInfo=sheet.getFormulaInformation(baseRow+r,baseColumn+c);if(formulaInfo.hasFormula){if(formulaInfo.isArrayFormula){if(formulaInfo.baseRange.row===baseRow+r&&formulaInfo.baseRange.col===baseColumn+c){cellsInfo.saveArrayFormula(formulaInfo)}}else
{cellsInfo.saveFormula(r,c,formulaInfo.formula)}}}if((option&1)>0&&(!formulaInfo||!formulaInfo.hasFormula)){cellsInfo.saveValue(r,c,sheet.getValue(baseRow+r,baseColumn+c,3))}if((option&16)>0){var sparkline=sheet.getSparkline(baseRow+r,baseColumn+c);var dataRange=keyword_null;var dataAxisRange=keyword_null;if(sparkline){dataRange=sparkline.data();dataAxisRange=sparkline.dateAxisData()}if(sparkline&&dataRange){cellsInfo.saveSparkline(r,c,sparkline.clone())}else
{cellsInfo.saveSparkline(r,c,keyword_null)}}if((option&64)>0){cellsInfo.saveStyle(r,c,CopyMoveHelper.getStyleObject(sheet,baseRow+r,baseColumn+c,3))}cellsInfo.saveComment(r,c,(CopyMoveHelper.getComment(sheet,baseRow+r,baseColumn+c)));if((option&256)>0){cellsInfo.saveBindingPath(r,c,sheet.getBindingPath(baseRow+r,baseColumn+c,3))}}}if((option&32)>0){var spanEnumerator=sheet._spanModel.getEnumerator(baseRow,baseColumn,rowCount,columnCount);while(spanEnumerator.moveNext()){cellsInfo.saveSpan(spanEnumerator.current())}}};CopyMoveHelper.undoCellsInfo=function(sheet,cellsInfo,baseRow,baseColumn,area){var rowCount=cellsInfo._rowCount;var columnCount=cellsInfo._columnCount;var key,cs,cr,formula,count,i;sheet.suspendCalcService();sheet.suspendEvent();try
{for(var r=0;r<rowCount;r++){for(var c=0;c<columnCount;c++){if(cellsInfo.isBindingPathSaved()){sheet.setBindingPath(baseRow+r,baseColumn+c,keyword_null,area)}if(cellsInfo.isFormulaSaved()&&area===3){sheet.setFormula(baseRow+r,baseColumn+c,keyword_null)}if(cellsInfo.isSparklineSaved()&&area===3){sheet.removeSparkline(baseRow+r,baseColumn+c)}if(cellsInfo.isValueSaved()){sheet.setValue(baseRow+r,baseColumn+c,keyword_null,area)}if(cellsInfo.isStyleSaved()){CopyMoveHelper.setStyleObject(sheet,baseRow+r,baseColumn+c,area,keyword_null)}if(cellsInfo.isCommentSaved()){CopyMoveHelper.setComment(sheet,baseRow+r,baseColumn+c,keyword_null)}}}if(cellsInfo.isBindingPathSaved()){var paths=cellsInfo.getBindingPaths();for(key=0;key<paths.length;key++){var p=paths[key];sheet.setBindingPath(baseRow+p.row,baseColumn+p.column,p.value,area)}}if(cellsInfo.isFormulaSaved()&&area===3){var formulas=cellsInfo.getFormulas();for(key=0;key<formulas.length;key++){formula=formulas[key];sheet.setFormula(baseRow+formula.row,baseColumn+formula.column,formula.value)}}if(cellsInfo.isSparklineSaved()&&area===3){var sparklines=cellsInfo.getSparklines();for(var s=0;s<sparklines.length;s++){var item=sparklines[s];var sparkline=item.value;if(!sparkline){sheet.removeSparkline(baseRow+item.row,baseColumn+item.column)}else if(!sparkline.dateAxisData()){sheet.setSparkline(baseRow+item.row,baseColumn+item.column,sparkline.data(),sparkline.dataOrientation(),sparkline.sparklineType(),sparkline.setting())}else
{sheet.setSparkline(baseRow+item.row,baseColumn+item.column,sparkline.data(),sparkline.dataOrientation(),sparkline.sparklineType(),sparkline.setting(),sparkline.dateAxisData(),sparkline.dateAxisOrientation())}}}if(cellsInfo.isValueSaved()){var values=cellsInfo.getValues();for(key=0;key<values.length;key++){var v=values[key];sheet.setValue(baseRow+v.row,baseColumn+v.column,v.value,area)}}if(cellsInfo.isStyleSaved()){var styles=cellsInfo.getStyles();for(key=0;key<styles.length;key++){var style=styles[key];CopyMoveHelper.setStyleObject(sheet,baseRow+style.row,baseColumn+style.column,area,style.value)}}if(cellsInfo.isCommentSaved()){var comments=cellsInfo.getComments();for(key=0;key<comments.length;key++){var cellData=comments[key];var comment=cellData.value;CopyMoveHelper.setComment(sheet,baseRow+cellData.row,baseColumn+cellData.column,comment)}}if(cellsInfo.isArrayFormulaSaved()&&area===3){var arrayFormulas=sheet._getsArrayFormulas(baseRow,baseColumn,rowCount,columnCount);if(arrayFormulas&&arrayFormulas.length>0){count=arrayFormulas.getLength(0);for(i=0;i<count;i++){cr=arrayFormulas[i][0];sheet.setArrayFormula(cr.row,cr.col,cr.rowCount,cr.colCount,keyword_null)}}arrayFormulas=cellsInfo.getArrayFormula();if(arrayFormulas&&arrayFormulas.length>0){count=arrayFormulas.length;for(i=0;i<count;i++){var formulaInfo=arrayFormulas[i];sheet.setArrayFormula(formulaInfo.baseRange.row,formulaInfo.baseRange.col,formulaInfo.baseRange.rowCount,formulaInfo.baseRange.colCount,formulaInfo.formula)}}}}finally
{sheet.resumeCalcService();sheet.resumeEvent()}var spanModel=keyword_null;if(area===3){spanModel=sheet._spanModel}else if(area===1){spanModel=sheet._colHeaderSpanModel}else if(area===2){spanModel=sheet._rowHeaderSpanModel}if(spanModel&&spanModel.length>0){var removedSpans=[];var spans=spanModel.getEnumerator(baseRow,baseColumn,rowCount,columnCount);while(spans.moveNext()){cs=spans.current();if(cs){removedSpans.push(cs)}}for(key=0;key<removedSpans.length;key++){cs=removedSpans[key];spanModel.remove(cs)}}if(cellsInfo.isSpanSaved()){if(spanModel){for(key=0;key<cellsInfo._spans.length;key++){cs=cellsInfo._spans[key];spanModel.push(cs)}}}};CopyMoveHelper.undoColumnsInfo=function(sheet,columnsInfo,baseColumn){var columnCount=columnsInfo._columnCount;var c;if(columnsInfo.isBindingFieldSaved()){var outdata={fieldName:keyword_null};for(c=0;c<columnCount;c++){if(columnsInfo.getBindingField(c,outdata)){sheet.bindColumn(baseColumn+c,outdata.fieldName)}}}if(columnsInfo.isWidthSaved()){for(c=0;c<columnCount;c++){sheet.setColumnWidth(baseColumn+c,columnsInfo.getWidth(c),3)}}if(columnsInfo.isVisibleSaved()){for(c=0;c<columnCount;c++){sheet.setColumnVisible(baseColumn+c,columnsInfo.getVisible(c),3)}}if(columnsInfo.isResizableSaved()){for(c=0;c<columnCount;c++){sheet.setColumnResizable(baseColumn+c,columnsInfo.getResizable(c),3)}}if(columnsInfo.isViewportColumnStyleSaved()){for(c=0;c<columnCount;c++){CopyMoveHelper.setStyleObject(sheet,-1,baseColumn+c,3,columnsInfo.getViewportColumnStyle(c))}}if(columnsInfo.isHeaderColumnStyleSaved()){for(c=0;c<columnCount;c++){CopyMoveHelper.setStyleObject(sheet,-1,baseColumn+c,1,columnsInfo.getHeaderColumnStyle(c))}}if(columnsInfo.isRangeGroupSaved()){var group=sheet.colRangeGroup;if(group){var outData={level:keyword_null,collapsed:keyword_null};for(c=0;c<columnCount;c++){columnsInfo.getRangeGroup(c,outData);group._setLevel(baseColumn+c,outData.level);group.setCollapsed(baseColumn+c,outData.collapsed)}}}};CopyMoveHelper.undoRowsInfo=function(sheet,rowsInfo,baseRow){var rowCount=rowsInfo._rowCount;var r;if(rowsInfo.isHeightSaved()){for(r=0;r<rowCount;r++){sheet.setRowHeight(baseRow+r,rowsInfo.getHeight(r),3)}}if(rowsInfo.isVisibleSaved()){for(r=0;r<rowCount;r++){sheet.setRowVisible(baseRow+r,rowsInfo.getVisible(r),3)}}if(rowsInfo.isResizableSaved()){for(r=0;r<rowCount;r++){sheet.setRowResizable(baseRow+r,rowsInfo.getResizable(r),3)}}if(rowsInfo.isViewportRowStyleSaved()){for(r=0;r<rowCount;r++){CopyMoveHelper.setStyleObject(sheet,baseRow+r,-1,3,rowsInfo.getViewportRowStyle(r))}}if(rowsInfo.isHeaderRowStyleSaved()){for(r=0;r<rowCount;r++){CopyMoveHelper.setStyleObject(sheet,baseRow+r,-1,2,rowsInfo.getHeaderRowStyle(r))}}if(rowsInfo.isRangeGroupSaved()){var group=sheet.rowRangeGroup;if(group){var outData={level:keyword_null,collapsed:keyword_null};for(r=0;r<rowCount;r++){rowsInfo.getRangeGroup(r,outData);group._setLevel(baseRow+r,outData.level);group.setCollapsed(baseRow+r,outData.collapsed)}}}};CopyMoveHelper.undoSheetInfo=function(sheet,sheetInfo){if(sheetInfo.isDefaultStyleSaved()){sheet.setDefaultStyle(sheetInfo.getDefaultStyle())}if(sheetInfo.isDefaultColumnWidthSaved()){sheet.defaults.colWidth=sheetInfo.getDefaultColumnWidth()}if(sheetInfo.isDefaultRowHeightSaved()){sheet.defaults.rowHeight=sheetInfo.getDefaultRowHeight()}if(sheetInfo.isColumnHeaderDefaultStyleSaved()){sheet.setDefaultStyle(sheetInfo.getColumnHeaderDefaultStyle(),1)}if(sheetInfo.isColumnHeaderDefaultRowHeightSaved()){sheet.defaults.rowHeight=sheetInfo.getColumnHeaderDefaultRowHeight()}if(sheetInfo.isRowHeaderDefaultStyleSaved()){sheet.setDefaultStyle(sheetInfo.getRowHeaderDefaultStyle(),2)}if(sheetInfo.isRowHeaderDefaultColumnWidthSaved()){sheet.defaults.rowHeaderColWidth=sheetInfo.getRowHeaderDefaultColumnWidth()}};CopyMoveHelper.getValues=function(sheet,row,column,rowCount,columnCount){if(row<0){row=0;rowCount=sheet.getRowCount()}if(column<0){column=0;columnCount=sheet.getColumnCount()}var values=[];for(var r=0;r<rowCount;r++){for(var c=0;c<columnCount;c++){var value=sheet.getValue(row+r,column+c);if(value!==keyword_undefined&&value!==keyword_null){values.push(new CellData(r,c,value))}}}return values};CopyMoveHelper.raiseRangeDataChanged=function(sheetView,row,column,rowCount,columnCount,oldValues){if(!sheetView){return}if(row<0){row=0;rowCount=sheetView.getRowCount()}if(column<0){column=0;columnCount=sheetView.getColumnCount()}sheetView._raiseRangeDataChanged(row,column,rowCount,columnCount)};CopyMoveHelper.convertToKey=function(row,column){var key=0;key=row;key<<=32;key|=column;return key};CopyMoveHelper.remove=function(cellDatas,row,column){var ret=keyword_null;var index=-1;var count=cellDatas.length;if(count>0){for(var i=0;i<count;i++){if(cellDatas[i].row===row&&cellDatas[i].column===column){index=i;break}}}if(index!==-1){ret=cellDatas[index];cellDatas.splice(index,1)}return ret};return CopyMoveHelper})();UndoRedo.CopyMoveHelper=CopyMoveHelper;var ActionBase=(function(){function ActionBase(){this.canExecuteChanged=keyword_null}ActionBase.prototype.execute=function(arg){};ActionBase.prototype.canExecute=function(arg){return true};ActionBase.prototype.canUndo=function(){return true};ActionBase.prototype.saveState=function(){};ActionBase.prototype.undo=function(arg){return true};ActionBase.prototype._raiseCanExecuteChanged=function(){var self=this;if(self.canExecuteChanged&&typeof(self.canExecuteChanged)==='function'){self.canExecuteChanged(self)}};ActionBase.prototype._suspendInvalidate=function(sender){if(sender&&sender._suspendInvalidate){sender._suspendInvalidate()}};ActionBase.prototype._resumeInvalidate=function(sender){if(sender&&sender._resumeInvalidate){return sender._resumeInvalidate()}return false};return ActionBase})();UndoRedo.ActionBase=ActionBase;var ColumnResizeUndoAction=(function(_super){__extends(ColumnResizeUndoAction,_super);function ColumnResizeUndoAction(sheet,columns,size,rowHeader){_super.call(this);var self=this;self._sheet=sheet;self._columns=columns;self._size=size;self._rowHeader=rowHeader;self._oldSizes=[];self._oldVisibles=[]}ColumnResizeUndoAction.prototype.canExecute=function(arg){return true};ColumnResizeUndoAction.prototype.execute=function(arg){var self=this;var sheet=self._sheet,columns=self._columns,columnsLength=(columns&&columns.length);if(sheet&&columnsLength>0){self._suspendInvalidate(arg);var resizedColumns=self._getColumnsReiszed(columns);var args={sheet:sheet,sheetName:sheet._name,colList:resizedColumns,header:self._rowHeader,cancel:false};sheet._trigger(spread.Events.ColumnWidthChanging,args);if(args&&args.cancel===true){self._canUndo=false;self._resumeInvalidate(arg);return}else
{self._canUndo=true}self.saveState();var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);sheet.suspendEvent();try
{var rowHeaderArea=2,viewportArea=3,isRowHeader=self._rowHeader,columnCount=(isRowHeader?sheet.getColumnCount(rowHeaderArea):sheet.getColumnCount(viewportArea));var leftColumn=sheet._scrollLeftCol,newLeftColumn=leftColumn;for(var col=leftColumn-1;col>=sheet.frozenColCount;col--){if(sheet.getColumnVisible(col)&&sheet._getZoomColumnWidth(col)>0){break}if(sheet.getColumnResizable(col)){newLeftColumn=col}}var minCol=Number.MAX_VALUE,newSize=self._size;for(var c=0;c<columnsLength;c++){var cw=columns[c],firstCol=cw.firstCol,lastCol=cw.lastCol;for(var c2=firstCol;c2<=lastCol;c2++){if(0<=c2&&c2<columnCount){if(isRowHeader&&sheet.getColumnResizable(c2,rowHeaderArea)&&newSize!==sheet._getActualColumnWidth(c2,rowHeaderArea)){sheet.setColumnWidth(c2,newSize,rowHeaderArea)}else if(sheet.getColumnResizable(c2,viewportArea)&&newSize!==sheet._getActualColumnWidth(c2,viewportArea)){sheet.setColumnWidth(c2,newSize,viewportArea)}minCol=Math_min(c2,minCol)}}}if(minCol!==Number.MAX_VALUE&&minCol<=leftColumn&&newLeftColumn!==leftColumn){sheet._scrollLeftCol=newLeftColumn}}finally
{sheet.resumeEvent();sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}sheet._trigger(spread.Events.ColumnWidthChanged,{sheet:sheet,sheetName:sheet._name,colList:resizedColumns,header:self._rowHeader});sheet._syncHScollbarPosition()}};ColumnResizeUndoAction.prototype.saveState=function(){var self=this;var sizes=[],visibles=[],sheet=self._sheet,columns=self._columns,columnsLength=(columns&&columns.length);if(sheet&&columnsLength>0){var isRowHeader=self._rowHeader,sheetArea=(isRowHeader?2:3),columnCount=sheet.getColumnCount(sheetArea),dw=(isRowHeader?sheet.defaults.rowHeaderColWidth:sheet.defaults.colWidth),infos=sheet._getColumnInfos(sheetArea),info;for(var c=0;c<columnsLength;c++){var cw=columns[c],firstCol=cw.firstCol,lastCol=cw.lastCol,index,v,w;sizes[c]=[];visibles[c]=[];for(var c2=firstCol;c2<=lastCol;c2++){index=c2-firstCol;if(0<=c2&&c2<columnCount){info=infos[c2];if(!info){continue}v=info.visible;if(typeof(v)==='undefined'||v===keyword_null){v=true}w=info.size;if(isNaN(w)||w===keyword_null){w=dw}else
{w=Math_floor(w)}sizes[c][index]=w;visibles[c][index]=v}else
{sizes[c][index]=-1;visibles[c][index]=false}}}}self._oldSizes=sizes;self._oldVisibles=visibles};ColumnResizeUndoAction.prototype.undo=function(arg){var self=this;var ret=false;var sheet=self._sheet,columns=self._columns,columnsLength=(columns&&columns.length);if(sheet&&columnsLength>0){self._suspendInvalidate(arg);var resizedColumns=self._getColumnsReiszed(columns);var args={sheet:sheet,sheetName:sheet._name,colList:resizedColumns,header:self._rowHeader,cancel:false};sheet._trigger(spread.Events.ColumnWidthChanging,args);if(args&&args.cancel===true){self._resumeInvalidate(arg);return false}var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);sheet.suspendEvent();try
{var rowHeaderArea=2,viewportArea=3,isRowHeader=self._rowHeader,columnCount=(isRowHeader?sheet.getColumnCount(2):sheet.getColumnCount(viewportArea));var oldsize,oldVisible;for(var c=0;c<columnsLength;c++){var cw=columns[c],firstCol=cw.firstCol,lastCol=cw.lastCol;for(var c2=firstCol;c2<=lastCol;c2++){oldsize=self._oldSizes[c][c2-cw.firstCol];oldVisible=self._oldVisibles[c][c2-cw.firstCol];if(0<=c2&&c2<columnCount&&oldsize!==-1){if(isRowHeader&&sheet.getColumnResizable(c2,rowHeaderArea)){sheet.setColumnWidth(c2,oldsize,rowHeaderArea);ret=true}else if(sheet.getColumnResizable(c2,viewportArea)){sheet.setColumnWidth(c2,oldsize,viewportArea);ret=true}if(isRowHeader&&sheet.getColumnVisible(c2,rowHeaderArea)!==oldVisible){sheet.setColumnVisible(c2,oldVisible,rowHeaderArea);ret=true}else if(sheet.getColumnVisible(c2,viewportArea)!==oldVisible){sheet.setColumnVisible(c2,oldVisible,viewportArea);ret=true}}}}}finally
{sheet.resumeEvent();sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}sheet._trigger(spread.Events.ColumnWidthChanged,{sheet:sheet,sheetName:sheet._name,colList:resizedColumns,header:self._rowHeader})}return ret};ColumnResizeUndoAction.prototype._getColumnsReiszed=function(columnWidthChangeExtents){var columns=[];for(var i=0,len=columnWidthChangeExtents.length;i<len;i++){var item=columnWidthChangeExtents[i],firstCol=item.firstCol,lastCol=item.lastCol;for(var col=firstCol;col<=lastCol;col++){columns.push(col)}}return columns};ColumnResizeUndoAction.prototype.canUndo=function(){return this._canUndo};return ColumnResizeUndoAction})(ActionBase);UndoRedo.ColumnResizeUndoAction=ColumnResizeUndoAction;var RowResizeUndoAction=(function(_super){__extends(RowResizeUndoAction,_super);function RowResizeUndoAction(sheet,rows,size,columnHeader){_super.call(this);var self=this;self._sheet=sheet;self._rows=rows;self._size=size;self._columnHeader=columnHeader;self._oldSizes=[];self._oldVisibles=[]}RowResizeUndoAction.prototype.canExecute=function(arg){return true};RowResizeUndoAction.prototype.execute=function(arg){var self=this;var sheet=self._sheet;var rows=self._rows,rowsLength=(rows&&rows.length);if(sheet&&rowsLength>0){self._suspendInvalidate(arg);var resizedRows=self._getRowsReiszed(rows);var args={sheet:sheet,sheetName:sheet._name,rowList:resizedRows,header:self._columnHeader,cancel:false};sheet._trigger(spread.Events.RowHeightChanging,args);if(args&&args.cancel===true){self._canUndo=false;self._resumeInvalidate(arg);return}else
{self._canUndo=true}self.saveState();var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);sheet.suspendEvent();try
{var viewportArea=3,colHeaderArea=1,isColumnHeader=self._columnHeader,rowCount=(isColumnHeader?sheet.getRowCount(colHeaderArea):sheet.getRowCount(viewportArea));var topRow=sheet._scrollTopRow,newTopRow=topRow;for(var row=topRow-1;row>=sheet.frozenRowCount;row--){if(sheet.getRowVisible(row)&&sheet._getZoomRowHeight(row)>0){break}if(sheet.getRowResizable(row)){newTopRow=row}}var minRow=Number.MAX_VALUE,newSize=self._size;for(var r=0;r<rowsLength;r++){var rh=rows[r],firstRow=rh.firstRow,lastRow=rh.lastRow;for(var r2=firstRow;r2<=lastRow;r2++){if(0<=r2&&r2<rowCount){if(isColumnHeader&&sheet.getRowResizable(r2,colHeaderArea)&&newSize!==sheet._getActualRowHeight(r2,colHeaderArea)){sheet.setRowHeight(r2,newSize,colHeaderArea)}else if(sheet.getRowResizable(r2,viewportArea)&&newSize!==sheet._getActualRowHeight(r2,viewportArea)){sheet.setRowHeight(r2,newSize,viewportArea);if(sheet.rowFilter()){sheet.rowFilter()._addRowFilteredIn(r2)}}minRow=Math_min(r2,minRow)}}}if(minRow!==Number.MAX_VALUE&&minRow<=topRow&&newTopRow!==topRow){sheet._scrollTopRow=newTopRow}}finally
{sheet.resumeEvent();sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}sheet._trigger(spread.Events.RowHeightChanged,{sheet:sheet,sheetName:sheet._name,rowList:resizedRows,header:self._columnHeader});sheet._syncVScrollbarPosition()}};RowResizeUndoAction.prototype.saveState=function(){var self=this;var sizes=[],visibles=[],sheet=self._sheet,rows=self._rows,rowsLength=(rows&&rows.length);if(sheet&&rowsLength>0){var isColumnHeader=self._columnHeader,sheetArea=(isColumnHeader?1:3),rowCount=sheet.getRowCount(sheetArea),dh=(isColumnHeader?sheet.defaults.colHeaderRowHeight:sheet.defaults.rowHeight),infos=sheet._getRowInfos(sheetArea),info;for(var r=0;r<rowsLength;r++){var rh=rows[r],firstRow=rh.firstRow,lastRow=rh.lastRow,index,v,h;sizes[r]=[];visibles[r]=[];for(var r2=firstRow;r2<=lastRow;r2++){index=r2-firstRow;if(0<=r2&&r2<rowCount){info=infos[r2];if(!info){continue}v=info.visible;if(typeof(v)==='undefined'||v===keyword_null){v=true}h=info.size;if(isNaN(h)||h===keyword_null){h=dh}else
{h=Math_floor(h)}sizes[r][index]=h;visibles[r][index]=v}else
{sizes[r][index]=-1;visibles[r][index]=false}}}}self._oldVisibles=visibles;self._oldSizes=sizes};RowResizeUndoAction.prototype.undo=function(arg){var self=this;var ret=false;var sheet=self._sheet;var rows=self._rows,rowsLength=(rows&&rows.length);if(sheet&&rowsLength>0){self._suspendInvalidate(arg);var resizedRows=self._getRowsReiszed(rows);var args={sheet:sheet,sheetName:sheet._name,rowList:resizedRows,header:self._columnHeader,cancel:false};sheet._trigger(spread.Events.RowHeightChanging,args);if(args&&args.cancel===true){self._resumeInvalidate(arg);return false}var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);sheet.suspendEvent();try
{var viewportArea=3,colHeaderArea=1,isColumnHeader=self._columnHeader;var rowCount=(isColumnHeader?sheet.getRowCount(colHeaderArea):sheet.getRowCount(viewportArea));var oldSizes=self._oldSizes,oldVisibles=self._oldVisibles,oldsize,oldVisible;for(var r=0;r<rowsLength;r++){var rh=rows[r],firstRow=rh.firstRow,lastRow=rh.lastRow;for(var r2=firstRow;r2<=lastRow;r2++){oldsize=oldSizes[r][r2-firstRow];oldVisible=oldVisibles[r][r2-firstRow];if(0<=r2&&r2<rowCount&&oldsize!==-1){if(isColumnHeader&&sheet.getRowResizable(r2,colHeaderArea)){sheet.setRowHeight(r2,oldsize,colHeaderArea);ret=true}else if(sheet.getRowResizable(r2,viewportArea)){sheet.setRowHeight(r2,oldsize,viewportArea);ret=true}if(isColumnHeader&&sheet.getRowVisible(r2,colHeaderArea)!==oldVisible){sheet.setRowVisible(r2,oldVisible,colHeaderArea);ret=true}else if(sheet.getRowVisible(r2,viewportArea)!==oldVisible){sheet.setRowVisible(r2,oldVisible,viewportArea);ret=true}}}}}finally
{sheet.resumeEvent();sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}sheet._trigger(spread.Events.RowHeightChanged,{sheet:sheet,sheetName:sheet._name,rowList:resizedRows,header:self._columnHeader})}return ret};RowResizeUndoAction.prototype._getRowsReiszed=function(rowHeightChangeExtents){var rows=[];for(var i=0,len=rowHeightChangeExtents.length;i<len;i++){var item=rowHeightChangeExtents[i],firstRow=item.firstRow,lastRow=item.lastRow;for(var row=firstRow;row<=lastRow;row++){rows.push(row)}}return rows};RowResizeUndoAction.prototype.canUndo=function(){return this._canUndo};return RowResizeUndoAction})(ActionBase);UndoRedo.RowResizeUndoAction=RowResizeUndoAction;var ColumnAutoFitUndoAction=(function(_super){__extends(ColumnAutoFitUndoAction,_super);function ColumnAutoFitUndoAction(sheet,columns,rowHeader,autoFitType){_super.call(this);var self=this;self._sheet=sheet;self._columns=columns;self._sheetArea=rowHeader?2:3;if(arguments.length===3){autoFitType=sheet._getAutoFitType()}self._autofitType=autoFitType;self._oldSizes=[];self._oldVisibles=[]}ColumnAutoFitUndoAction.prototype.canExecute=function(arg){return this._sheet&&this._columns&&this._columns.length>0};ColumnAutoFitUndoAction.prototype.execute=function(arg){var self=this;if(self.canExecute(arg)){var sheet=self._sheet;var sheetArea=self._sheetArea;self._suspendInvalidate(arg);var resizedColumns=self._getColumnsReiszed(self._columns);var isHeader=sheetArea===2;var args={sheet:sheet,sheetName:sheet._name,colList:resizedColumns,header:isHeader,cancel:false};sheet._trigger(spread.Events.ColumnWidthChanging,args);if(args&&args.cancel===true){self._canUndo=false;self._resumeInvalidate(arg);return}else
{self._canUndo=true}self.saveState();var columnCount=sheet.getColumnCount(sheetArea);var startCol=columnCount-1,endCol=0,cTemp;for(var c=0,len=self._columns.length;c<len;c++){cTemp=self._columns[c].col;startCol=startCol>cTemp?cTemp:startCol;endCol=endCol<cTemp?cTemp:endCol}spread._CatchMgr.startCatch(sheet,0,startCol,sheet.getRowCount()-1,endCol);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);sheet.suspendEvent();try
{var fitValue;for(var c=0,len=self._columns.length;c<len;c++){var ce=self._columns[c];if(0<=ce.col&&ce.col<columnCount){if(sheet.getColumnResizable(ce.col,sheetArea)){fitValue=self._getColumnAutoFitValue(ce.col);if(fitValue!==sheet.getColumnWidth(ce.col,sheetArea)){sheet.setColumnWidth(ce.col,fitValue,sheetArea)}}}}}finally
{spread._CatchMgr.clearCatch();sheet.resumeEvent();sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}sheet._trigger(spread.Events.ColumnWidthChanged,{sheet:sheet,sheetName:sheet._name,colList:resizedColumns,header:isHeader})}};ColumnAutoFitUndoAction.prototype.saveState=function(){var self=this;var sizes=keyword_null;var visibles=keyword_null;var sheet=self._sheet;var sheetArea=self._sheetArea;if(sheet&&self._columns&&self._columns.length>0){var columnCount=sheet.getColumnCount(sheetArea);sizes=[self._columns.length];visibles=[self._columns.length];for(var c=0,len=self._columns.length;c<len;c++){var ce=self._columns[c];if(0<=ce.col&&ce.col<columnCount){sizes[c]=sheet.getColumnWidth(ce.col,sheetArea);visibles[c]=sheet.getColumnVisible(ce.col,sheetArea)}else
{sizes[c]=-1;visibles[c]=false}}}self._oldSizes=sizes;self._oldVisibles=visibles};ColumnAutoFitUndoAction.prototype.undo=function(arg){var self=this;var ret=false;var sheetArea=self._sheetArea;if(self._sheet&&self._columns&&self._columns.length>0){var isHeader=sheetArea===2;var sheet=self._sheet;self._suspendInvalidate(arg);var resizedColumns=self._getColumnsReiszed(self._columns);var args={sheet:sheet,sheetName:sheet._name,colList:resizedColumns,header:isHeader,cancel:false};sheet._trigger(spread.Events.ColumnWidthChanging,args);if(args&&args.cancel===true){self._resumeInvalidate(arg);return false}var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);sheet.suspendEvent();try
{var columnCount=sheet.getColumnCount(sheetArea);var oldSize,oldVisible;for(var c=0;c<self._columns.length;c++){var ce=self._columns[c];oldSize=self._oldSizes[c];oldVisible=self._oldVisibles[c];if(0<=c&&c<columnCount&&oldSize!==-1){if(sheet.getColumnResizable(ce.col,sheetArea)){sheet.setColumnWidth(ce.col,oldSize,sheetArea);sheet.setColumnVisible(ce.col,oldVisible,sheetArea);ret=true}}}}finally
{sheet.resumeEvent();sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}sheet._trigger(spread.Events.ColumnWidthChanged,{sheet:sheet,sheetName:sheet._name,colList:resizedColumns,header:isHeader})}return ret};ColumnAutoFitUndoAction.prototype._getColumnsReiszed=function(columnWidthChangeExtents){var columns=[];for(var i=0;i<columnWidthChangeExtents.length;i++){var item=columnWidthChangeExtents[i];columns.push(item.col)}return columns};ColumnAutoFitUndoAction.prototype._nextAutoFitRow=function(row,col){var sheet=this._sheet;var sheetArea=this._sheetArea;var nextNonNullRow=-1;var rowCount=sheet.getRowCount(sheetArea);for(var i=row+1;i<rowCount;i++){var text=sheet.getText(i,col,sheetArea);if(text){nextNonNullRow=i;break}var style=sheet.getActualStyle(i,col,sheetArea);if(style&&style.cellType){nextNonNullRow=i;break}}return nextNonNullRow};ColumnAutoFitUndoAction.prototype._getColumnAutoFitValue=function(col){var self=this;var sheet=self._sheet,render=sheet._render;var width=0;var sheetArea=self._sheetArea;var areas=[sheetArea];if(self._autofitType==1){if(sheetArea==3){areas.push(1)}else if(sheetArea==2){areas.push(0)}}for(var i=0;i<areas.length;i++){var row=0;var sheetArea=areas[i];var rowCount=sheet.getRowCount(sheetArea);while(row>=0&&row<rowCount){var span=sheet._getSpanModel(sheetArea).find(row,col);if(span&&(span.col<col||span.colCount>1||span.row<row)){row=span.row+span.rowCount;continue}var style=sheet.getActualStyle(row,col,sheetArea);var valueWidth=0;var cellType=style.cellType||sheet.getDefaultCellType(sheetArea);if(cellType){var font=style.font||render._getDefaultFont(sheetArea);style.font=render._getZoomFont(font);var isFilterHeader=!!(sheet.rowFilter()&&sheet.rowFilter().isFilterHeader(row,col,sheetArea));if(!isFilterHeader&&sheetArea===3){var table=sheet.findTable(row,col);if(table&&table.showHeader()&&table.headerIndex()===row&&table.rowFilter().showFilterButton){isFilterHeader=true}}var fmt=style.formatter?style.formatter:style._autoFormatter,context={sheet:self,row:row,col:col,sheetArea:sheetArea};var value=sheet.getValue(row,col,sheetArea);var text=cellType.format(value,fmt,context);valueWidth=cellType._getAutoFitWidth(sheet,value,text,style,isFilterHeader,context)}if(valueWidth>width){width=valueWidth}row++}}if(width===0){width=sheet.defaults.colWidth}else
{width+=Math_ceil(3/sheet._zoomFactor)}return width};ColumnAutoFitUndoAction.prototype.canUndo=function(){return this._canUndo};return ColumnAutoFitUndoAction})(ActionBase);UndoRedo.ColumnAutoFitUndoAction=ColumnAutoFitUndoAction;var RowAutoFitUndoAction=(function(_super){__extends(RowAutoFitUndoAction,_super);function RowAutoFitUndoAction(sheet,rows,columnHeader,autoFitType){_super.call(this);var self=this;self._sheet=sheet;self._rows=rows;self._sheetArea=columnHeader?1:3;if(arguments.length===3){autoFitType=sheet._getAutoFitType()}self._autofitType=autoFitType;self._oldSizes=[];self._oldVisibles=[]}RowAutoFitUndoAction.prototype.canExecute=function(arg){return this._sheet&&this._rows&&this._rows.length>0};RowAutoFitUndoAction.prototype.execute=function(arg){var self=this;if(self.canExecute(arg)){var sheet=self._sheet;self._suspendInvalidate(arg);var resizedRows=self._getRowsResized(self._rows);var sheetArea=self._sheetArea;var inHeader=self._sheetArea===1;var args={sheet:sheet,sheetName:sheet._name,rowList:resizedRows,header:inHeader,cancel:false};sheet._trigger(spread.Events.RowHeightChanging,args);if(args&&args.cancel===true){self._canUndo=false;self._resumeInvalidate(arg);return}else
{self._canUndo=true}self.saveState();var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);sheet.suspendEvent();try
{var rowCount=sheet.getRowCount(sheetArea);var fitValue;for(var r=0,len=self._rows.length;r<len;r++){var re=self._rows[r];if(0<=re.row&&re.row<rowCount){if(sheet.getRowResizable(re.row,sheetArea)){fitValue=self._getRowAutoFitValue(re.row);if(fitValue!==sheet.getRowHeight(re.row,sheetArea)){sheet.setRowHeight(re.row,fitValue,sheetArea)}}}}}finally
{sheet.resumeEvent();sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}sheet._trigger(spread.Events.RowHeightChanged,{sheet:sheet,sheetName:sheet._name,rowList:resizedRows,header:inHeader})}};RowAutoFitUndoAction.prototype.saveState=function(){var self=this;var sizes=keyword_null;var visibles=keyword_null;var sheet=self._sheet;var sheetArea=self._sheetArea;if(sheet&&self._rows&&self._rows.length>0){sizes=[self._rows.length];visibles=[self._rows.length];var rowCount=sheet.getRowCount(sheetArea);for(var r=0,len=self._rows.length;r<len;r++){var re=self._rows[r];if(0<=re.row&&re.row<rowCount){sizes[r]=sheet.getRowHeight(re.row,sheetArea);visibles[r]=sheet.getRowVisible(re.row,sheetArea)}else
{sizes[r]=-1;visibles[r]=false}}}self._oldSizes=sizes;self._oldVisibles=visibles};RowAutoFitUndoAction.prototype.undo=function(arg){var self=this;var ret=false;var sheet=self._sheet;var sheetArea=self._sheetArea;var inHeader=self._sheetArea===1;if(sheet&&self._rows&&self._rows.length>0){self._suspendInvalidate(arg);var resizedRows=self._getRowsResized(self._rows);var args={sheet:sheet,sheetName:sheet._name,rowList:resizedRows,header:inHeader,cancel:false};sheet._trigger(spread.Events.RowHeightChanging,args);if(args&&args.cancel===true){self._resumeInvalidate(arg);return false}var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);sheet.suspendEvent();try
{var oldSize,oldVisible;var rowCount=sheet.getRowCount(sheetArea);for(var r=0,len=self._rows.length;r<len;r++){var re=self._rows[r];oldSize=self._oldSizes[r];oldVisible=self._oldVisibles[r];if(0<=r&&r<rowCount&&oldSize!==-1){if(sheet.getRowResizable(re.row,sheetArea)){sheet.setRowHeight(re.row,oldSize,sheetArea);sheet.setRowVisible(re.row,oldVisible,sheetArea);ret=true}}}}finally
{sheet.resumeEvent();sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}sheet._trigger(spread.Events.RowHeightChanged,{sheet:sheet,sheetName:sheet._name,rowList:resizedRows,header:inHeader})}return ret};RowAutoFitUndoAction.prototype._getRowsResized=function(rowHeightChangeExtents){var rows=[];for(var i=0,len=rowHeightChangeExtents.length;i<len;i++){var item=rowHeightChangeExtents[i];rows.push(item.row)}return rows};RowAutoFitUndoAction.prototype._nextAutoFitColumn=function(row,col){var sheet=this._sheet;var sheetArea=this._sheetArea;var inHeader=this._sheetArea===1;var nextNonNullCol=sheet._nextNonNullColumn(row,col,inHeader);var nextCellTypeCol=-1;var colCount=sheet.getColumnCount(sheetArea);for(var j=col+1;j<colCount;j++){var style=sheet.getActualStyle(row,j,sheetArea);if(style&&style.cellType){nextCellTypeCol=j;break}}if(nextNonNullCol>=0&&nextCellTypeCol>=0){return Math_min(nextNonNullCol,nextCellTypeCol)}else if(nextNonNullCol>=0){return nextNonNullCol}else if(nextCellTypeCol>=0){return nextCellTypeCol}else
{return-1}};RowAutoFitUndoAction.prototype._getRowAutoFitValue=function(row){var self=this;var sheet=self._sheet,render=sheet._render;var height=0;var sheetArea=self._sheetArea;var inHeader=self._sheetArea===1;var areas=[sheetArea];if(self._autofitType==1){if(sheetArea==3){areas.push(2)}else if(sheetArea==1){areas.push(0)}}for(var i=0;i<areas.length;i++){sheetArea=areas[i];var col=0;var colCount=sheet.getColumnCount(sheetArea);var colIdx,columnWidth=0;while(col>=0&&col<colCount){var span=sheet._getSpanModel(sheetArea).find(row,col);if(span){if(span.row<row||span.rowCount>1||span.col<col){col=span.col+span.colCount;continue}else if(col==span.col){columnWidth=sheet.getColumnWidth(col);if(span.colCount>1){for(colIdx=(col+1);colIdx<(col+span.colCount);colIdx++){columnWidth+=sheet.getColumnWidth(colIdx)}}}}else
{columnWidth=sheet.getColumnWidth(col)}var style=sheet.getActualStyle(row,col,sheetArea);var font=style.font||render._getDefaultFont(sheetArea);style.font=render._getZoomFont(font);var valueHeight=0;var cellType=sheet.getCellType(row,col,sheetArea);if(cellType){var text=sheet.getText(row,col,sheetArea);var value=sheet.getValue(row,col,sheetArea);var context={sheet:sheet,row:row,col:col,sheetArea:sheetArea};valueHeight=cellType._getAutoFitHeight(sheet,value,text,style,columnWidth,context)}if(valueHeight>height){height=valueHeight}if(sheetArea===3){col=self._nextAutoFitColumn(row,col)}else
{col++}}}if(height===0){height=sheet.defaults.rowHeight}else
{height+=Math_ceil(3/sheet._zoomFactor)}return height};RowAutoFitUndoAction.prototype.canUndo=function(){return this._canUndo};return RowAutoFitUndoAction})(ActionBase);UndoRedo.RowAutoFitUndoAction=RowAutoFitUndoAction;var GroupExtent=(function(){function GroupExtent(index,count){this.index=index;this.count=count}return GroupExtent})();UndoRedo.GroupExtent=GroupExtent;var ColumnGroupUndoAction=(function(_super){__extends(ColumnGroupUndoAction,_super);function ColumnGroupUndoAction(sheet,groupExtent){_super.call(this);this._sheet=sheet;this._columnGroupExtent=groupExtent;this._canUndo=false}ColumnGroupUndoAction.prototype.canExecute=function(arg){return true};ColumnGroupUndoAction.prototype.execute=function(arg){var self=this;var sheet=self._sheet;if(spread.features.group&&sheet&&self._columnGroupExtent&&sheet.colRangeGroup){self._suspendInvalidate(arg);var index=self._columnGroupExtent.index;var count=self._columnGroupExtent.count;sheet.colRangeGroup.group(index,count);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}self._canUndo=true}};ColumnGroupUndoAction.prototype.canUndo=function(){return this._canUndo};ColumnGroupUndoAction.prototype.saveState=function(){};ColumnGroupUndoAction.prototype.undo=function(arg){var self=this;var ret=false;var sheet=self._sheet;if(spread.features.group&&sheet&&self._columnGroupExtent&&sheet.colRangeGroup){self._suspendInvalidate(arg);var index=self._columnGroupExtent.index;var count=self._columnGroupExtent.count;sheet.colRangeGroup.ungroupRange(index,count);ret=true;var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}return ret};return ColumnGroupUndoAction})(ActionBase);UndoRedo.ColumnGroupUndoAction=ColumnGroupUndoAction;var ColumnUngroupUndoAction=(function(_super){__extends(ColumnUngroupUndoAction,_super);function ColumnUngroupUndoAction(sheet,groupExtent){_super.call(this);this._sheet=sheet;this._columnUngroupExtent=groupExtent;this._canUndo=false}ColumnUngroupUndoAction.prototype.canExecute=function(arg){return true};ColumnUngroupUndoAction.prototype.execute=function(arg){var self=this;var sheet=self._sheet;if(spread.features.group&&sheet&&self._columnUngroupExtent&&sheet.colRangeGroup){var index=self._columnUngroupExtent.index;var count=self._columnUngroupExtent.count;if(sheet.colRangeGroup.getLevel(index)>=0||sheet.colRangeGroup.getLevel(index+count-1)>=0){self._suspendInvalidate(arg);self._canUndo=true;sheet.colRangeGroup.ungroupRange(index,count);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}else
{self._canUndo=false}}};ColumnUngroupUndoAction.prototype.canUndo=function(){return this._canUndo};ColumnUngroupUndoAction.prototype.saveState=function(){};ColumnUngroupUndoAction.prototype.undo=function(arg){var self=this;var ret=false;var sheet=self._sheet;if(spread.features.group&&self._canUndo===true&&sheet&&self._columnUngroupExtent&&sheet.colRangeGroup){self._suspendInvalidate(arg);var index=self._columnUngroupExtent.index;var count=self._columnUngroupExtent.count;sheet.colRangeGroup.group(index,count);ret=true;var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}return ret};return ColumnUngroupUndoAction})(ActionBase);UndoRedo.ColumnUngroupUndoAction=ColumnUngroupUndoAction;var RowGroupUndoAction=(function(_super){__extends(RowGroupUndoAction,_super);function RowGroupUndoAction(sheet,groupExtent){_super.call(this);this._sheet=sheet;this._rowGroupExtent=groupExtent;this._canUndo=false}RowGroupUndoAction.prototype.canExecute=function(arg){return true};RowGroupUndoAction.prototype.execute=function(arg){var self=this;var sheet=self._sheet;if(spread.features.group&&sheet&&self._rowGroupExtent&&sheet.rowRangeGroup){self._suspendInvalidate(arg);var index=self._rowGroupExtent.index;var count=self._rowGroupExtent.count;sheet.rowRangeGroup.group(index,count);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}self._canUndo=true}};RowGroupUndoAction.prototype.canUndo=function(){return this._canUndo};RowGroupUndoAction.prototype.saveState=function(){};RowGroupUndoAction.prototype.undo=function(arg){var self=this;var ret=false;var sheet=self._sheet;if(spread.features.group&&sheet&&self._rowGroupExtent&&sheet.rowRangeGroup){self._suspendInvalidate(arg);var index=self._rowGroupExtent.index;var count=self._rowGroupExtent.count;sheet.rowRangeGroup.ungroupRange(index,count);ret=true;var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}return ret};return RowGroupUndoAction})(ActionBase);UndoRedo.RowGroupUndoAction=RowGroupUndoAction;var RowUngroupUndoAction=(function(_super){__extends(RowUngroupUndoAction,_super);function RowUngroupUndoAction(sheet,groupExtent){_super.call(this);this._sheet=sheet;this._rowUngroupExtent=groupExtent;this._canUndo=false}RowUngroupUndoAction.prototype.canExecute=function(arg){return true};RowUngroupUndoAction.prototype.execute=function(arg){var self=this;var sheet=self._sheet;if(spread.features.group&&sheet&&self._rowUngroupExtent&&sheet.rowRangeGroup){var index=self._rowUngroupExtent.index;var count=self._rowUngroupExtent.count;if(sheet.rowRangeGroup.getLevel(index)>=0||sheet.rowRangeGroup.getLevel(index+count-1)>=0){self._suspendInvalidate(arg);self._canUndo=true;sheet.rowRangeGroup.ungroupRange(index,count);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}else
{self._canUndo=false}}};RowUngroupUndoAction.prototype.canUndo=function(){return this._canUndo};RowUngroupUndoAction.prototype.saveState=function(){};RowUngroupUndoAction.prototype.undo=function(arg){var self=this;var ret=false;var sheet=self._sheet;if(spread.features.group&&self._canUndo===true&&sheet&&self._rowUngroupExtent&&sheet.rowRangeGroup){self._suspendInvalidate(arg);var index=self._rowUngroupExtent.index;var count=self._rowUngroupExtent.count;sheet.rowRangeGroup.group(index,count);ret=true;var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}return ret};return RowUngroupUndoAction})(ActionBase);UndoRedo.RowUngroupUndoAction=RowUngroupUndoAction;var ColumnGroupExpandUndoAction=(function(_super){__extends(ColumnGroupExpandUndoAction,_super);function ColumnGroupExpandUndoAction(sheet,columnExpandExtent){_super.call(this);this._sheet=sheet;this._columnExpandExtent=columnExpandExtent;this._canUndo=false}ColumnGroupExpandUndoAction.prototype.canExecute=function(){return true};ColumnGroupExpandUndoAction.prototype.execute=function(arg){var self=this;var sheet=self._sheet;if(spread.features.group&&sheet&&self._columnExpandExtent&&sheet.colRangeGroup){self._suspendInvalidate(arg);var index=self._columnExpandExtent.index;var collapsed=self._columnExpandExtent.collapsed;sheet.colRangeGroup.setCollapsed(index,collapsed);self._showColumnRangeGroup(collapsed);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}self._canUndo=true}};ColumnGroupExpandUndoAction.prototype.canUndo=function(){return this._canUndo};ColumnGroupExpandUndoAction.prototype.saveState=function(){};ColumnGroupExpandUndoAction.prototype.undo=function(arg){var self=this;var ret=false;var sheet=self._sheet;if(spread.features.group&&sheet&&self._columnExpandExtent&&sheet.colRangeGroup){self._suspendInvalidate(arg);var index=self._columnExpandExtent.index;var collapsed=self._columnExpandExtent.collapsed;sheet.colRangeGroup.setCollapsed(index,!collapsed);ret=true;self._showColumnRangeGroup(!collapsed);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}return ret};ColumnGroupExpandUndoAction.prototype._showColumnRangeGroup=function(collapsed){var self=this;var sheet=self._sheet;var summaryIndex=self._columnExpandExtent.index;if(summaryIndex<0||summaryIndex>=sheet.getColumnCount()){return}var rangeGroup,startIndex,endIndex,viewportIndex,leftColumn,viewportWidth,needViewportWidth;if(sheet.colRangeGroup.direction===1){rangeGroup=sheet.colRangeGroup.find(summaryIndex-1,self._columnExpandExtent.level);if(!rangeGroup){return}startIndex=rangeGroup.start;endIndex=summaryIndex;viewportIndex=1;if(collapsed){startIndex=summaryIndex}else
{if(startIndex<sheet.frozenColCount){startIndex=sheet.frozenColCount}}leftColumn=sheet.getViewportLeftColumn(viewportIndex);if(startIndex<leftColumn){leftColumn=startIndex}viewportWidth=sheet.getViewportWidth(viewportIndex);needViewportWidth=self._getColsTotalWidth(sheet,leftColumn,endIndex);if(needViewportWidth>viewportWidth){leftColumn=self._getNewLeftColumn(sheet,leftColumn,needViewportWidth-viewportWidth)}sheet._scrollLeftCol=self._tryGetNextScrollableCol(sheet,leftColumn)}else
{rangeGroup=sheet.colRangeGroup.find(summaryIndex+1,self._columnExpandExtent.level);if(!rangeGroup){return}startIndex=summaryIndex;endIndex=rangeGroup.end;viewportIndex=1;if(collapsed){endIndex=summaryIndex}else
{var colCount=sheet.getColumnCount();if(endIndex>=colCount){endIndex=colCount-1}}leftColumn=sheet.getViewportLeftColumn(viewportIndex);if(startIndex<leftColumn){sheet._scrollLeftCol=self._tryGetNextScrollableCol(sheet,startIndex)}else
{viewportWidth=sheet.getViewportWidth(viewportIndex);needViewportWidth=self._getColsTotalWidth(sheet,leftColumn,endIndex);if(needViewportWidth>viewportWidth){leftColumn=self._getNewLeftColumn(sheet,leftColumn,needViewportWidth-viewportWidth);sheet._scrollLeftCol=self._tryGetNextScrollableCol(sheet,Math_min(startIndex,leftColumn))}}}sheet._syncHScollbarPosition()};ColumnGroupExpandUndoAction.prototype._getColsTotalWidth=function(sheet,leftColumn,rightColumn){var columnWidthTotal=0;var colCount=sheet.getColumnCount();for(var index=leftColumn;(index<=rightColumn)&&(index<colCount);index++){columnWidthTotal+=sheet.getColumnWidth(index)*sheet._zoomFactor}return columnWidthTotal};ColumnGroupExpandUndoAction.prototype._getNewLeftColumn=function(sheet,oldLeftColumn,increasedWidth){var columnWidthTotal=0;var colCount=sheet.getColumnCount();for(var index=oldLeftColumn;(index<colCount)&&(columnWidthTotal<increasedWidth);index++){oldLeftColumn++;columnWidthTotal+=sheet.getColumnWidth(index)*sheet._zoomFactor}return(oldLeftColumn>=colCount?colCount-1:oldLeftColumn)};ColumnGroupExpandUndoAction.prototype._tryGetNextScrollableCol=function(sheet,startColumn){var min=sheet.frozenColCount;var max=sheet.getColumnCount()-1;if(startColumn<min){return min}if(startColumn>max){return max}for(var i=startColumn;i<=max;i++){var columnHeight=sheet.getColumnWidth(i);if(columnHeight>0){return i}}return-1};return ColumnGroupExpandUndoAction})(ActionBase);UndoRedo.ColumnGroupExpandUndoAction=ColumnGroupExpandUndoAction;var RowGroupExpandUndoAction=(function(_super){__extends(RowGroupExpandUndoAction,_super);function RowGroupExpandUndoAction(sheet,rowExpandExtent){_super.call(this);this._sheet=sheet;this._rowExpandExtent=rowExpandExtent;this._canUndo=false}RowGroupExpandUndoAction.prototype.canExecute=function(){return true};RowGroupExpandUndoAction.prototype.execute=function(arg){var self=this;var sheet=self._sheet;if(spread.features.group&&sheet&&self._rowExpandExtent&&sheet.rowRangeGroup){self._suspendInvalidate(arg);var index=self._rowExpandExtent.index;var collapsed=self._rowExpandExtent.collapsed;sheet.rowRangeGroup.setCollapsed(index,collapsed);self._showRowRangeGroup(collapsed);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}self._canUndo=true}};RowGroupExpandUndoAction.prototype.canUndo=function(){return this._canUndo};RowGroupExpandUndoAction.prototype.saveState=function(){};RowGroupExpandUndoAction.prototype.undo=function(arg){var self=this;var ret=false;var sheet=self._sheet;if(spread.features.group&&sheet&&self._rowExpandExtent&&sheet.rowRangeGroup){self._suspendInvalidate(arg);var index=self._rowExpandExtent.index;var collapsed=self._rowExpandExtent.collapsed;sheet.rowRangeGroup.setCollapsed(index,!collapsed);ret=true;self._showRowRangeGroup(!collapsed);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}return ret};RowGroupExpandUndoAction.prototype._showRowRangeGroup=function(collapsed){var self=this;var sheet=self._sheet;var summaryIndex=self._rowExpandExtent.index;if(summaryIndex<0||summaryIndex>=sheet.getRowCount()){return}var rangeGroup,startIndex,endIndex,viewportIndex,topRow,viewportHeight,needViewportHeight;if(sheet.rowRangeGroup.direction===1){rangeGroup=sheet.rowRangeGroup.find(summaryIndex-1,self._rowExpandExtent.level);if(!rangeGroup){return}startIndex=rangeGroup.start;endIndex=summaryIndex;viewportIndex=1;if(collapsed){startIndex=summaryIndex}else
{if(startIndex<sheet.frozenRowCount){startIndex=sheet.frozenRowCount}}topRow=sheet.getViewportTopRow(viewportIndex);if(startIndex<topRow){topRow=startIndex}viewportHeight=sheet.getViewportHeight(viewportIndex);needViewportHeight=self._getRowsTotalHeight(sheet,topRow,endIndex);if(needViewportHeight>viewportHeight){topRow=self._getNewTopRow(sheet,topRow,needViewportHeight-viewportHeight)}sheet._scrollTopRow=self._tryGetNextScrollableRow(sheet,topRow)}else
{rangeGroup=sheet.rowRangeGroup.find(summaryIndex+1,self._rowExpandExtent.level);if(!rangeGroup){return}startIndex=summaryIndex;endIndex=rangeGroup.end;viewportIndex=1;if(collapsed){endIndex=summaryIndex}else
{var rowCount=sheet.getRowCount();if(endIndex>=rowCount){endIndex=rowCount-1}}topRow=sheet.getViewportTopRow(viewportIndex);if(startIndex<topRow){sheet._scrollTopRow=self._tryGetNextScrollableRow(sheet,startIndex)}else
{viewportHeight=sheet.getViewportHeight(viewportIndex);needViewportHeight=self._getRowsTotalHeight(sheet,topRow,endIndex);if(needViewportHeight>viewportHeight){topRow=self._getNewTopRow(sheet,topRow,needViewportHeight-viewportHeight);sheet._scrollTopRow=self._tryGetNextScrollableRow(sheet,Math_min(startIndex,topRow))}}}sheet._syncVScrollbarPosition()};RowGroupExpandUndoAction.prototype._getRowsTotalHeight=function(sheet,topRow,bottomRow){var rowHeightTotal=0;var rowCount=sheet.getRowCount();for(var index=topRow;(index<=bottomRow)&&(index<rowCount);index++){rowHeightTotal+=sheet.getRowHeight(index)*sheet._zoomFactor}return rowHeightTotal};RowGroupExpandUndoAction.prototype._getNewTopRow=function(sheet,oldTopRow,increasedHeight){var rowHeightTotal=0;var rowCount=sheet.getRowCount();for(var index=oldTopRow;(index<=rowCount)&&(rowHeightTotal<increasedHeight);index++){oldTopRow++;rowHeightTotal+=sheet.getRowHeight(index)*sheet._zoomFactor}return(oldTopRow>=rowCount)?(rowCount-1):oldTopRow};RowGroupExpandUndoAction.prototype._tryGetNextScrollableRow=function(sheet,startRow){var min=sheet.frozenRowCount;var max=sheet.getRowCount()-1;if(startRow<min){return min}if(startRow>max){return max}for(var i=startRow;i<=max;i++){var rowHeight=sheet.getRowHeight(i);if(rowHeight>0){return i}}return-1};return RowGroupExpandUndoAction})(ActionBase);UndoRedo.RowGroupExpandUndoAction=RowGroupExpandUndoAction;var ColumnGroupHeaderExpandUndoAction=(function(_super){__extends(ColumnGroupHeaderExpandUndoAction,_super);function ColumnGroupHeaderExpandUndoAction(sheet,columnGroupHeaderExpandExtent){_super.call(this);var self=this;self._sheet=sheet;self._columnGroupHeaderExpandExtent=columnGroupHeaderExpandExtent;self._oldStatus={};self._canUndo=false}ColumnGroupHeaderExpandUndoAction.prototype.canExecute=function(){return true};ColumnGroupHeaderExpandUndoAction.prototype.execute=function(arg){var self=this;var sheet=self._sheet;if(spread.features.group&&sheet&&self._columnGroupHeaderExpandExtent&&sheet.colRangeGroup){self._suspendInvalidate(arg);self.saveState();var level=self._columnGroupHeaderExpandExtent.level;for(var index=0;index<level;index++){sheet.colRangeGroup.expand(index,true)}sheet.colRangeGroup.expand(level,false);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}self._canUndo=true}};ColumnGroupHeaderExpandUndoAction.prototype.canUndo=function(){return this._canUndo};ColumnGroupHeaderExpandUndoAction.prototype.saveState=function(){var self=this;var status=keyword_null;var sheet=self._sheet;if(sheet&&self._columnGroupHeaderExpandExtent&&sheet.colRangeGroup){var level=self._columnGroupHeaderExpandExtent.level;status={};for(var index=0;index<=level;index++){var columnIndex=0;var columnCount=sheet.getColumnCount();var direction=sheet.colRangeGroup.direction;while(columnIndex<columnCount){var group=sheet.colRangeGroup.find(columnIndex,index);if(group){var summaryIndex=-1;switch(direction){case 0:summaryIndex=group.start-1;break;case 1:summaryIndex=group.end+1;break;default:break}var isCollapsed=(group.getState()===1);if(!status[summaryIndex]){status[summaryIndex]=isCollapsed}columnIndex+=(group.end-group.start+1)}columnIndex++}}}self._oldStatus=status};ColumnGroupHeaderExpandUndoAction.prototype.undo=function(arg){var self=this;var ret=false;var sheet=self._sheet;if(spread.features.group&&sheet&&self._oldStatus&&sheet.colRangeGroup){self._suspendInvalidate(arg);for(var index in self._oldStatus){if(index){sheet.colRangeGroup.setCollapsed(index,self._oldStatus[index]);ret=true}}var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}return ret};return ColumnGroupHeaderExpandUndoAction})(ActionBase);UndoRedo.ColumnGroupHeaderExpandUndoAction=ColumnGroupHeaderExpandUndoAction;var RowGroupHeaderExpandUndoAction=(function(_super){__extends(RowGroupHeaderExpandUndoAction,_super);function RowGroupHeaderExpandUndoAction(sheet,rowGroupHeaderExpandExtent){_super.call(this);var self=this;self._sheet=sheet;self._rowGroupHeaderExpandExtent=rowGroupHeaderExpandExtent;self._oldStatus={};self._canUndo=false}RowGroupHeaderExpandUndoAction.prototype.canExecute=function(){return true};RowGroupHeaderExpandUndoAction.prototype.execute=function(arg){var self=this;var sheet=self._sheet;if(spread.features.group&&sheet&&self._rowGroupHeaderExpandExtent&&sheet.rowRangeGroup){self._suspendInvalidate(arg);self.saveState();var level=self._rowGroupHeaderExpandExtent.level;for(var index=0;index<level;index++){sheet.rowRangeGroup.expand(index,true)}sheet.rowRangeGroup.expand(level,false);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}self._canUndo=true}};RowGroupHeaderExpandUndoAction.prototype.canUndo=function(){return this._canUndo};RowGroupHeaderExpandUndoAction.prototype.saveState=function(){var self=this;var status=keyword_null;var sheet=self._sheet;if(sheet&&self._rowGroupHeaderExpandExtent&&sheet.rowRangeGroup){var level=self._rowGroupHeaderExpandExtent.level;status={};for(var index=0;index<=level;index++){var rowIndex=0;var rowCount=sheet.getRowCount();var direction=sheet.rowRangeGroup.direction;while(rowIndex<rowCount){var group=sheet.rowRangeGroup.find(rowIndex,index);if(group){var summaryIndex=-1;switch(direction){case 0:summaryIndex=group.start-1;break;case 1:summaryIndex=group.end+1;break;default:break}var isCollapsed=(group.getState()===1);if(!status[summaryIndex]){status[summaryIndex]=isCollapsed}rowIndex+=(group.end-group.start+1)}rowIndex++}}}self._oldStatus=status};RowGroupHeaderExpandUndoAction.prototype.undo=function(arg){var self=this;var ret=false;var sheet=self._sheet;if(spread.features.group&&sheet&&self._oldStatus&&sheet.rowRangeGroup){self._suspendInvalidate(arg);for(var index in self._oldStatus){if(index){sheet.rowRangeGroup.setCollapsed(index,self._oldStatus[index]);ret=true}}var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}return ret};return RowGroupHeaderExpandUndoAction})(ActionBase);UndoRedo.RowGroupHeaderExpandUndoAction=RowGroupHeaderExpandUndoAction;var DragDropExtent=(function(){function DragDropExtent(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount){var self=this;self.fromRow=fromRow;self.fromColumn=fromColumn;self.toRow=toRow;self.toColumn=toColumn;self.rowCount=rowCount;self.columnCount=columnCount}return DragDropExtent})();UndoRedo.DragDropExtent=DragDropExtent;var DragDropUndoAction=(function(_super){__extends(DragDropUndoAction,_super);function DragDropUndoAction(sheet,dragMoveExtent,copy,insert,option){_super.call(this);var self=this;self._sheet=sheet;self._dragDropExtent=dragMoveExtent;self._copy=copy;self._insert=insert;self._option=option}DragDropUndoAction.prototype.canExecute=function(arg){var self=this;var sheet=self._sheet;var dragExtent=self._dragDropExtent;if(!sheet._isValidRange(dragExtent.fromRow,dragExtent.fromColumn,dragExtent.rowCount,dragExtent.columnCount,self._sheet.getRowCount(),self._sheet.getColumnCount())){return false}if(!self._insert){if(!sheet._isValidRange(dragExtent.toRow,dragExtent.toColumn,dragExtent.rowCount,dragExtent.columnCount,self._sheet.getRowCount(),self._sheet.getColumnCount())){return false}}return!(sheet.isProtected&&sheet._isAnyCellInRangeLocked(new spread.Range(dragExtent.toRow,dragExtent.toColumn,dragExtent.rowCount,dragExtent.columnCount)))&&sheet._checkArrayFormula(dragExtent.toRow,dragExtent.toColumn,dragExtent.rowCount,dragExtent.columnCount)&&!(sheet.isProtected&&sheet._isAnyCellInRangeLocked(new spread.Range(dragExtent.fromRow,dragExtent.fromColumn,dragExtent.rowCount,dragExtent.columnCount)))&&sheet._checkArrayFormula(dragExtent.fromRow,dragExtent.fromColumn,dragExtent.rowCount,dragExtent.columnCount)};DragDropUndoAction.prototype.execute=function(arg){var self=this;var sheet=self._sheet;self.saveState();var from,to,count,oldSelections,newSelections;if(self._insert){var ifr=self._dragDropExtent.fromRow,ifc=self._dragDropExtent.fromColumn;if(ifc>=0&&ifr<0){from=self._dragDropExtent.fromColumn;to=self._dragDropExtent.toColumn;count=self._dragDropExtent.columnCount;var activeColumn=self._dragDropExtent.toColumn;self._suspendInvalidate(arg);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);try
{self._sheet.addColumns(to,count);if(self._copy){self._sheet.copyTo(-1,(to<=from?from+count:from),-1,to,-1,count,self._option)}else
{self._sheet.moveTo(-1,(to<=from?from+count:from),-1,to,-1,count,self._option);self._sheet.deleteColumns((to<=from?from+count:from),count);if(from<to){activeColumn=to-count}}if(sheet){oldSelections=sheet.getSelections().toArray();sheet._clearSelectionImp();sheet.addSelection(-1,activeColumn,sheet.getRowCount(),count);newSelections=sheet.getSelections();sheet._trigger(spread.Events.SelectionChanging,{sheet:sheet,sheetName:sheet._name,oldSelections:oldSelections,newSelections:newSelections});sheet._trigger(spread.Events.SelectionChanged,{sheet:sheet,sheetName:sheet._name});sheet._setActiveCellImp(sheet._getFirstVisualRow(),activeColumn,sheet.activeRowViewportIndex,sheet.activeColViewportIndex)}}finally
{sheet._dragRect={};sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}}else if(self._dragDropExtent.fromRow>=0&&self._dragDropExtent.fromColumn<0){from=self._dragDropExtent.fromRow;to=self._dragDropExtent.toRow;count=self._dragDropExtent.rowCount;var activeRow=self._dragDropExtent.toRow;self._suspendInvalidate(arg);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);try
{self._sheet.addRows(to,count);if(self._copy){self._sheet.copyTo((to<=from?from+count:from),-1,to,-1,count,-1,self._option)}else
{self._sheet.moveTo((to<=from?from+count:from),-1,to,-1,count,-1,self._option);self._sheet.deleteRows((to<=from?from+count:from),count);if(from<to){activeRow=to-count}}if(sheet){oldSelections=sheet.getSelections().toArray();sheet._clearSelectionImp();sheet.addSelection(activeRow,-1,count,sheet.getColumnCount());newSelections=sheet.getSelections();sheet._trigger(spread.Events.SelectionChanging,{sheet:sheet,sheetName:sheet._name,oldSelections:oldSelections,newSelections:newSelections});sheet._trigger(spread.Events.SelectionChanged,{sheet:sheet,sheetName:sheet._name});sheet._setActiveCellImp(activeRow,sheet._getFirstVisualColumn(),sheet.activeRowViewportIndex,sheet.activeColViewportIndex)}}finally
{sheet._dragRect={};sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}}}else
{var fromRow=self._dragDropExtent.fromRow;var fromColumn=self._dragDropExtent.fromColumn;var toRow=self._dragDropExtent.toRow;var toColumn=self._dragDropExtent.toColumn;var rowCount=self._dragDropExtent.rowCount;var columnCount=self._dragDropExtent.columnCount;self._suspendInvalidate(arg);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);try
{if(self._copy){sheet.copyTo(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount,self._option)}else
{sheet.moveTo(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount,self._option)}if(sheet){oldSelections=sheet.getSelections().toArray();sheet._clearSelectionImp();sheet.addSelection(toRow,toColumn,rowCount,columnCount);newSelections=sheet.getSelections().toArray();sheet._trigger(spread.Events.SelectionChanging,{sheet:sheet,sheetName:sheet._name,oldSelections:oldSelections,newSelections:newSelections});sheet._trigger(spread.Events.SelectionChanged,{sheet:sheet,sheetName:sheet._name});sheet._setActiveCellImp(Math_max(sheet._getFirstVisualRow(),toRow),Math_max(sheet._getFirstVisualColumn(),toColumn),sheet.activeRowViewportIndex,sheet.activeColViewportIndex);if(!self._copy&&self._savedFromViewportCells&&self._savedFromViewportCells.isValueSaved()){CopyMoveHelper.raiseRangeDataChanged(sheet,fromRow,fromColumn,rowCount,columnCount,self._savedFromViewportCells.getValues())}if(self._savedToViewportCells&&self._savedToViewportCells.isValueSaved()){CopyMoveHelper.raiseRangeDataChanged(sheet,toRow,toColumn,rowCount,columnCount,self._savedToViewportCells.getValues())}}}finally
{sheet._dragRect={};sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}}};DragDropUndoAction.prototype.saveState=function(){var self=this;self.initSaveState();var fromRow=self._dragDropExtent.fromRow<0?0:self._dragDropExtent.fromRow;var fromColumn=self._dragDropExtent.fromColumn<0?0:self._dragDropExtent.fromColumn;var toRow=self._dragDropExtent.toRow<0?0:self._dragDropExtent.toRow;var toColumn=self._dragDropExtent.toColumn<0?0:self._dragDropExtent.toColumn;var rowCount=self._dragDropExtent.fromRow<0?self._sheet.getRowCount():self._dragDropExtent.rowCount;var columnCount=self._dragDropExtent.fromColumn<0?self._sheet.getColumnCount():self._dragDropExtent.columnCount;if(!self._insert){if(self._dragDropExtent.fromRow<0){var toColumnHeaderCellsInfo=new CopyMoveCellsInfo(self._sheet.getRowCount(1),columnCount);var toColumnsInfo=new CopyMoveColumnsInfo(columnCount);CopyMoveHelper.saveColumnHeaderInfo(self._sheet,toColumnHeaderCellsInfo,toColumnsInfo,toColumn,self._option);self._savedToColumnHeaderCells=toColumnHeaderCellsInfo;self._savedToColumns=toColumnsInfo;if(!self._copy){var fromColumnHeaderCellsInfo=new CopyMoveCellsInfo(self._sheet.getRowCount(1),columnCount);var fromColumnsInfo=new CopyMoveColumnsInfo(columnCount);CopyMoveHelper.saveColumnHeaderInfo(self._sheet,fromColumnHeaderCellsInfo,fromColumnsInfo,fromColumn,self._option);self._savedFromColumnHeaderCells=fromColumnHeaderCellsInfo;self._savedFromColumns=fromColumnsInfo}}if(self._dragDropExtent.fromColumn<0){var toRowHeaderCellsInfo=new CopyMoveCellsInfo(rowCount,self._sheet.getColumnCount(2));var toRowsInfo=new CopyMoveRowsInfo(rowCount);CopyMoveHelper.saveRowHeaderInfo(self._sheet,toRowHeaderCellsInfo,toRowsInfo,toRow,self._option);self._savedToRowHeaderCells=toRowHeaderCellsInfo;self._savedToRows=toRowsInfo;if(!self._copy){var fromRowHeaderCellsInfo=new CopyMoveCellsInfo(rowCount,self._sheet.getColumnCount(2));var fromRowsInfo=new CopyMoveRowsInfo(rowCount);CopyMoveHelper.saveRowHeaderInfo(self._sheet,fromRowHeaderCellsInfo,fromRowsInfo,fromRow,self._option);self._savedFromRowHeaderCells=fromRowHeaderCellsInfo;self._savedFromRows=fromRowsInfo}}var toViewportCellsInfo=new CopyMoveCellsInfo(rowCount,columnCount);CopyMoveHelper.saveViewportInfo(self._sheet,toViewportCellsInfo,toRow,toColumn,self._option);self._savedToViewportCells=toViewportCellsInfo;if(!self._copy){var fromViewportCellsInfo=new CopyMoveCellsInfo(rowCount,columnCount);CopyMoveHelper.saveViewportInfo(self._sheet,fromViewportCellsInfo,fromRow,fromColumn,self._option);self._savedFromViewportCells=fromViewportCellsInfo}}else
{if(self._dragDropExtent.fromColumn>=0&&self._dragDropExtent.fromRow>=0){}else if(self._dragDropExtent.fromColumn>=0){}else if(self._dragDropExtent.fromRow>=0){if(self._copy){}else
{if(self._sheet._hasTable(toRow,-1,1,-1)){var fromRowHeaderCellsInfo=new CopyMoveCellsInfo(rowCount,self._sheet.getColumnCount(2));var fromRowsInfo=new CopyMoveRowsInfo(rowCount);CopyMoveHelper.saveRowHeaderInfo(self._sheet,fromRowHeaderCellsInfo,fromRowsInfo,fromRow,self._option);self._savedFromRowHeaderCells=fromRowHeaderCellsInfo;self._savedFromRows=fromRowsInfo;var fromViewportCellsInfo=new CopyMoveCellsInfo(rowCount,columnCount);CopyMoveHelper.saveViewportInfo(self._sheet,fromViewportCellsInfo,fromRow,fromColumn,self._option);self._savedFromViewportCells=fromViewportCellsInfo}}}else
{}}self._savedAcitveRowViewportIndex=self._sheet.activeRowViewportIndex;self._savedAcitveColumnViewportIndex=self._sheet.activeColViewportIndex;self._savedActiveRow=self._sheet._activeRowIndex;self._savedActiveColumn=self._sheet._activeColIndex};DragDropUndoAction.prototype.initSaveState=function(){var self=this;self._savedFromColumnHeaderCells=keyword_null;self._savedFromColumns=keyword_null;self._savedFromViewportCells=keyword_null;self._savedFromRowHeaderCells=keyword_null;self._savedFromRows=keyword_null;self._savedToColumnHeaderCells=keyword_null;self._savedToColumns=keyword_null;self._savedToViewportCells=keyword_null;self._savedToRowHeaderCells=keyword_null;self._savedToRows=keyword_null;self._savedAcitveRowViewportIndex=-2;self._savedAcitveColumnViewportIndex=-2;self._savedActiveRow=-1;self._savedActiveColumn=-1};DragDropUndoAction.prototype.undo=function(arg){var self=this;var sheet=self._sheet;if(!sheet._isValidRange(self._dragDropExtent.fromRow,self._dragDropExtent.fromColumn,self._dragDropExtent.rowCount,self._dragDropExtent.columnCount,self._sheet.getRowCount(),self._sheet.getColumnCount())){return false}if(!self._insert){if(!sheet._isValidRange(self._dragDropExtent.toRow,self._dragDropExtent.toColumn,self._dragDropExtent.rowCount,self._dragDropExtent.columnCount,self._sheet.getRowCount(),self._sheet.getColumnCount())){return false}}var ret=false,oldSelections,newSelections,count,from,to;if(self._insert){if(!(self._dragDropExtent.fromColumn>=0&&self._dragDropExtent.fromRow>=0)){if(self._dragDropExtent.fromColumn>=0){var activeColumn=self._dragDropExtent.fromColumn;count=self._dragDropExtent.columnCount;self._suspendInvalidate(arg);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);try
{if(self._copy){self._sheet.deleteColumns(self._dragDropExtent.toColumn,count)}else
{from=self._dragDropExtent.toColumn;to=self._dragDropExtent.fromColumn;if(self._dragDropExtent.fromColumn<self._dragDropExtent.toColumn){from=self._dragDropExtent.toColumn-count}else
{to=self._dragDropExtent.fromColumn+count}self._sheet.addColumns(to,count);self._sheet.copyTo(-1,(to<=from?from+count:from),-1,to,-1,count,self._option);self._sheet.deleteColumns((to<=from?from+count:from),count);if(from<to){activeColumn=to-count}}if(sheet){oldSelections=sheet.getSelections().toArray();sheet._clearSelectionImp();sheet.addSelection(-1,activeColumn,sheet.getRowCount(),count);newSelections=sheet.getSelections();sheet._trigger(spread.Events.SelectionChanging,{sheet:sheet,sheetName:sheet._name,oldSelections:oldSelections,newSelections:newSelections});sheet._trigger(spread.Events.SelectionChanged,{sheet:sheet,sheetName:sheet._name})}}finally
{sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}ret=true}else if(self._dragDropExtent.fromRow>=0){count=self._dragDropExtent.rowCount;var activeRow=self._dragDropExtent.fromRow;self._suspendInvalidate(arg);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);try
{if(self._copy){self._sheet.deleteRows(self._dragDropExtent.toRow,count)}else
{from=self._dragDropExtent.toRow;to=self._dragDropExtent.fromRow;if(self._dragDropExtent.fromRow<self._dragDropExtent.toRow){from=self._dragDropExtent.toRow-count}else
{to=self._dragDropExtent.fromRow+count}self._sheet.addRows(to,count);if(self._savedFromViewportCells){CopyMoveHelper.undoCellsInfo(self._sheet,self._savedFromViewportCells,to,0,3);ret=true}if(self._savedFromRowHeaderCells){CopyMoveHelper.undoCellsInfo(self._sheet,self._savedFromRowHeaderCells,to,0,2);ret=true}if(self._savedFromRows){CopyMoveHelper.undoRowsInfo(self._sheet,self._savedFromRows,to);ret=true}if(!ret){self._sheet.copyTo((to<=from?from+count:from),-1,to,-1,count,-1,self._option)}self._sheet.deleteRows((to<=from?from+count:from),count);if(from<to){activeRow=to-count}}if(sheet){oldSelections=sheet.getSelections().toArray();sheet._clearSelectionImp();sheet.addSelection(activeRow,-1,count,sheet.getColumnCount());newSelections=sheet.getSelections();sheet._trigger(spread.Events.SelectionChanging,{sheet:sheet,sheetName:sheet._name,oldSelections:oldSelections,newSelections:newSelections});sheet._trigger(spread.Events.SelectionChanged,{sheet:sheet,sheetName:sheet._name})}}finally
{sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}ret=true}}}else
{var fromRow=self._dragDropExtent.fromRow<0?0:self._dragDropExtent.fromRow;var fromColumn=self._dragDropExtent.fromColumn<0?0:self._dragDropExtent.fromColumn;var toRow=self._dragDropExtent.toRow<0?0:self._dragDropExtent.toRow;var toColumn=self._dragDropExtent.toColumn<0?0:self._dragDropExtent.toColumn;var rowCount=self._dragDropExtent.fromRow<0?self._sheet.getRowCount():self._dragDropExtent.rowCount;var columnCount=self._dragDropExtent.fromColumn<0?self._sheet.getColumnCount():self._dragDropExtent.columnCount;var calcBlock=sheet._getCalcModel();calcBlock.clear(toRow,toColumn,rowCount,columnCount,1);var oldToValues=keyword_null;var oldFromValues=keyword_null;if(!self._copy&&self._savedFromViewportCells&&self._savedFromViewportCells.isValueSaved()){oldFromValues=CopyMoveHelper.getValues(self._sheet,fromRow,fromColumn,rowCount,columnCount)}if(self._savedToViewportCells&&self._savedToViewportCells.isValueSaved()){oldToValues=CopyMoveHelper.getValues(self._sheet,toRow,toColumn,rowCount,columnCount)}self._suspendInvalidate(arg);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);try
{if(self._savedToColumnHeaderCells){CopyMoveHelper.undoCellsInfo(self._sheet,self._savedToColumnHeaderCells,0,toColumn,1);ret=true}if(self._savedToColumns){CopyMoveHelper.undoColumnsInfo(self._sheet,self._savedToColumns,toColumn);ret=true}if(self._savedToViewportCells){CopyMoveHelper.undoCellsInfo(self._sheet,self._savedToViewportCells,toRow,toColumn,3);ret=true}if(self._savedToRowHeaderCells){CopyMoveHelper.undoCellsInfo(self._sheet,self._savedToRowHeaderCells,toRow,0,2);ret=true}if(self._savedToRows){CopyMoveHelper.undoRowsInfo(self._sheet,self._savedToRows,toRow);ret=true}if(self._savedFromColumnHeaderCells){CopyMoveHelper.undoCellsInfo(self._sheet,self._savedFromColumnHeaderCells,0,fromColumn,1);ret=true}if(self._savedFromColumns){CopyMoveHelper.undoColumnsInfo(self._sheet,self._savedFromColumns,fromColumn);ret=true}if(self._savedFromViewportCells){CopyMoveHelper.undoCellsInfo(self._sheet,self._savedFromViewportCells,fromRow,fromColumn,3);ret=true}if(self._savedFromRowHeaderCells){CopyMoveHelper.undoCellsInfo(self._sheet,self._savedFromRowHeaderCells,fromRow,0,2);ret=true}if(self._savedFromRows){CopyMoveHelper.undoRowsInfo(self._sheet,self._savedFromRows,fromRow);ret=true}if(ret&&sheet){oldSelections=sheet.getSelections().toArray();sheet._clearSelectionImp();sheet.addSelection(self._dragDropExtent.fromRow,self._dragDropExtent.fromColumn,self._dragDropExtent.rowCount,self._dragDropExtent.columnCount);newSelections=sheet.getSelections();sheet._trigger(spread.Events.SelectionChanging,{sheet:sheet,sheetName:sheet._name,oldSelections:oldSelections,newSelections:newSelections});sheet._trigger(spread.Events.SelectionChanged,{sheet:sheet,sheetName:sheet._name});if(oldToValues){CopyMoveHelper.raiseRangeDataChanged(sheet,toRow,toColumn,rowCount,columnCount,oldToValues)}if(oldFromValues){CopyMoveHelper.raiseRangeDataChanged(sheet,fromRow,fromColumn,rowCount,columnCount,oldFromValues)}}}finally
{sheet.isPaintSuspended(oldState);self._resumeInvalidate(arg)}}if(ret&&sheet){if(self._savedActiveRow!==-1&&self._savedActiveColumn!==-1){var selection=sheet.getSelections()[0];if(selection.contains(self._savedActiveRow,self._savedActiveColumn)){sheet._setActiveCellImp(self._savedActiveRow,self._savedActiveColumn)}else
{sheet._setActiveCellImp(Math_max(sheet._getFirstVisualRow(),selection.row),Math_max(sheet._getFirstVisualColumn(),selection.col))}}if(self._savedAcitveRowViewportIndex!==-2&&self._savedAcitveColumnViewportIndex!==-2&&self._savedActiveRow!==-1&&self._savedActiveColumn!==-1){sheet.showCell(self._savedActiveRow,self._savedActiveColumn,3,3)}sheet.invalidateLayout();sheet.repaint()}return ret};return DragDropUndoAction})(ActionBase);UndoRedo.DragDropUndoAction=DragDropUndoAction;var CellEditUndoAction=(function(_super){__extends(CellEditUndoAction,_super);function CellEditUndoAction(sheet,cellEditInfo){_super.call(this);this._oldValueCatch={};this._oldValueIsFormulaCatch={};this._eventNS=".cellEditaction";this._sheet=sheet;this._cellEditInfo=cellEditInfo;this._canUndo=false;if(cellEditInfo.ranges&&cellEditInfo.endEditType===1){var range=cellEditInfo.ranges[0];if(range.row===-1){range.row=0;range.rowCount=sheet.getRowCount()}if(range.col===-1){range.col=0;range.colCount=sheet.getColumnCount()}if(range.rowCount===1&&range.colCount===1){var exFormulas=sheet._getsArrayFormulas(range.row,range.col,1,1);if(exFormulas&&exFormulas.ranges&&exFormulas.ranges.length>0){cellEditInfo.ranges=[exFormulas.ranges[0]]}}}}CellEditUndoAction.prototype.canExecute=function(arg){var self=this;if(self._cellEditInfo.ranges){for(var i=0;i<self._cellEditInfo.ranges.length;i++){var range=self._cellEditInfo.ranges[i];if(!self._sheet._checkArrayFormula(range.row,range.col,range.rowCount,range.colCount)){return false}}}else if(!self._sheet._checkArrayFormula(self._cellEditInfo.row,self._cellEditInfo.col,1,1)){return false}return true};CellEditUndoAction.prototype.saveState=function(){var self=this;self.iteration(function(row,col){var formulaInfo=self._sheet.getFormulaInformation(row,col);var position=self._positionToString(row,col);if(formulaInfo.hasFormula){if(!formulaInfo.isArrayFormula||formulaInfo.baseRange.row===row&&formulaInfo.baseRange.col===col){self._oldValueCatch[position]=formulaInfo.formula;self._oldValueIsFormulaCatch[position]=formulaInfo}else
{self._oldValueIsFormulaCatch[position]=false}}else
{self._oldValueCatch[position]=self._sheet.getValue(self._cellEditInfo.row,self._cellEditInfo.col)}})};CellEditUndoAction.prototype.iteration=function(func){var self=this;if(self._cellEditInfo.ranges){for(var rangeIndex=0;rangeIndex<self._cellEditInfo.ranges.length;rangeIndex++){var range=self._cellEditInfo.ranges[rangeIndex];for(var row=range.row;row<range.row+range.rowCount;row++){for(var col=range.col;col<range.col+range.colCount;col++){func(row,col)}}}}else
{func(self._cellEditInfo.row,self._cellEditInfo.col)}};CellEditUndoAction.prototype.saveCellState=function(row,col){};CellEditUndoAction.prototype.undo=function(arg){var self=this;var sheet=self._sheet;var row=self._cellEditInfo.row;var col=self._cellEditInfo.col;var oldState=sheet._paintSuspended;try
{sheet._paintSuspended=true;sheet._bind(spread.Events.CellChanged+self._eventNS,function(event,data){if(data.propertyName==="value"){sheet._trigger(spread.Events.ValueChanged,{sheet:data.sheet,sheetName:data.sheetName,row:data.row,col:data.col,oldValue:data._oldValue,newValue:data.sheet.getValue(data.row,data.col)})}});self.iteration(function(r,c){var position=self._positionToString(r,c);var formulaInfo=self._oldValueIsFormulaCatch[position];if(formulaInfo===false){return}else if(formulaInfo){if(formulaInfo.isArrayFormula){sheet.setArrayFormula(r,c,formulaInfo.baseRange.rowCount,formulaInfo.baseRange.colCount,formulaInfo.formula)}else
{sheet.setFormula(r,c,self._oldValueCatch[position])}}else
{var formula=sheet.getFormula(r,c);if(!(formula===keyword_null||formula==="")){sheet.setFormula(r,c,keyword_null)}sheet.setValue(row,col,self._oldValueCatch[position])}})}catch(ex){return false}finally
{sheet._unbind(spread.Events.CellChanged+self._eventNS);sheet._paintSuspended=oldState}var layout=sheet._getSheetLayout(),rect=new spread.Rect(layout.frozenX,layout.frozenY,layout.width-layout.frozenX,layout.height-layout.frozenY);sheet.repaint(rect);return true};CellEditUndoAction.prototype.execute=function(arg){var self=this;self.saveState();var sheet=self._sheet;var oldState=sheet._paintSuspended;try
{sheet._paintSuspended=true;sheet._bind(spread.Events.CellChanged+self._eventNS,function(event,data){if(data.propertyName==="value"){sheet._trigger(spread.Events.ValueChanged,{sheet:data.sheet,sheetName:data.sheetName,row:data.row,col:data.col,oldValue:data._oldValue,newValue:data.sheet.getValue(data.row,data.col)})}});self.applyResult=self._applyEditing(arg)}finally
{self._sheet._unbind(spread.Events.CellChanged+self._eventNS);sheet._paintSuspended=oldState}var layout=sheet._getSheetLayout(),rect=new spread.Rect(layout.frozenX,layout.frozenY,layout.width-layout.frozenX,layout.height-layout.frozenY);sheet.repaint(rect);self._canUndo=self.applyResult===0};CellEditUndoAction.prototype._positionToString=function(row,col){return row+"_"+col};CellEditUndoAction.prototype._stringToPosition=function(position){var indexs=position.split("_");return{row:parseInt(indexs[0],10),col:parseInt(indexs[1],10)}};CellEditUndoAction.prototype._validateEditingValue=function(){var self=this;var action=0;var row=self._cellEditInfo.row;var col=self._cellEditInfo.col;var sheet=self._sheet;var text=self._cellEditInfo.newValue;var autoFormat=self._cellEditInfo.hasOwnProperty("autoFormat")?self._cellEditInfo.autoFormat:true;if(text&&text.length>0&&text[0]==="="){if(sheet.getDataValidator(row,col)){var newFormula=text.substring(1);if(newFormula!==''&&newFormula!==sheet.getFormula(row,col)){var svc=sheet.getCalcService();if(svc){var expr=svc.parse(newFormula,row>=0?row:0,col>=0?col:0);if(expr){var calc=svc.evaluateParsedFormula(sheet._getSheetSource(),expr,row,col);if(!sheet.isValid(row,col,calc)){action=sheet._validationError(row,col,calc)}}}}}}else
{var value=self._getValueFromEditing(row,col,text,autoFormat);var valid=sheet.isValid(row,col,value);if(!valid){action=sheet._validationError(row,col,text);sheet._eventHandler._forceCancelSelectiong=true}}return action};CellEditUndoAction.prototype._applyEditing=function(arg){var self=this;var sheet=self._sheet;var text=self._cellEditInfo.newValue;var action=self._validateEditingValue();if(action===1||action===2){return action}var autoFormat=self._cellEditInfo.hasOwnProperty("autoFormat")?self._cellEditInfo.autoFormat:true;var canUserEditFormula=sheet.parent?sheet.parent.canUserEditFormula():true;var value;var baseRow=self._cellEditInfo.row;baseRow=baseRow>=0?baseRow:0;var baseCol=self._cellEditInfo.col;baseCol=baseCol>=0?baseCol:0;var svc=sheet.getCalcService();var expr;if(canUserEditFormula&&svc&&text&&text.length>0&&text[0]==="="){try
{if(self._cellEditInfo.ranges&&self._cellEditInfo.endEditType===1){var range=self._cellEditInfo.ranges[0];sheet.setArrayFormula(range.row,range.col,range.rowCount,range.colCount,text.substring(1));return action}else
{expr=svc.parse(text.substring(1),baseRow,baseCol)}}catch(e){sheet._raiseInvalidOperation(0,typeof(e)==="string"?e:e.message);throw e;}}else if(self._cellEditInfo.ranges&&self._cellEditInfo.endEditType===1){var range=self._cellEditInfo.ranges[0];sheet.clear(range.row,range.col,range.rowCount,range.colCount,3,1)}if(!expr){var needFix=false;if((/^('=)/ig).test(text)){text=text.substring(1);needFix=true}if(value===keyword_undefined||value===keyword_null||needFix){value=self._getValueFromEditing(baseRow,baseCol,text,autoFormat)}}self.iteration(function(row,col){if(expr){try
{if(row==baseRow&&col==baseCol){sheet.setFormula(row,col,text.substring(1))}else
{sheet.setFormula(row,col,svc.unparse(expr,row,col))}sheet._trigger(spread.Events.UserFormulaEntered,{sheet:sheet,sheetName:sheet._name,row:row,col:col,formula:text.substring(1).toUpperCase()})}catch(e){sheet._raiseInvalidOperation(0,typeof(e)==="string"?e:e.message);throw e;}}else
{try
{if(sheet.hasFormula(row,col)){sheet.setFormula(row,col,keyword_null)}}catch(e){sheet._raiseInvalidOperation(0,typeof(e)==="string"?e:e.message);throw e;}try
{sheet.setValue(row,col,value)}catch(ex){sheet.setValue(row,col,text)}}});return action};CellEditUndoAction.prototype.canUndo=function(){return this._canUndo};CellEditUndoAction.prototype._getValueFromEditing=function(row,col,text,autoFormat){if(!spread.features.formatter){return text}var self=this;var cellFormatter=keyword_null;var style=self._sheet.getActualStyle(row,col);if(style){if(style.formatter){cellFormatter=style.formatter;if(typeof cellFormatter==='string'){cellFormatter=new spread.GeneralFormatter(cellFormatter);if(self._sheet._editingTimeValue){}}}else
{cellFormatter=style._autoFormatter}}if(cellFormatter&&!(cellFormatter instanceof spread.AutoFormatter)){var customerValue=keyword_null;try
{customerValue=cellFormatter.Parse(text)}catch(ex){}return(customerValue===keyword_undefined||customerValue===keyword_null)?text:customerValue}else if(autoFormat){var aValRef={};var autoDisplayFormatter=keyword_null;try
{autoDisplayFormatter=(new spread.GeneralFormatter).GetPreferredDisplayFormatter(text,aValRef)}catch(ex){}var af=keyword_null;if(cellFormatter&&cellFormatter instanceof spread.AutoFormatter&&aValRef.value!==keyword_null&&autoDisplayFormatter&&autoDisplayFormatter.FormatString()!=="General"){af=new spread.AutoFormatter(autoDisplayFormatter)}else if(!cellFormatter&&autoDisplayFormatter){af=new spread.AutoFormatter(autoDisplayFormatter)}if(af){var storedStyle=self._sheet.getStyleObject(row,col),isNamedStyle=(typeof(storedStyle)==='string');if(!storedStyle||isNamedStyle){var newStyle=new spread.Style;if(isNamedStyle){newStyle.parentName=storedStyle}storedStyle=newStyle}storedStyle._autoFormatter=af;self._sheet.setStyle(row,col,storedStyle)}return(aValRef.hasOwnProperty("value")&&aValRef.value!==keyword_undefined&&aValRef.value!==keyword_null)?aValRef.value:text}else
{return text}};return CellEditUndoAction})(ActionBase);UndoRedo.CellEditUndoAction=CellEditUndoAction;var SheetRenameUndoAction=(function(_super){__extends(SheetRenameUndoAction,_super);function SheetRenameUndoAction(sheet,newName){_super.call(this);this._sheet=sheet;this._newName=newName;this._oldName=keyword_null}SheetRenameUndoAction.prototype.canUndo=function(){return!!this._oldName};SheetRenameUndoAction.prototype.canExecute=function(arg){var self=this;return self._sheet&&self._newName&&self._newName!==self._oldName};SheetRenameUndoAction.prototype.execute=function(arg){var self=this;var sheet=self._sheet;if(sheet&&self._newName&&self._newName!==self._oldName){self.saveState();self._suspendInvalidate(arg);sheet._name=self._newName;self._resumeInvalidate(arg);sheet._refreshTabStrip()}};SheetRenameUndoAction.prototype.saveState=function(){if(this._sheet){this._oldName=this._sheet._name}};SheetRenameUndoAction.prototype.undo=function(arg){var self=this;var sheet=self._sheet;if(sheet){self._suspendInvalidate(arg);sheet._name=self._oldName;self._resumeInvalidate(arg);sheet._refreshTabStrip();return true}return false};return SheetRenameUndoAction})(ActionBase);UndoRedo.SheetRenameUndoAction=SheetRenameUndoAction;var ZoomUndoAction=(function(_super){__extends(ZoomUndoAction,_super);function ZoomUndoAction(sheet,newZoomFactor){_super.call(this);this._sheet=sheet;if(newZoomFactor<0.25){newZoomFactor=0.25}else if(newZoomFactor>4){newZoomFactor=4}this._zoomFactor=newZoomFactor;this._prevZoomFactor=-1}ZoomUndoAction.prototype.canExecute=function(arg){var self=this;return self._sheet&&self._sheet.parent._allowUserZoom&&self._sheet._zoomFactor!==self._zoomFactor};ZoomUndoAction.prototype.execute=function(arg){var self=this;var sheet=self._sheet;self.saveState();if(sheet&&(!sheet.parent||sheet.parent._allowUserZoom===true)&&sheet._zoomFactor!==self._zoomFactor){if(sheet.isEditing()===true){sheet.endEdit()}self._suspendInvalidate(arg);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);sheet.zoom(self._zoomFactor);sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}}};ZoomUndoAction.prototype.canUndo=function(){return this._sheet&&this._prevZoomFactor>0};ZoomUndoAction.prototype.saveState=function(){if(this._sheet){this._prevZoomFactor=this._sheet._zoomFactor}};ZoomUndoAction.prototype.undo=function(arg){var self=this;var sheet=self._sheet;if(sheet){self._suspendInvalidate(arg);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);sheet.zoom(self._prevZoomFactor);sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(arg);if(!repained){sheet.invalidateLayout();sheet.repaint()}return true}return false};return ZoomUndoAction})(ActionBase);UndoRedo.ZoomUndoAction=ZoomUndoAction;var CellValueEntry=(function(){function CellValueEntry(value,formulaInfo){this.value=value;this.formulaInfo=formulaInfo}return CellValueEntry})();var ClearRangeValueUndoAction=(function(_super){__extends(ClearRangeValueUndoAction,_super);function ClearRangeValueUndoAction(sheet,clearRange){_super.call(this);this._cachedFormulaInfos=[];this._eventNS=".clearRangeAction";var self=this;self._sheet=sheet;self._clearRange=clearRange;self._cachedFilteredColumns=keyword_null;self._cachedValues=keyword_null;self._cachedTables=keyword_null}ClearRangeValueUndoAction.prototype.execute=function(arg){var self=this;self.saveState();var sheet=self._sheet;if(sheet){var range=sheet._getActualRange(self._clearRange);if(range.colCount>0&&range.rowCount>0){try
{sheet._bind(spread.Events.CellChanged+self._eventNS,function(event,data){if(data.propertyName==="value"){sheet._trigger(spread.Events.ValueChanged,{sheet:data.sheet,sheetName:data.sheetName,row:data.row,col:data.col})}});var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);sheet.suspendEvent();sheet.clear(range.row,range.col,range.rowCount,range.colCount,3,1);sheet.resumeEvent();sheet.isPaintSuspended(oldState);CopyMoveHelper.raiseRangeDataChanged(sheet,range.row,range.col,range.rowCount,range.colCount)}finally
{self._sheet._unbind(spread.Events.CellChanged+self._eventNS)}}}};ClearRangeValueUndoAction.prototype.canExecute=function(arg){var sheet=this._sheet;var range=this._clearRange;return!(sheet.isProtected===true&&sheet._isAnyCellInRangeLocked(range))&&sheet._checkArrayFormula(range.row,range.col,range.rowCount,range.colCount)};ClearRangeValueUndoAction.prototype.canUndo=function(){return!!this._cachedValues};ClearRangeValueUndoAction.prototype.saveState=function(){var self=this;var sheet=self._sheet;if(sheet){self._cachedTables=[];var tables=sheet.getTables();if(tables&&tables.length>0){for(var i=0;i<tables.length;i++){var tb=tables[i];if(self._clearRange.containsRange(tb.range())){self._cachedTables.push(tb)}}}self._cachedFilteredColumns=[];var rowFilter=sheet.rowFilter(),row,column;if(rowFilter&&rowFilter.range&&rowFilter.isFiltered()){row=rowFilter.range.row;var rowCount=rowFilter.range.rowCount;if(rowFilter.showFilterButton){row=rowFilter.range.row-1;rowCount=rowFilter.range.rowCount+1;if(row<0){row=-1;rowCount=-1}}if((self._clearRange.row===-1||(self._clearRange.row<=row&&row+rowCount<=self._clearRange.row+self._clearRange.rowCount))&&(self._clearRange.col===-1||(self._clearRange.col<=rowFilter.range.col&&rowFilter.range.col+rowFilter.range.colCount<=self._clearRange.col+self._clearRange.colCount))){column=rowFilter.range.col<0?0:rowFilter.range.col;var columnCount=rowFilter.range.colCount<0?sheet.getColumnCount():rowFilter.range.colCount;for(var c=0;c<columnCount;c++){if(rowFilter.isColumnFiltered(column+c)){self._cachedFilteredColumns.push(column+c)}}}}var range=sheet._getActualRange(self._clearRange);if(range.colCount>0&&range.rowCount>0){self._cachedValues=[range.row+range.rowCount];for(var i=0;i<range.rowCount;i++){self._cachedValues[range.row+i]=[range.col+range.colCount];self._cachedFormulaInfos[range.row+i]=[];for(var j=0;j<range.colCount;j++){row=range.row+i;column=range.col+j;var formulaInfo=sheet.getFormulaInformation(row,column);if(formulaInfo.hasFormula){if(!formulaInfo.isArrayFormula||formulaInfo.baseRange.row===row&&formulaInfo.baseRange.col===column){self._cachedValues[row][column]=new CellValueEntry(formulaInfo.formula,formulaInfo)}else
{self._cachedValues[row][column]=-1}}else
{var value=sheet.getValue(row,column);if(value!==keyword_undefined&&value!==keyword_null){self._cachedValues[row][column]=new CellValueEntry(value,keyword_undefined)}}}}}}};ClearRangeValueUndoAction.prototype.undo=function(arg){var self=this;var sheet=self._sheet;if(sheet){var ret=false,i;if(self._cachedTables&&self._cachedTables.length>0){var tables=self._cachedTables,count=tables.length;for(i=0;i<count;i++){sheet._addTableInternal(tables[i])}}var range=sheet._getActualRange(self._clearRange);if(self._cachedValues&&range.colCount>0&&range.rowCount>0){try
{sheet._bind(spread.Events.CellChanged+self._eventNS,function(event,data){if(data.propertyName==="value"){sheet._trigger(spread.Events.ValueChanged,{sheet:data.sheet,sheetName:data.sheetName,row:data.row,col:data.col})}});var rc=range.rowCount;var cc=range.colCount;var oldAutoRefresh=sheet.isPaintSuspended();sheet.isPaintSuspended(true);sheet.suspendEvent();for(i=0;i<rc;i++){for(var j=0;j<cc;j++){var row=range.row+i;var column=range.col+j;var entry=self._cachedValues[row][column];if(entry===-1){continue}else if(entry){if(entry.formulaInfo){var formulaInfo=entry.formulaInfo;if(formulaInfo&&formulaInfo.isArrayFormula){sheet.setArrayFormula(row,column,formulaInfo.baseRange.rowCount,formulaInfo.baseRange.colCount,formulaInfo.formula)}else
{sheet.setFormula(row,column,entry.value)}}else
{sheet.setFormula(row,column,keyword_null);sheet.setValue(row,column,entry.value)}}else
{sheet.setFormula(row,column,keyword_null);sheet.setValue(row,column,keyword_null)}}}sheet.resumeEvent();sheet.isPaintSuspended(oldAutoRefresh);CopyMoveHelper.raiseRangeDataChanged(sheet,range.row,range.col,range.rowCount,range.colCount);ret=true}finally
{sheet._unbind(spread.Events.CellChanged+self._eventNS)}}var filter=sheet.rowFilter();if(filter&&self._cachedFilteredColumns&&self._cachedFilteredColumns.length>0){for(i=0;i<self._cachedFilteredColumns.length;i++){var col=self._cachedFilteredColumns[i];filter.filter(col)}}if(ret){sheet.repaint();return true}}return false};return ClearRangeValueUndoAction})(ActionBase);UndoRedo.ClearRangeValueUndoAction=ClearRangeValueUndoAction;var ClearValueUndoAction=(function(_super){__extends(ClearValueUndoAction,_super);function ClearValueUndoAction(sheet,ranges){_super.call(this);this._cachedActions=[];var self=this;self._sheet=sheet;self._cachedActions=keyword_null;if(ranges&&ranges.length>0){self._cachedActions=new Array;for(var i=0;i<ranges.length;i++){self._cachedActions[i]=new ClearRangeValueUndoAction(sheet,ranges[i])}}}ClearValueUndoAction.prototype.canExecute=function(arg){if(this._cachedActions){for(var i=0;i<this._cachedActions.length;i++){var item=this._cachedActions[i];if(!item.canExecute(arg)){return false}}return true}return false};ClearValueUndoAction.prototype.execute=function(arg){var self=this;self.saveState();if(self._cachedActions){self._suspendInvalidate(arg);for(var i=0;i<self._cachedActions.length;i++){var item=self._cachedActions[i];item.execute(arg)}var repained=self._resumeInvalidate(arg);if(!repained){self._sheet.invalidateLayout();self._sheet.repaint()}}};ClearValueUndoAction.prototype.canUndo=function(){if(this._cachedActions){for(var i=0;i<this._cachedActions.length;i++){var item=this._cachedActions[i];if(!item.canUndo()){return false}}return true}return false};ClearValueUndoAction.prototype.saveState=function(){if(this._cachedActions){for(var i=0;i<this._cachedActions.length;i++){var item=this._cachedActions[i];item.saveState()}}};ClearValueUndoAction.prototype.undo=function(arg){var self=this;if(self._cachedActions){for(var i=self._cachedActions.length-1;i>=0;i--){var action=self._cachedActions[i];self._suspendInvalidate(arg);var ret=action.undo(arg);var repained=self._resumeInvalidate(arg);if(!ret){return false}else
{if(!repained){self._sheet.invalidateLayout();self._sheet.repaint()}}}return true}return false};return ClearValueUndoAction})(ActionBase);UndoRedo.ClearValueUndoAction=ClearValueUndoAction;var DragFillUndoAction=(function(_super){__extends(DragFillUndoAction,_super);function DragFillUndoAction(sheet,dragFillExtent){_super.call(this);var self=this;self._workSheet=sheet;self._dragFillExtent=dragFillExtent;if(self._dragFillExtent.autoFillType===4){self._clearValueUndoAction=new ClearValueUndoAction(sheet,[self._dragFillExtent.fillRange])}else
{self.initWholeFilledRange()}if(self._dragFillExtent.fillDirection===0||self._dragFillExtent.fillDirection===1){self._fillSeries=1}else
{self._fillSeries=0}}DragFillUndoAction.prototype.canExecute=function(arg){var self=this;var sheet=self._workSheet;var dragExtent=self._dragFillExtent;if(sheet.isProtected&&sheet._isAnyCellInRangeLocked(dragExtent.fillRange)){return false}if(!sheet._checkArrayFormula(dragExtent.fillRange.row,dragExtent.fillRange.col,dragExtent.fillRange.rowCount,dragExtent.fillRange.colCount)){return false}if(this._dragFillExtent.autoFillType===4){return this.canExecuteDragClear()}else
{return this.canExecuteDragFill()}};DragFillUndoAction.prototype.canExecuteDragClear=function(){return true};DragFillUndoAction.prototype.canExecuteDragFill=function(){var startRange=this._dragFillExtent.startRange;var fillRange=this._dragFillExtent.fillRange;return!fillRange.intersect(startRange.row,startRange.col,startRange.rowCount,startRange.colCount)};DragFillUndoAction.prototype.execute=function(arg){var self=this;if(self.canExecute(arg)){var sheet=self._workSheet;var oldSelections=sheet.getSelections()?sheet.getSelections().toArray():keyword_null;var repained=false;try
{self._suspendInvalidate(sheet);sheet.suspendCalcService();sheet.suspendEvent();self.saveState();var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);if(self._dragFillExtent.autoFillType===4){self.executeDragFillClear(sheet)}else
{self.executeDragFill(sheet)}}finally
{sheet.isPaintSuspended(oldState);sheet.resumeCalcService();sheet.resumeEvent();if(self._savedFilledViewportCells&&self._savedFilledViewportCells.isValueSaved()){var fillRange=self._dragFillExtent.fillRange;CopyMoveHelper.raiseRangeDataChanged(sheet,fillRange.row,fillRange.col,fillRange.rowCount,fillRange.colCount,self._savedFilledViewportCells.getValues())}var newSelections=sheet.getSelections()?sheet.getSelections().toArray():keyword_null;if(sheet._raiseSelectionChanging(oldSelections,newSelections)){sheet._raiseSelectionChanged()}repained=self._resumeInvalidate(sheet)}if(!repained){sheet.invalidateLayout();sheet.repaint()}}};DragFillUndoAction.prototype.executeDragFillClear=function(sheetView){var self=this;self._clearValueUndoAction.execute(sheetView);var startRange=self._dragFillExtent.startRange;var clearRange=self._dragFillExtent.fillRange;if(!startRange.equals(clearRange)){var newRange;if(self._fillSeries===0){newRange=new spread.Range(startRange.row,startRange.col,Math_max(1,startRange.rowCount-clearRange.rowCount),startRange.colCount);sheetView._setActiveCellImp(Math_max(sheetView._getFirstVisualRow(),newRange.row),Math_max(sheetView._getFirstVisualColumn(),newRange.col),sheetView.activeRowViewportIndex,sheetView.activeColViewportIndex);sheetView._clearSelectionImp();sheetView.addSelection(newRange.row,newRange.col,newRange.rowCount,newRange.colCount)}else
{newRange=new spread.Range(startRange.row,startRange.col,startRange.rowCount,Math_max(1,startRange.colCount-clearRange.colCount));sheetView._setActiveCellImp(Math_max(sheetView._getFirstVisualRow(),newRange.row),Math_max(sheetView._getFirstVisualColumn(),newRange.col),sheetView.activeRowViewportIndex,sheetView.activeColViewportIndex);sheetView._clearSelectionImp();sheetView.addSelection(newRange.row,newRange.col,newRange.rowCount,newRange.colCount)}}};DragFillUndoAction.prototype.executeDragFill=function(sheetView){var self=this;var sheet=self._workSheet;var startRange=self._dragFillExtent.startRange;var fillRange=self._dragFillExtent.fillRange;var r,c;if(self._dragFillExtent.autoFillType===1){self.clearData(fillRange,true);sheet.fillAuto(startRange,self._wholeFillRange,self._fillSeries)}else if(self._dragFillExtent.autoFillType===0){var copyToWithoutCommentOption=1023^4;self.copyCells(startRange,fillRange,copyToWithoutCommentOption)}else if(self._dragFillExtent.autoFillType===2){self.copyCells(startRange,fillRange,64)}else if(self._dragFillExtent.autoFillType===3){self.clearData(fillRange,true);var isDragSingleCell=(startRange.rowCount===1&&startRange.colCount===1)&&!(startRange.row===-1&&startRange.col!==-1)&&!(startRange.col===-1&&startRange.row!==-1);if(isDragSingleCell){var noStyleOption=2|8|32|16|128|1;self.copyCells(startRange,fillRange,noStyleOption)}else
{var fixedRange=self.adjustRange(self._wholeFillRange);var savedStyle=new spread._GcSheetModel(fixedRange.rowCount,fixedRange.colCount,keyword_null);for(r=0;r<fixedRange.rowCount;r++){for(c=0;c<fixedRange.colCount;c++){savedStyle.setStyle(r,c,CopyMoveHelper.getStyleObject(self._workSheet,fixedRange.row+r,fixedRange.col+c,3))}}sheet.fillAuto(startRange,self._wholeFillRange,self._fillSeries);for(r=0;r<fixedRange.rowCount;r++){for(c=0;c<fixedRange.colCount;c++){CopyMoveHelper.setStyleObject(self._workSheet,fixedRange.row+r,fixedRange.col+c,3,savedStyle.getStyle(r,c))}}}}sheet._setActiveCellImp(Math_max(sheetView._getFirstVisualRow(),self._wholeFillRange.row),Math_max(sheetView._getFirstVisualColumn(),self._wholeFillRange.col),sheetView.activeRowViewportIndex,sheetView.activeColViewportIndex);if(sheetView._selectionModel){sheetView._clearSelectionImp()}sheet.addSelection(self._wholeFillRange.row,self._wholeFillRange.col,self._wholeFillRange.rowCount,self._wholeFillRange.colCount)};DragFillUndoAction.prototype.clearData=function(cellRange,ignoreFilteredOutRow){var allStorages=1;this._workSheet.clearCore(cellRange.row,cellRange.col,cellRange.rowCount,cellRange.colCount,3,allStorages,ignoreFilteredOutRow)};DragFillUndoAction.prototype.adjustRange=function(range){var row=range.row!==-1?range.row:0;var column=range.col!==-1?range.col:0;var rowCount=range.rowCount!==-1?range.rowCount:this._workSheet.getRowCount();var columnCount=range.colCount!==-1?range.colCount:this._workSheet.getColumnCount();return new spread.Range(row,column,rowCount,columnCount)};DragFillUndoAction.prototype.copyCells=function(fromRange,toRange,copyOption){var self=this;var sheet=self._workSheet;var adjustedFromRange=self.adjustRange(fromRange);var adjustedToRange=self.adjustRange(toRange);var i,fromRow,fromColumn,toRow,toColumn,bottomRow,rowCount,columnCount;if(self._fillSeries===0){var rows=Math_floor(adjustedToRange.rowCount/adjustedFromRange.rowCount);for(i=0;i<rows;i++){fromRow=adjustedFromRange.row;fromColumn=adjustedFromRange.col;if(self._dragFillExtent.fillDirection===3){toRow=adjustedToRange.row+i*adjustedFromRange.rowCount}else
{bottomRow=adjustedToRange.row+adjustedToRange.rowCount;toRow=bottomRow-(i+1)*adjustedFromRange.rowCount}toColumn=adjustedToRange.col;rowCount=adjustedFromRange.rowCount;columnCount=adjustedFromRange.colCount;sheet.copyToCore(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount,copyOption,true)}var lastCopyRows=adjustedToRange.rowCount%adjustedFromRange.rowCount;if(lastCopyRows!==0){if(self._dragFillExtent.fillDirection===3){fromRow=adjustedFromRange.row}else
{var lastRow=adjustedFromRange.rowCount-(adjustedToRange.rowCount-adjustedFromRange.rowCount*rows);fromRow=adjustedFromRange.row+lastRow}fromColumn=adjustedFromRange.col;if(self._dragFillExtent.fillDirection===3){toRow=adjustedToRange.row+adjustedFromRange.rowCount*rows}else
{bottomRow=adjustedToRange.row+adjustedToRange.rowCount;toRow=bottomRow-rows*adjustedFromRange.rowCount-lastCopyRows}toColumn=adjustedToRange.col;rowCount=lastCopyRows;columnCount=adjustedFromRange.colCount;sheet.copyToCore(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount,copyOption,true)}}else
{var columns=Math_floor(adjustedToRange.colCount/adjustedFromRange.colCount);for(i=0;i<columns;i++){fromRow=adjustedFromRange.row;fromColumn=adjustedFromRange.col;toRow=adjustedToRange.row;if(self._dragFillExtent.fillDirection===1){toColumn=adjustedToRange.col+i*adjustedFromRange.colCount}else
{var bottomColumn=adjustedToRange.col+adjustedToRange.colCount;toColumn=bottomColumn-(i+1)*adjustedFromRange.colCount}rowCount=adjustedFromRange.rowCount;columnCount=adjustedFromRange.colCount;sheet.copyToCore(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount,copyOption,true)}var lastCopyColumns=adjustedToRange.colCount%adjustedFromRange.colCount;if(lastCopyColumns!==0){fromRow=adjustedFromRange.row;if(self._dragFillExtent.fillDirection===1){fromColumn=adjustedFromRange.col}else
{var lastColumn=adjustedFromRange.colCount-(adjustedToRange.colCount-adjustedFromRange.colCount*columns);fromColumn=adjustedFromRange.col+lastColumn}toRow=adjustedToRange.row;if(self._dragFillExtent.fillDirection===1){toColumn=adjustedToRange.col+adjustedFromRange.colCount*columns}else
{var leftColumn=adjustedToRange.col+adjustedToRange.colCount;toColumn=leftColumn-columns*adjustedFromRange.colCount-lastCopyColumns}rowCount=adjustedFromRange.rowCount;columnCount=lastCopyColumns;sheet.copyToCore(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount,copyOption,true)}}};DragFillUndoAction.prototype.saveState=function(){if(this._dragFillExtent.autoFillType===4){this.saveDragClearState()}else
{this.saveDragFillState()}};DragFillUndoAction.prototype.saveDragClearState=function(){this._clearValueUndoAction.saveState()};DragFillUndoAction.prototype.saveDragFillState=function(){var self=this;self._savedFilledViewportCells=self.saveRangeStates(self._dragFillExtent.fillRange);self._savedStartViewportCells=self.saveRangeStates(self._dragFillExtent.startRange)};DragFillUndoAction.prototype.saveRangeStates=function(range){var savedRange=this.adjustRange(range);var savedCellsInfo=new CopyMoveCellsInfo(savedRange.rowCount,savedRange.colCount);CopyMoveHelper.saveViewportInfo(this._workSheet,savedCellsInfo,savedRange.row,savedRange.col,1023);return savedCellsInfo};DragFillUndoAction.prototype.undo=function(arg){var self=this;var sheet=self._workSheet;var result=false;var repained=false;try
{self._suspendInvalidate(sheet);sheet.suspendCalcService();var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);result=self._undo(sheet)}finally
{sheet.isPaintSuspended(oldState);sheet.resumeCalcService();repained=self._resumeInvalidate(sheet)}if(!repained){sheet.invalidateLayout();sheet.repaint()}return result};DragFillUndoAction.prototype._undo=function(sheet){var self=this;var result;var oldSelections=sheet.getSelections()?sheet.getSelections().toArray():keyword_null;var filledRangeCellValues=keyword_null;var fillRange=self._dragFillExtent.fillRange;if(self._savedFilledViewportCells&&self._savedFilledViewportCells.isValueSaved()){filledRangeCellValues=CopyMoveHelper.getValues(self._workSheet,fillRange.row,fillRange.col,fillRange.rowCount,fillRange.colCount)}if(self._dragFillExtent.autoFillType===4){result=self.undoDragClear(sheet)}else
{result=self.undoDragFill(sheet)}if(sheet._skipCloseDragFillSmartTag!==true){sheet._closeDragFillPopup()}if(filledRangeCellValues){CopyMoveHelper.raiseRangeDataChanged(sheet,fillRange.row,fillRange.col,fillRange.rowCount,fillRange.colCount,filledRangeCellValues)}var newSelections=sheet.getSelections()?sheet.getSelections().toArray():keyword_null;if(sheet._raiseSelectionChanging(oldSelections,newSelections)){sheet._raiseSelectionChanged()}return result};DragFillUndoAction.prototype.undoDragClear=function(sheet){var self=this;var result=self._clearValueUndoAction.undo(sheet);sheet._setActiveCellImp(Math_max(sheet._getFirstVisualRow(),self._dragFillExtent.startRange.row),Math_max(sheet._getFirstVisualColumn(),self._dragFillExtent.startRange.col),sheet.activeRowViewportIndex,sheet.activeColViewportIndex);sheet._clearSelectionImp();sheet.addSelection(self._dragFillExtent.startRange.row,self._dragFillExtent.startRange.col,self._dragFillExtent.startRange.rowCount,self._dragFillExtent.startRange.colCount);return result};DragFillUndoAction.prototype.undoDragFill=function(sheet){var self=this;self._suspendInvalidate(sheet);sheet.suspendCalcService();try
{self.undoRangeStates(self._savedFilledViewportCells,self._dragFillExtent.fillRange);self.undoRangeStates(self._savedStartViewportCells,self._dragFillExtent.startRange);sheet._setActiveCellImp(Math_max(sheet._getFirstVisualRow(),self._dragFillExtent.startRange.row),Math_max(sheet._getFirstVisualColumn(),self._dragFillExtent.startRange.col),sheet.activeRowViewportIndex,sheet.activeColViewportIndex);sheet._clearSelectionImp();sheet.addSelection(self._dragFillExtent.startRange.row,self._dragFillExtent.startRange.col,self._dragFillExtent.startRange.rowCount,self._dragFillExtent.startRange.colCount)}finally
{sheet.resumeCalcService();self._resumeInvalidate(sheet)}sheet.invalidateLayout();return true};DragFillUndoAction.prototype.undoRangeStates=function(savedInfo,range){var savedRange=this.adjustRange(range);CopyMoveHelper.undoCellsInfo(this._workSheet,savedInfo,savedRange.row,savedRange.col,3)};DragFillUndoAction.prototype.initWholeFilledRange=function(){var self=this;var row=0,rowCount=0,column=0,columnCount=0;var direction=self._dragFillExtent.fillDirection;var startRange=self._dragFillExtent.startRange;var fillRange=self._dragFillExtent.fillRange;if(direction===0||direction===1){row=startRange.row;rowCount=startRange.rowCount;column=direction===0?fillRange.col:startRange.col;columnCount=startRange.colCount+fillRange.colCount}else
{row=direction===2?fillRange.row:startRange.row;rowCount=startRange.rowCount+fillRange.rowCount;column=startRange.col;columnCount=startRange.colCount}self._wholeFillRange=new spread.Range(row,column,rowCount,columnCount)};return DragFillUndoAction})(ActionBase);UndoRedo.DragFillUndoAction=DragFillUndoAction;var ClipboardPasteRangeUndoAction=(function(_super){__extends(ClipboardPasteRangeUndoAction,_super);function ClipboardPasteRangeUndoAction(sheet,srcSheet,destSheet,pasteExtent,option,istyle){_super.call(this);var self=this;self._sheet=sheet;self._fromSheet=srcSheet;self._toSheet=destSheet;self._pasteExtent=pasteExtent;self._pasteOption=option;self._istyle=istyle;}ClipboardPasteRangeUndoAction.prototype.canUndo=function(){return true};ClipboardPasteRangeUndoAction.prototype.canExecute=function(arg){var sheet=this._sheet;var target=this._pasteExtent.targetRange;var source=this._pasteExtent.sourceRange;return!(sheet.isProtected&&sheet._isAnyCellInRangeLocked(target))&&sheet._checkArrayFormula(target.row,target.col,target.rowCount,target.colCount)&&(!this._pasteExtent.isCutting||!(sheet.isProtected&&sheet._isAnyCellInRangeLocked(source))&&sheet._checkArrayFormula(source.row,source.col,source.rowCount,source.colCount))};ClipboardPasteRangeUndoAction.prototype.saveState=function(){var self=this;self.initSaveState();var isCutting=self._pasteExtent.isCutting;var option=ClipboardPasteRangeUndoAction.convertPasteOption(self._pasteOption);var fromRange=self._pasteExtent.sourceRange;var toRange=self._pasteExtent.targetRange;if(self._fromSheet&&fromRange&&isCutting){var fromRow=fromRange.row<0?0:fromRange.row;var fromColumn=fromRange.col<0?0:fromRange.col;var fromRowCount=fromRange.row<0?self._fromSheet.getRowCount():fromRange.rowCount;var fromColumnCount=fromRange.col<0?self._fromSheet.getColumnCount():fromRange.colCount;if(fromRange.row<0&&fromRange.col<0&&toRange.row<0&&toRange.col<0){if(self._fromSheet._name!==self._toSheet._name){var fromSheetInfo=new CopyMoveSheetInfo;CopyMoveHelper.saveSheetInfo(self._fromSheet,fromSheetInfo,option);self._savedFromSheetInfo=fromSheetInfo}}if(fromRange.row<0){var fromColumnHeaderCellsInfo=new CopyMoveCellsInfo(self._fromSheet.getRowCount(1),fromColumnCount);var fromColumnsInfo=new CopyMoveColumnsInfo(fromColumnCount);CopyMoveHelper.saveColumnHeaderInfo(self._fromSheet,fromColumnHeaderCellsInfo,fromColumnsInfo,fromColumn,option);self._savedFromColumnHeaderCells=fromColumnHeaderCellsInfo;self._savedFromColumns=fromColumnsInfo}if(fromRange.col<0){var fromRowHeaderCellsInfo=new CopyMoveCellsInfo(fromRowCount,self._fromSheet.getColumnCount(2));var fromRowsInfo=new CopyMoveRowsInfo(fromRowCount);CopyMoveHelper.saveRowHeaderInfo(self._fromSheet,fromRowHeaderCellsInfo,fromRowsInfo,fromRow,option);self._savedFromRowHeaderCells=fromRowHeaderCellsInfo;self._savedFromRows=fromRowsInfo}var fromViewportCellsInfo=new CopyMoveCellsInfo(fromRowCount,fromColumnCount);CopyMoveHelper.saveViewportInfo(self._fromSheet,fromViewportCellsInfo,fromRow,fromColumn,option);self._savedFromViewportCells=fromViewportCellsInfo}var toRow=toRange.row<0?0:toRange.row;var toColumn=toRange.col<0?0:toRange.col;var toRowCount=toRange.row<0?self._toSheet.getRowCount():toRange.rowCount;var toColumnCount=toRange.col<0?self._toSheet.getColumnCount():toRange.colCount;if(self._fromSheet&&fromRange){if(fromRange.row<0&&fromRange.col<0&&toRange.row<0&&toRange.col<0){if(self._fromSheet._name!==self._toSheet._name){var toSheetInfo=new CopyMoveSheetInfo;CopyMoveHelper.saveSheetInfo(self._toSheet,toSheetInfo,option);self._savedToSheetInfo=toSheetInfo}}if(fromRange.row<0){var toColumnHeaderCellsInfo=new CopyMoveCellsInfo(self._toSheet.getRowCount(1),toColumnCount);var toColumnsInfo=new CopyMoveColumnsInfo(toColumnCount);CopyMoveHelper.saveColumnHeaderInfo(self._toSheet,toColumnHeaderCellsInfo,toColumnsInfo,toColumn,option);self._savedToColumnHeaderCells=toColumnHeaderCellsInfo;self._savedToColumns=toColumnsInfo}if(fromRange.col<0){var toRowHeaderCellsInfo=new CopyMoveCellsInfo(toRowCount,self._toSheet.getColumnCount(2));var toRowsInfo=new CopyMoveRowsInfo(toRowCount);CopyMoveHelper.saveRowHeaderInfo(self._toSheet,toRowHeaderCellsInfo,toRowsInfo,toRow,option);self._savedToRowHeaderCells=toRowHeaderCellsInfo;self._savedToRows=toRowsInfo}}var toViewportCellsInfo=new CopyMoveCellsInfo(toRowCount,toColumnCount);CopyMoveHelper.saveViewportInfo(self._toSheet,toViewportCellsInfo,toRow,toColumn,option);self._savedToViewportCells=toViewportCellsInfo};ClipboardPasteRangeUndoAction.prototype.initSaveState=function(){var self=this;self._savedFromSheetInfo=keyword_null;self._savedFromColumnHeaderCells=keyword_null;self._savedFromColumns=keyword_null;self._savedFromViewportCells=keyword_null;self._savedFromRowHeaderCells=keyword_null;self._savedFromRows=keyword_null;self._savedToSheetInfo=keyword_null;self._savedToColumnHeaderCells=keyword_null;self._savedToColumns=keyword_null;self._savedToViewportCells=keyword_null;self._savedToRowHeaderCells=keyword_null;self._savedToRows=keyword_null};ClipboardPasteRangeUndoAction.prototype.pasteOption=function(){return this._pasteOption};ClipboardPasteRangeUndoAction.prototype.pasteRange=function(){return this._pasteExtent.targetRange};ClipboardPasteRangeUndoAction.prototype.execute=function(sender){var self=this;var fromRange=self._pasteExtent.sourceRange;var toRange=self._pasteExtent.targetRange;if(self._fromSheet&&fromRange&&!self._fromSheet._isValidRange(fromRange.row,fromRange.col,fromRange.rowCount,fromRange.colCount,self._fromSheet.getRowCount(),self._fromSheet.getColumnCount())){return}if(!(self._toSheet&&toRange&&self._toSheet._isValidRange(toRange.row,toRange.col,toRange.rowCount,toRange.colCount,self._toSheet.getRowCount(),self._toSheet.getColumnCount()))){return}self.saveState();self._suspendInvalidate(sender);self._toSheet.suspendEvent();if(self._fromSheet){self._fromSheet.suspendEvent()}try
{self._toSheet._clipboardPaste(self._fromSheet,fromRange,self._toSheet,toRange,self._pasteExtent.isCutting,self._pasteExtent.clipboardText,self._pasteOption,self._istyle)}finally
{self._toSheet.resumeEvent();if(self._fromSheet){self._fromSheet.resumeEvent()}self._resumeInvalidate(sender);var sheet=self._sheet;if(sheet){if(self._pasteExtent.isCutting&&self._savedFromViewportCells&&self._savedFromViewportCells.isValueSaved()&&self._fromSheet){CopyMoveHelper.raiseRangeDataChanged(self._fromSheet,fromRange.row,fromRange.col,fromRange.rowCount,fromRange.colCount,self._savedFromViewportCells.getValues())}if(self._savedToViewportCells&&self._savedToViewportCells.isValueSaved()&&self._toSheet){CopyMoveHelper.raiseRangeDataChanged(self._toSheet,toRange.row,toRange.col,toRange.rowCount,toRange.colCount,self._savedToViewportCells.getValues())}}}};ClipboardPasteRangeUndoAction.prototype.undo=function(sender){var self=this;var fromRange=self._pasteExtent.sourceRange;var toRange=self._pasteExtent.targetRange;if(!self._toSheet||!toRange){return false}if(!self._toSheet._isValidRange(toRange.row,toRange.col,toRange.rowCount,toRange.colCount,self._toSheet.getRowCount(),self._toSheet.getColumnCount())){return false}if(self._fromSheet&&fromRange){if(!self._fromSheet._isValidRange(fromRange.row,fromRange.col,fromRange.rowCount,fromRange.colCount,self._fromSheet.getRowCount(),self._fromSheet.getColumnCount())){return false}if(self._fromSheet&&self._fromSheet._name===self._toSheet._name&&(self._toSheet.parent&&!self._toSheet.parent.sheets.contains(self._fromSheet))){return false}}self._suspendInvalidate(sender);var ret=false;try
{var oldToValues=keyword_null;var oldFromValues=keyword_null;var toRow=toRange.row<0?0:toRange.row;var toColumn=toRange.col<0?0:toRange.col;var toRowCount=toRange.row<0?self._toSheet.getRowCount():toRange.rowCount;var toColumnCount=toRange.col<0?self._toSheet.getColumnCount():toRange.colCount;if(self._savedToSheetInfo){CopyMoveHelper.undoSheetInfo(self._toSheet,self._savedToSheetInfo);ret=true}if(self._savedToViewportCells&&self._savedToViewportCells.isValueSaved()){oldToValues=CopyMoveHelper.getValues(self._toSheet,toRow,toColumn,toRowCount,toColumnCount)}if(self._savedToColumnHeaderCells){CopyMoveHelper.undoCellsInfo(self._toSheet,self._savedToColumnHeaderCells,0,toColumn,1);ret=true}if(self._savedToColumns){CopyMoveHelper.undoColumnsInfo(self._toSheet,self._savedToColumns,toColumn);ret=true}if(self._savedToViewportCells){CopyMoveHelper.undoCellsInfo(self._toSheet,self._savedToViewportCells,toRow,toColumn,3);ret=true}if(self._savedToRowHeaderCells){CopyMoveHelper.undoCellsInfo(self._toSheet,self._savedToRowHeaderCells,toRow,0,2);ret=true}if(self._savedToRows){CopyMoveHelper.undoRowsInfo(self._toSheet,self._savedToRows,toRow);ret=true}var fromRow=0;var fromColumn=0;var fromRowCount=0;var fromColumnCount=0;if(self._fromSheet&&fromRange){fromRow=fromRange.row<0?0:fromRange.row;fromColumn=fromRange.col<0?0:fromRange.col;fromRowCount=fromRange.row<0?self._fromSheet.getRowCount():fromRange.rowCount;fromColumnCount=fromRange.col<0?self._fromSheet.getColumnCount():fromRange.colCount;if(self._savedFromViewportCells&&self._savedFromViewportCells.isValueSaved()){oldFromValues=CopyMoveHelper.getValues(self._fromSheet,fromRow,fromColumn,fromRowCount,fromColumnCount)}if(self._savedFromColumnHeaderCells){CopyMoveHelper.undoCellsInfo(self._fromSheet,self._savedFromColumnHeaderCells,0,fromColumn,1);ret=true}if(self._savedFromColumns){CopyMoveHelper.undoColumnsInfo(self._fromSheet,self._savedFromColumns,fromColumn);ret=true}if(self._savedFromViewportCells){CopyMoveHelper.undoCellsInfo(self._fromSheet,self._savedFromViewportCells,fromRow,fromColumn,3);ret=true}if(self._savedFromRowHeaderCells){CopyMoveHelper.undoCellsInfo(self._fromSheet,self._savedFromRowHeaderCells,fromRow,0,2);ret=true}if(self._savedFromRows){CopyMoveHelper.undoRowsInfo(self._fromSheet,self._savedFromRows,fromRow);ret=true}}var sheet=sender;if(ret&&sheet){if(oldToValues&&self._toSheet){CopyMoveHelper.raiseRangeDataChanged(self._toSheet,toRow,toColumn,toRowCount,toColumnCount,oldToValues)}if(oldFromValues&&self._fromSheet){CopyMoveHelper.raiseRangeDataChanged(self._fromSheet,fromRow,fromColumn,fromRowCount,fromColumnCount,oldFromValues)}}}finally
{self._resumeInvalidate(sender)}return ret};ClipboardPasteRangeUndoAction.convertPasteOption=function(pasteOption){var copyOption=0;if(pasteOption===0||pasteOption===1){copyOption|=1}if(pasteOption===0||pasteOption===2){copyOption|=64}if(pasteOption===0||pasteOption===3){copyOption|=2}if(pasteOption===0){copyOption|=32;copyOption|=16;copyOption|=256;copyOption|=4;copyOption|=512}return copyOption};return ClipboardPasteRangeUndoAction})(ActionBase);UndoRedo.ClipboardPasteRangeUndoAction=ClipboardPasteRangeUndoAction;var ClipboardPasteUndoAction=(function(_super){__extends(ClipboardPasteUndoAction,_super);function ClipboardPasteUndoAction(sheet,srcSheet,destSheet,pasteExtent,option,istyle){_super.call(this);this._sheet=sheet;if(!destSheet){throw new Error(spread.SR.Exp_DestSheetIsNull);}if(!pasteExtent){throw new Error(spread.SR.Exp_PasteExtentIsNull);}if(pasteExtent.pastedRanges&&pasteExtent.pastedRanges.length>0){this._cachedActions=new Array;for(var i=0;i<pasteExtent.pastedRanges.length;i++){var extent={sourceRange:pasteExtent.fromRange,targetRange:pasteExtent.pastedRanges[i],isCutting:pasteExtent.isCutting,clipboardText:pasteExtent.clipboardText};this._cachedActions[i]=new ClipboardPasteRangeUndoAction(sheet,srcSheet,destSheet,extent,option,istyle)}}}ClipboardPasteUndoAction.prototype.execute=function(sender){var self=this;if(self._cachedActions){var sheetView=self._sheet;self._suspendInvalidate(sheetView);var oldState=sheetView.isPaintSuspended();sheetView.isPaintSuspended(true);try
{for(var i=0;i<self._cachedActions.length;i++){var action=self._cachedActions[i];if(!sheetView){action.execute(sender)}else
{var cancel=sheetView._raiseClipboardPasting(action.pasteRange(),action.pasteOption());if(!cancel){action.execute(sender);sheetView._raiseClipboardPasted(action.pasteRange(),action.pasteOption())}}}self.refreshSelection(sender)}finally
{sheetView.isPaintSuspended(oldState);var repained=self._resumeInvalidate(sheetView);if(!repained){self.refreshUI(sender)}}}};ClipboardPasteUndoAction.prototype.refreshSelection=function(sender){var self=this;var sheetView=self._sheet;if(sheetView){if(self._cachedActions){var oldSelection=sheetView.getSelections().toArray();sheetView._clearSelectionImp();if(self._cachedActions.length>1){for(var i=0;i<self._cachedActions.length;i++){var action=self._cachedActions[i];var range=action.pasteRange();sheetView.addSelection(range.row,range.col,range.rowCount,range.colCount)}}else if(self._cachedActions.length>0){var toRange=self._cachedActions[0].pasteRange();sheetView.addSelection(toRange.row,toRange.col,toRange.rowCount,toRange.colCount);if(!toRange.contains(sheetView._activeRowIndex,sheetView._activeColIndex)){sheetView._setActiveCellImp(Math_max(sheetView._getFirstVisualRow(),toRange.row),Math_max(sheetView._getFirstVisualColumn(),toRange.col),sheetView.activeRowViewportIndex,sheetView.activeColViewportIndex)}}if(sheetView._raiseSelectionChanging(oldSelection,sheetView.getSelections().toArray())){sheetView._raiseSelectionChanged()}}}};ClipboardPasteUndoAction.prototype.refreshUI=function(sender){var sheetView=this._sheet;if(sheetView){sheetView.invalidateLayout();sheetView.repaint()}};ClipboardPasteUndoAction.prototype.canExecute=function(sender){if(this._cachedActions){for(var i=0;i<this._cachedActions.length;i++){var action=this._cachedActions[i];if(!action.canExecute(sender)){return false}}return true}return false};ClipboardPasteUndoAction.prototype.canUndo=function(){if(this._cachedActions){for(var i=0;i<this._cachedActions.length;i++){var action=this._cachedActions[i];if(!action.canUndo()){return false}}return true}return false};ClipboardPasteUndoAction.prototype.saveState=function(){if(this._cachedActions){for(var i=0;i<this._cachedActions.length;i++){var action=this._cachedActions[i];action.saveState()}}};ClipboardPasteUndoAction.prototype.undo=function(sender){var self=this;if(self._cachedActions){var sheet=self._sheet;var ret=true;self._suspendInvalidate(sheet);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);try
{for(var i=0;i<self._cachedActions.length;i++){var action=self._cachedActions[i];ret=(ret&&action.undo(sender))}}finally
{sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(sheet);if(!repained){self.refreshUI(sender)}}return ret}return false};return ClipboardPasteUndoAction})(ActionBase);UndoRedo.ClipboardPasteUndoAction=ClipboardPasteUndoAction;var FloatingObjectUndoActionBase=(function(_super){__extends(FloatingObjectUndoActionBase,_super);function FloatingObjectUndoActionBase(){_super.call(this)}FloatingObjectUndoActionBase.prototype.init=function(sheet,deleteExtent){this._sheet=sheet;this._floatingObjectExtent=deleteExtent;this._savedFloatingObjects=[]};FloatingObjectUndoActionBase.prototype.refreshUI=function(sender){var sheetView=this._sheet;if(sheetView){sheetView.invalidateLayout();sheetView.repaint()}};FloatingObjectUndoActionBase.prototype.canExecute=function(sender){if(this._sheet._hasFloatingObjectsSelected()){return true}return false};FloatingObjectUndoActionBase.prototype.canUndo=function(){if(this._savedFloatingObjects&&this._savedFloatingObjects.length>0){return true}return false};FloatingObjectUndoActionBase.prototype.saveState=function(){var self=this;if(self._floatingObjectExtent&&self._floatingObjectExtent.names instanceof Array){for(var i=0,len=self._floatingObjectExtent.names.length;i<len;i++){var item=self._sheet._findFloatingObjectInternal(self._floatingObjectExtent.names[i]);if(item){self._savedFloatingObjects.push(item)}}}};return FloatingObjectUndoActionBase})(ActionBase);UndoRedo.FloatingObjectUndoActionBase=FloatingObjectUndoActionBase;var DeleteFloatingObjectUndoAction=(function(_super){__extends(DeleteFloatingObjectUndoAction,_super);function DeleteFloatingObjectUndoAction(sheet,deleteExtent){_super.call(this);this.init(sheet,deleteExtent)}DeleteFloatingObjectUndoAction.prototype.execute=function(sender){var self=this;if(spread.features.floatingObject&&self._floatingObjectExtent&&self._floatingObjectExtent.names instanceof Array){self.saveState();var sheet=self._sheet;self._suspendInvalidate(sender);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);for(var i=0,len=self._floatingObjectExtent.names.length;i<len;i++){var item=sheet._findFloatingObjectInternal(self._floatingObjectExtent.names[i]);if(item){sheet._removeFloatingObjectInternal(self._floatingObjectExtent.names[i]);item.isSelected(false)}}sheet._loadAndSetSheetSelections();sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(sender);if(!repained){self.refreshUI(sender)}}};DeleteFloatingObjectUndoAction.prototype.undo=function(sender){var self=this;if(spread.features.floatingObject&&self._savedFloatingObjects&&self._savedFloatingObjects.length>0){var sheet=self._sheet;self._suspendInvalidate(sender);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);for(var i=0,len=self._savedFloatingObjects.length;i<len;i++){var item=self._savedFloatingObjects[i];item.isSelected(true);sheet._addFloatingOjectInternal(item)}sheet._saveAndClearSheetSelections();self._savedFloatingObjects.length=0;sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(sender);if(!repained){self.refreshUI(sender)}return true}return false};return DeleteFloatingObjectUndoAction})(FloatingObjectUndoActionBase);UndoRedo.DeleteFloatingObjectUndoAction=DeleteFloatingObjectUndoAction;var MovingFloatingObjectUndoAction=(function(_super){__extends(MovingFloatingObjectUndoAction,_super);function MovingFloatingObjectUndoAction(sheet,floatingObjectExtent,movingSettings){_super.call(this);this.init(sheet,floatingObjectExtent);this._movingSettings=movingSettings}MovingFloatingObjectUndoAction.prototype.execute=function(sender){var self=this;if(spread.features.floatingObject&&self._floatingObjectExtent&&self._floatingObjectExtent.names instanceof Array){self.saveState();var sheet=self._sheet;self._suspendInvalidate(sender);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);for(var i=0,len=self._floatingObjectExtent.names.length;i<len;i++){var item=sheet._findFloatingObjectInternal(self._floatingObjectExtent.names[i]);var position=item.position();item.position(new spread.Point(position.x+self._movingSettings.offsetX,position.y+self._movingSettings.offsetY))}sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(sender);if(!repained){self.refreshUI(sender)}}};MovingFloatingObjectUndoAction.prototype.undo=function(sender){var self=this;if(spread.features.floatingObject&&self._savedFloatingObjects&&self._savedFloatingObjects.length>0){var sheet=self._sheet;self._suspendInvalidate(sender);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);for(var i=0,len=self._savedFloatingObjects.length;i<len;i++){var item=self._savedFloatingObjects[i];var position=item.position();item.position(new spread.Point(position.x-self._movingSettings.offsetX,position.y-self._movingSettings.offsetY))}self._savedFloatingObjects.length=0;sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(sender);if(!repained){self.refreshUI(sender)}return true}return false};return MovingFloatingObjectUndoAction})(FloatingObjectUndoActionBase);UndoRedo.MovingFloatingObjectUndoAction=MovingFloatingObjectUndoAction;var ResizingFloatingObjectUndoAction=(function(_super){__extends(ResizingFloatingObjectUndoAction,_super);function ResizingFloatingObjectUndoAction(sheet,floatingObjectExtent,resizingSettings){_super.call(this);this.init(sheet,floatingObjectExtent);this._resizingSettings=resizingSettings}ResizingFloatingObjectUndoAction.prototype.execute=function(sender){var self=this;if(spread.features.floatingObject&&self._floatingObjectExtent&&self._floatingObjectExtent.names instanceof Array){self.saveState();var sheet=self._sheet;self._suspendInvalidate(sender);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);for(var i=0,len=self._floatingObjectExtent.names.length;i<len;i++){var item=sheet._findFloatingObjectInternal(self._floatingObjectExtent.names[i]);var position=item.position();item.width(item.width()+self._resizingSettings.offsetWidth);item.height(item.height()+self._resizingSettings.offsetHeight);item.position(new spread.Point(position.x+self._resizingSettings.offsetX,position.y+self._resizingSettings.offsetY))}sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(sender);if(!repained){self.refreshUI(sender)}}};ResizingFloatingObjectUndoAction.prototype.undo=function(sender){var self=this;if(spread.features.floatingObject&&self._savedFloatingObjects&&self._savedFloatingObjects.length>0){var sheet=self._sheet;self._suspendInvalidate(sender);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);for(var i=0,len=self._savedFloatingObjects.length;i<len;i++){var item=self._savedFloatingObjects[i];var position=item.position();item.position(new spread.Point(position.x-self._resizingSettings.offsetX,position.y-self._resizingSettings.offsetY));item.width(item.width()-self._resizingSettings.offsetWidth);item.height(item.height()-self._resizingSettings.offsetHeight)}self._savedFloatingObjects.length=0;sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(sender);if(!repained){self.refreshUI(sender)}return true}return false};return ResizingFloatingObjectUndoAction})(FloatingObjectUndoActionBase);UndoRedo.ResizingFloatingObjectUndoAction=ResizingFloatingObjectUndoAction;var OFFSET=15;var MAX_NUMBER=9007199254740992;var ClipboardPasteFloatingObjectUndoAction=(function(_super){__extends(ClipboardPasteFloatingObjectUndoAction,_super);function ClipboardPasteFloatingObjectUndoAction(sheet,floatingObjectExtent,fromSheet){_super.call(this);this._sheet=keyword_null;this._fromSheet=keyword_null;this._floatingObjectExtent=keyword_null;this._savedObjects=keyword_null;var self=this;self._sheet=sheet;self._fromSheet=fromSheet;self._floatingObjectExtent=floatingObjectExtent;self._savedObjects=[];self._activeRowIndex=self._sheet.getActiveRowIndex();self._activeColumnIndex=self._sheet.getActiveColumnIndex()}ClipboardPasteFloatingObjectUndoAction.prototype.execute=function(sender){var self=this;if(spread.features.floatingObject&&self._floatingObjectExtent&&self._floatingObjectExtent.names&&self._floatingObjectExtent.names.length>0){var sheet=self._sheet,eventHandler=self._fromSheet._eventHandler;self._suspendInvalidate(sender);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);var names=self._floatingObjectExtent.names;var newLocations=[];var i,len;var cutX=MAX_NUMBER;var cutY=MAX_NUMBER;for(i=0,len=names.length;i<len;i++){var position=eventHandler._getClipboardFloatingObjectData().findByPropertyName(names[i]).position();cutX=Math_min(cutX,position.x);cutY=Math_min(cutY,position.y)}var relativePotions=[];for(i=0,len=names.length;i<len;i++){var position=eventHandler._getClipboardFloatingObjectData().findByPropertyName(names[i]).position();relativePotions.push(new spread.Point(position.x-cutX,position.y-cutY))}var pasteX=0;var pasteY=0;if(sheet._hasFloatingObjectsSelected()){var minX=MAX_NUMBER;var minY=MAX_NUMBER;var floatingObjects=sheet._floatingObjectArray;for(i=0,len=floatingObjects.length;i<len;i++){var floatingObject=floatingObjects[i];if(floatingObject&&floatingObject.isSelected()){var position=floatingObject.position();minX=Math_min(minX,position.x);minY=Math_min(minY,position.y);floatingObject.isSelected(false)}}pasteX=(minX<MAX_NUMBER)?minX+OFFSET:0;pasteY=(minY<MAX_NUMBER)?minY+OFFSET:0}else
{for(var row=0;row<self._activeRowIndex;row++){pasteY+=sheet._getActualRowHeight(row,3)}for(var column=0;column<self._activeColumnIndex;column++){pasteX+=sheet._getActualColumnWidth(column,3)}}for(i=0,len=names.length;i<len;i++){var relativePoint=relativePotions[i];newLocations.push(new spread.Point(pasteX+relativePoint.x,pasteY+relativePoint.y))}for(i=0,len=names.length;i<len;i++){var cloneObj=eventHandler._getClipboardFloatingObjectData().findByPropertyName(names[i]).clone();cloneObj.isVisible(true);cloneObj.name(self._generateFloatingObjectName());cloneObj.position(newLocations[i]);cloneObj.isSelected(true);sheet._addFloatingOjectInternal(cloneObj);self._savedObjects.push(cloneObj)}sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(sender);if(!repained){self.refreshUI(sender)}}};ClipboardPasteFloatingObjectUndoAction.prototype.refreshUI=function(sender){var sheetView=this._sheet;if(sheetView){sheetView.invalidateLayout();sheetView.repaint()}};ClipboardPasteFloatingObjectUndoAction.prototype.canExecute=function(sender){var self=this;if(!self._sheet.isProtected&&self._floatingObjectExtent&&self._floatingObjectExtent.names&&self._floatingObjectExtent.names.length>0){return true}return false};ClipboardPasteFloatingObjectUndoAction.prototype.canUndo=function(){if(this._savedObjects&&this._savedObjects.length>0){return true}return false};ClipboardPasteFloatingObjectUndoAction.prototype.undo=function(sender){var self=this;if(spread.features.floatingObject&&self._savedObjects&&self._savedObjects.length>0){var sheet=self._sheet;self._suspendInvalidate(sender);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);for(var i=0,len=self._savedObjects.length;i<len;i++){var item=self._savedObjects[i];sheet._removeFloatingObjectInternal(item.name())}self._savedObjects.length=0;sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(sender);if(!repained){self.refreshUI(sender)}return true}return false};ClipboardPasteFloatingObjectUndoAction.prototype._generateFloatingObjectName=function(){var prefix="FloatingObject";var len=this._sheet._floatingObjectArray.length+1;var newName=prefix+len;while(this._sheet._findFloatingObjectInternal(newName)!==keyword_null){len++;newName=prefix+len}return newName};return ClipboardPasteFloatingObjectUndoAction})(ActionBase);UndoRedo.ClipboardPasteFloatingObjectUndoAction=ClipboardPasteFloatingObjectUndoAction;var DragCopyFloatingObjectUndoAction=(function(_super){__extends(DragCopyFloatingObjectUndoAction,_super);function DragCopyFloatingObjectUndoAction(sheet,floatingObjectExtent,movingInfo){_super.call(this);this._sheet=keyword_null;this._floatingObjectExtent=keyword_null;this._savedObjects=keyword_null;this._movingInfo=keyword_null;var self=this;self._sheet=sheet;self._floatingObjectExtent=floatingObjectExtent;self._savedObjects=[];self._movingInfo=movingInfo}DragCopyFloatingObjectUndoAction.prototype.execute=function(sender){var self=this;if(spread.features.floatingObject&&self._floatingObjectExtent&&self._floatingObjectExtent.names&&self._floatingObjectExtent.names.length>0&&self._movingInfo){var sheet=self._sheet;self._suspendInvalidate(sender);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);var i,len;for(i=0,len=self._floatingObjectExtent.names.length;i<len;i++){var item=sheet._findFloatingObjectInternal(self._floatingObjectExtent.names[i]);if(item){var cloneObj=item.clone();var position=item.position();cloneObj.position(new spread.Point(position.x+self._movingInfo.offsetX,position.y+self._movingInfo.offsetY));cloneObj.name(self._generateFloatingObjectName());cloneObj.isSelected(true);item.isSelected(false);sheet._addFloatingOjectInternal(cloneObj);self._savedObjects.push(cloneObj.name())}}sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(sender);if(!repained){self.refreshUI(sender)}}};DragCopyFloatingObjectUndoAction.prototype.refreshUI=function(sender){var sheetView=this._sheet;if(sheetView){sheetView.invalidateLayout();sheetView.repaint()}};DragCopyFloatingObjectUndoAction.prototype.canExecute=function(sender){var self=this;if(!self._sheet.isProtected&&self._floatingObjectExtent&&self._floatingObjectExtent.names&&self._floatingObjectExtent.names.length>0){return true}return false};DragCopyFloatingObjectUndoAction.prototype.canUndo=function(){if(this._savedObjects&&this._savedObjects.length>0){return true}return false};DragCopyFloatingObjectUndoAction.prototype.undo=function(sender){var self=this;if(spread.features.floatingObject&&self._savedObjects&&self._savedObjects.length>0){var sheet=self._sheet;self._suspendInvalidate(sender);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);for(var i=0,len=self._savedObjects.length;i<len;i++){sheet._removeFloatingObjectInternal(self._savedObjects[i])}self._savedObjects.length=0;sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(sender);if(!repained){self.refreshUI(sender)}return true}return false};DragCopyFloatingObjectUndoAction.prototype._generateFloatingObjectName=function(){var prefix="FloatingObject";var len=this._sheet._floatingObjectArray.length+1;var newName=prefix+len;while(this._sheet._findFloatingObjectInternal(newName)!==keyword_null){len++;newName=prefix+len}return newName};return DragCopyFloatingObjectUndoAction})(ActionBase);UndoRedo.DragCopyFloatingObjectUndoAction=DragCopyFloatingObjectUndoAction;var CommentUndoActionBase=(function(_super){__extends(CommentUndoActionBase,_super);function CommentUndoActionBase(){_super.call(this)}CommentUndoActionBase.prototype.init=function(sheet,comment){this._sheet=sheet;this._comment=comment};CommentUndoActionBase.prototype.refreshUI=function(sender){var sheetView=this._sheet;if(sheetView){sheetView.invalidateLayout();sheetView.repaint()}};CommentUndoActionBase.prototype.canExecute=function(sender){return true};CommentUndoActionBase.prototype.canUndo=function(){if(this._savedComment){return true}return false};CommentUndoActionBase.prototype.saveState=function(){this._savedComment=this._comment};return CommentUndoActionBase})(ActionBase);UndoRedo.CommentUndoActionBase=CommentUndoActionBase;var CommentDeleteUndoAction=(function(_super){__extends(CommentDeleteUndoAction,_super);function CommentDeleteUndoAction(sheet,comment){_super.call(this);this.init(sheet,comment)}CommentDeleteUndoAction.prototype.execute=function(sender){var self=this;self.saveState();var sheet=self._sheet;self._suspendInvalidate(sender);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);sheet.setComment(self._comment._rowIndex,self._comment._colIndex,keyword_null);sheet._loadAndSetSheetSelections();sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(sender);if(!repained){self.refreshUI(sender)}};CommentDeleteUndoAction.prototype.undo=function(sender){var self=this;if(self._savedComment){var sheet=self._sheet;self._suspendInvalidate(sender);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);sheet.setComment(self._savedComment._rowIndex,self._savedComment._colIndex,self._savedComment);sheet._saveAndClearSheetSelections();sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(sender);if(!repained){self.refreshUI(sender)}return true}return false};return CommentDeleteUndoAction})(CommentUndoActionBase);UndoRedo.CommentDeleteUndoAction=CommentDeleteUndoAction;var CommentPropertyUndoAction=(function(_super){__extends(CommentPropertyUndoAction,_super);function CommentPropertyUndoAction(sheet,comment,oldValue,newValue,propertyName){_super.call(this);var self=this;self.init(sheet,comment);self._oldValue=oldValue;self._newValue=newValue;self._propertyName=propertyName}CommentPropertyUndoAction.prototype.execute=function(sender){var self=this;if(self._comment){self.saveState();var sheet=self._sheet;self._suspendInvalidate(sender);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);self._comment._changeProperty(self._propertyName,self._newValue);sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(sender);if(!repained){self.refreshUI(sender)}}};CommentPropertyUndoAction.prototype.undo=function(sender){var self=this;if(self._savedComment){var sheet=self._sheet;self._suspendInvalidate(sender);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);self._comment._changeProperty(self._propertyName,self._oldValue);sheet.isPaintSuspended(oldState);var repained=self._resumeInvalidate(sender);if(!repained){self.refreshUI(sender)}return true}return false};return CommentPropertyUndoAction})(CommentUndoActionBase);UndoRedo.CommentPropertyUndoAction=CommentPropertyUndoAction;var CommentUndoTransaction=(function(_super){__extends(CommentUndoTransaction,_super);function CommentUndoTransaction(){_super.call(this);this._commentUndoTransaction=[]}CommentUndoTransaction.prototype.execute=function(sender){var self=this;if(self._commentUndoTransaction&&self._commentUndoTransaction.length>0){for(var i=0;i<self._commentUndoTransaction.length;i++){var action=self._commentUndoTransaction[i];if(action){action.execute(sender)}}}};CommentUndoTransaction.prototype.undo=function(sender){var self=this;if(self._commentUndoTransaction&&self._commentUndoTransaction.length>0){for(var i=0;i<self._commentUndoTransaction.length;i++){var action=self._commentUndoTransaction[i];if(action){action.undo(sender)}}return true}return false};CommentUndoTransaction.prototype.add=function(action){this._commentUndoTransaction.push(action)};return CommentUndoTransaction})(ActionBase);UndoRedo.CommentUndoTransaction=CommentUndoTransaction})(spread.UndoRedo||(spread.UndoRedo={}));var UndoRedo=spread.UndoRedo})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("core.sheet_event",["core.migrate","core.common","core.sheet_action","core.stringResource"]);var keyword_null=null,keyword_undefined=undefined,Math_max=Math.max,Math_min=Math.min,Math_abs=Math.abs,Math_ceil=Math.ceil,const_undefined="undefined",cssPosition="position",cssAbsolute="absolute",cssBorder="border",cssBorderRadius="border-radius",cssPadding="padding",cssBoxShadow="box-shadow",cssFont="font",cssBackgroundColor="background-color",cssOverflow="overflow",cssTop="top",cssLeft="left",cssZIndex="z-index",cssOutline="outline",cssWidth="width",cssHeight="height",cssResize="resize",cssHidden="hidden",cssVisible="visible",cssAuto="auto",cssWhite="white",cssNone="none",attrSize="size",attrGcUIElement="gcUIElement";var document=window.document;var _SheetEventHandler=(function(){function _SheetEventHandler(sheet){this.RESIZETOOLTIP_TOP=30;this.DRAGDROPTOOLTIP_OFFSET=5;this.DRAGFILLTOOLTIP_OFFSET=3;this.VSCROLLTOOLTIP_LEFT=100;this.HSCROLLTOOLTIP_LEFT=30;this.HSCROLLTOOLTIP_TOP=40;this._clipboardFloatingObjectData=keyword_null;this._repeatKeyDownTimeoutID=0;this.waittime=100;this.newLeft=0;this.newTop=0;this._focusReleased=false;this._init(sheet)}_SheetEventHandler.prototype._init=function(sheet){this._sheet=sheet;this._elem=keyword_null;this._eventSuspended=0};_SheetEventHandler.prototype._getElem=function(){if(!this._elem){this._elem=document.createElement("input")}return this._elem};_SheetEventHandler.prototype._dispose=function(){var self=this;if(self._hScrollTimer){self._hScrollTimer._dispose()}if(self._vScrollTimer){self._vScrollTimer._dispose()}};_SheetEventHandler.prototype._getHScrollTimer=function(){var self=this;if(!self._hScrollTimer){self._hScrollTimer=new spread.Timer(self)}return self._hScrollTimer};_SheetEventHandler.prototype._getVScrollTimer=function(){var self=this;if(!self._vScrollTimer){self._vScrollTimer=new spread.Timer(self)}return self._vScrollTimer};_SheetEventHandler.prototype.doResize=function(){var sheet=this._sheet;var canvas=sheet._getCanvas();if(!canvas||!canvas.parentNode){return}var computedStyle=getComputedStyle(canvas.parentNode);var parentWidthCss=computedStyle.width;var parentHeightCss=computedStyle.height;var pxIndex=parentWidthCss.indexOf("px");if(pxIndex>0){parentWidthCss=parentWidthCss.substring(0,pxIndex)}pxIndex=parentHeightCss.indexOf("px");if(pxIndex>0){parentHeightCss=parentHeightCss.substring(0,pxIndex)}var parentWidth=parseInt(parentWidthCss);var parentHeight=parseInt(parentHeightCss);if(isNaN(parentWidth)){parentWidth=$(canvas.parentNode).width()}if(isNaN(parentHeight)){parentHeight=$(canvas.parentNode).height()}if(parentWidth===0||parentHeight===0){return}var deltx=0;var delty=0;canvas.style.display=cssNone;canvas.width=Math_max(parentWidth-deltx,0);canvas.height=Math_max(parentHeight-delty,0);canvas.style.display="";sheet._bounds.width=canvas.clientWidth||canvas.width;sheet._bounds.height=canvas.clientHeight||canvas.height;if(!sheet._paintSuspended){sheet.invalidateLayout();sheet.repaint()}};_SheetEventHandler.prototype._getCanvasOffset=function(){var sheet=this._sheet;var t=$(sheet._getCanvas()).offset();if(t){if(!isNaN(document.body.clientTop)){t.top+=document.body.clientTop}if(!isNaN(document.body.clientLeft)){t.left+=document.body.clientLeft}}else
{t={top:0,left:0}}if(window.gcGlobal.canvasOffset){t=window.gcGlobal.canvasOffset}return t};_SheetEventHandler.prototype.doMouseDown=function(e){if(e.button===2){return true}var self=this;var sheet=self._sheet;if(!sheet.inCanvas){self.handleDocumentMouseMove()}var t=self._getCanvasOffset();var ret=self.doMouseDownImp(e,e.pageX-t.left,e.pageY-t.top);if(!sheet.isEditing()&&!ret){self.setFocus()}sheet._isMouseDownInSheet=true;return false};_SheetEventHandler.prototype.handleDocumentMouseMove=function(){var self=this;if(!self._isMouseCapture){$(document).bind("mousemove.gcSheet",function(e){self.doMouseMove(e)}).bind("mouseup.gcSheet",function(e){self.doMouseUp(e)});self._isMouseCapture=true}};_SheetEventHandler.prototype.unhandleDocumentMouseMove=function(){if(this._isMouseCapture){this._isMouseCapture=false;$(document).unbind("mousemove.gcSheet").unbind("mouseup.gcSheet")}};_SheetEventHandler.prototype.doMouseDownImp=function(e,x,y){var self=this,sheet=self._sheet,target=sheet.hitTest(x,y),r=target.row,c=target.col,hitInfo=target.groupHitInfo,dragInfo=target.dragInfo,filterButtonHitInfo=target.filterButtonHitInfo,frInfo=target.formulaRangeHitInfo,cellTypeHitInfo=target.cellTypeHitInfo;if(typeof sheet.unSelectAllFloatingObjects==='function'){sheet.unSelectAllFloatingObjects()}var commentManager=sheet._commentManager;if(commentManager){commentManager.deactivateComment()}if(hitInfo){if(!sheet.isEditing()){self._doClickRangeGroup(hitInfo)}}else
{sheet._currentTarget=target;self.isMouseDown=true;if(target.resizeInfo){if(!sheet.endEdit()){return}self.startResizing(target)}else if(dragInfo&&dragInfo.side&&dragInfo.side!=="corner"){if(!sheet.endEdit()){return}self.startDragDropping(target)}else if(dragInfo&&dragInfo.side==="corner"){if(!sheet.endEdit()){return}self.startDragFill(target)}else if(filterButtonHitInfo){if(!sheet.endEdit()){return}self._openFilterDialog(filterButtonHitInfo)}else if(frInfo){if(frInfo.inBorder){self.startFormulaRangeMoving(target)}else if(frInfo.inTopLeft||frInfo.inTopRight||frInfo.inBottomLeft||frInfo.inBottomRight){self.startFormulaRangeResizing(target)}}else
{var fbx=sheet._formulaTextBox;if(fbx&&fbx.canAppendRange()){self.startFormulaRangeAppending(target);return}var oldActiveRow=sheet.getActiveRowIndex();var oldActiveCol=sheet.getActiveColumnIndex();if(cellTypeHitInfo){if(r!==oldActiveRow||c!==oldActiveCol){var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);try
{if(!sheet.endEdit()){return}var args={sheet:sheet,sheetName:sheet._name,row:oldActiveRow,col:oldActiveCol,cancel:false};sheet._trigger(spread.Events.LeaveCell,args);if(args&&args.cancel===true){return}var oldSels=sheet._selectionModel.toArray();var newSels=keyword_null;var span=sheet._spanModel.find(r,c);if(span){newSels=[new spread.Range(span.row,span.col,span.rowCount,span.colCount)]}else
{newSels=[new spread.Range(r,c,1,1)]}sheet._trigger(spread.Events.SelectionChanging,{sheet:sheet,sheetName:sheet._name,oldSelections:oldSels,newSelections:newSels});sheet.setActiveCell(r,c);sheet._trigger(spread.Events.EnterCell,{sheet:sheet,sheetName:sheet._name,row:r,col:c});sheet._trigger(spread.Events.SelectionChanged,{sheet:sheet,sheetName:sheet._name});self._updateValidationUI(r,c)}finally
{sheet.isPaintSuspended(oldState)}}var ct=sheet.getCellType(r,c,target.hitTestType);if(!cellTypeHitInfo.sheet){cellTypeHitInfo.sheet=sheet}ct.processMouseDown(cellTypeHitInfo)}if(cellTypeHitInfo&&cellTypeHitInfo.isReservedLocation){return true}else
{self.setMetaKeyState(e);try
{self._hitTestResult=target;if(sheet.isEditing()&&oldActiveRow===sheet.getActiveRowIndex()&&oldActiveCol===sheet.getActiveColumnIndex()&&!sheet.endEdit()){return}}finally
{self._hitTestResult=keyword_null}if(r===keyword_undefined||r===keyword_null||c===keyword_undefined||c===keyword_null){return}if(target.hitTestType===3){self._updateValidationUI(r,c)}var oldSelections=sheet._selectionModel.toArray();self.startSelecting(target);var newSelections=sheet._selectionModel.toArray();if(self._notEqualSelecions(oldSelections,newSelections)){sheet._trigger(spread.Events.SelectionChanging,{sheet:sheet,sheetName:sheet._name,oldSelections:oldSelections,newSelections:newSelections})}}}}};_SheetEventHandler.prototype._openFilterDialog=function(filterButtonInfo){if(!filterButtonInfo||!spread.features.filter_ui){return}var filterDialog=new spread._GcFilterDialog(this._sheet,filterButtonInfo);this._sheet._filterDialiog=filterDialog;filterDialog.open()};_SheetEventHandler.prototype._doClickRangeGroup=function(hitInfo){var sheet=this._sheet;if(!sheet||!hitInfo||!spread.features.group){return}var info=hitInfo.info,level,args,action,index,isExpanded;if(hitInfo.what==="rgh"){if(sheet&&!sheet.isEditing()){level=info.index;args={sheet:sheet,sheetName:sheet._name,isRowGroup:true,index:-1,level:level,cancel:false};sheet._trigger(spread.Events.RangeGroupStateChanging,args);if(args&&args.cancel===false){action=new spread.UndoRedo.RowGroupHeaderExpandUndoAction(sheet,{level:level});sheet._doCommand(action);sheet._trigger(spread.Events.RangeGroupStateChanged,{sheet:sheet,sheetName:sheet._name,isRowGroup:true,index:-1,level:level})}}}else if(hitInfo.what==="cgh"){if(!sheet.isEditing()){level=info.index;args={sheet:sheet,sheetName:sheet._name,isRowGroup:false,index:-1,level:level,cancel:false};sheet._trigger(spread.Events.RangeGroupStateChanging,args);if(args&&args.cancel===false){action=new spread.UndoRedo.ColumnGroupHeaderExpandUndoAction(sheet,{level:level});sheet._doCommand(action);sheet._trigger(spread.Events.RangeGroupStateChanged,{sheet:sheet,sheetName:sheet._name,isRowGroup:false,index:-1,level:level})}}}else if(hitInfo.what==="rg"){if(sheet.rowRangeGroup){index=info.index;isExpanded=info.isExpanded;if(info.lineDirection===1){index--}else
{index++}args={sheet:sheet,sheetName:sheet._name,isRowGroup:true,index:index,level:info.level,cancel:false};sheet._trigger(spread.Events.RangeGroupStateChanging,args);if(args&&args.cancel===false){var rowGroupExpandUndoAction=new spread.UndoRedo.RowGroupExpandUndoAction(sheet,{index:info.index,level:info.level,collapsed:isExpanded});sheet._doCommand(rowGroupExpandUndoAction);sheet._trigger(spread.Events.RangeGroupStateChanged,{sheet:sheet,sheetName:sheet._name,isRowGroup:true,index:index,level:info.level})}}}else if(hitInfo.what==="cg"){if(sheet.colRangeGroup){index=info.index;isExpanded=info.isExpanded;if(info.lineDirection===1){index--}else
{index++}args={sheet:sheet,sheetName:sheet._name,isRowGroup:false,index:index,level:info.level,cancel:false};sheet._trigger(spread.Events.RangeGroupStateChanging,args);if(args&&args.cancel===false){var columnGroupExpandUndoAction=new spread.UndoRedo.ColumnGroupExpandUndoAction(sheet,{index:info.index,level:info.level,collapsed:isExpanded});sheet._doCommand(columnGroupExpandUndoAction);sheet._trigger(spread.Events.RangeGroupStateChanged,{sheet:sheet,sheetName:sheet._name,isRowGroup:false,index:index,level:info.level})}}}};_SheetEventHandler.prototype._isInvalidRect=function(rect){var sheet=this._sheet;if(!sheet){return true}var sheetLayout=sheet._getSheetLayout();return rect.x===keyword_null||rect.x===keyword_undefined||rect.y===keyword_null||rect.y===keyword_undefined||rect.width===keyword_null||rect.width===keyword_undefined||rect.height===keyword_null||rect.height===keyword_undefined||rect.x+rect.width>sheetLayout.viewportX+sheetLayout.viewportWidth+sheetLayout.frozenTrailingWidth||rect.y+rect.height>sheetLayout.viewportY+sheetLayout.viewportHeight+sheetLayout.frozenTrailingHeight};_SheetEventHandler.prototype._commitSelectValue=function(select,row,col){var sheet=this._sheet,newValue;for(var i=0,options=select.options,len=options.length;i<len;i++){var op=options[i];if(op.selected){newValue=op.value;break}}var actualLocked=false;if(sheet.isProtected){var style=sheet.getActualStyle(row,col);if(style){actualLocked=style.locked}}if(newValue&&!actualLocked){var cellEditInfo={row:row,col:col,newValue:newValue,autoFormat:true};var undoAction=new spread.UndoRedo.CellEditUndoAction(sheet,cellEditInfo);sheet._doCommand(undoAction)}$(select).hide()};_SheetEventHandler.prototype._updateValidationUI=function(row,col){var self=this;var sheet=self._sheet,sheetParent=(sheet&&sheet.parent);if(!sheetParent||!spread.features.dataValidator){return}sheet._disposeValidationUI();var activeSheet=sheetParent.getActiveSheet();if(!activeSheet||sheet.getName()!==activeSheet.getName()){return}var dv=sheet.getDataValidator(row,col);if(!dv){return}var offset=self._getCanvasOffset();var rect=sheet.getCellRect(row,col);if(self._isInvalidRect(rect)){return}var zIndex=1000;if(dv&&dv.showInputMessage&&dv.inputMessage){var span=document.createElement("span");$(span).css(cssPosition,cssAbsolute).css(cssBorder,"1px #C0C0C0 solid").css(cssPadding,"3px 8px 3px 8px").css(cssBackgroundColor,"#FFFFFF").css(cssBoxShadow,"1px 2px 5px rgba(0,0,0,0.4)").css(cssFont,"normal normal normal 12px/normal Arial").width(cssAuto).height(cssAuto).css(cssTop,rect.y+rect.height+offset.top+5).css(cssLeft,rect.x+rect.width/2+offset.left).css(cssZIndex,zIndex).html("<b>"+dv.inputTitle+"</b><br/>"+dv.inputMessage).attr(attrGcUIElement,"gcValidationInputMessage").appendTo(document.body);sheet._validationInputMessage=span}if(dv&&dv.type===3&&dv.inCellDropdown){var validList=dv.condition.getValidList(sheet,row,col);var length=validList.length;var select=document.createElement("select");var cellValue=sheet.getValue(row,col);var selectedIndex=-1;var innerHtml="";for(var i=0;i<length;i++){var v=validList[i];if(selectedIndex<0&&v===cellValue){selectedIndex=i}if(v===keyword_null||v===keyword_undefined){v=""}else if(v instanceof Date){v=new spread._DateTimeHelper(v).localeFormat("M/d/yyyy h:mm:ss")}innerHtml+="<option value=\""+v+"\">"+v+"</option>"}select.innerHTML=innerHtml;select.selectedIndex=selectedIndex>0?selectedIndex:0;var cellStyle=sheet.getActualStyle(row,col),render=sheet._render;var font=(cellStyle&&cellStyle.font)?cellStyle.font:render._getDefaultFont();if(sheet._zoomFactor>1){font=render._getZoomFont(font)}var spans=sheet.getSpans(new spread.Range(row,col,1,1));var colSpan=1;if(spans&&spans.length>0){if(spans[0]){colSpan=spans[0].colCount}}var isLastColumn=((col+colSpan-1)===sheet.getColumnCount()-1);var buttonSize=sheet.getRowHeight(row)*sheet._zoomFactor;var useTouchLayout=sheet.parent&&sheet.parent.useTouchLayout();if(useTouchLayout){buttonSize=Math_min(50,buttonSize)}else
{buttonSize=Math_min(15,buttonSize)}var device=spread.util.device(),isSafariOnIpad=$.browser.safari&&(device.ipad||device.iphone);var selectWidth,selectHeight,selectTop,selectLeft,backgroundColor;if(isSafariOnIpad){selectWidth=rect.width+3;selectHeight=rect.height+3;selectTop=rect.y+offset.top-1.5;selectLeft=rect.x+offset.left-1.5;backgroundColor=cssWhite}else
{selectWidth=Math_max(rect.width+(isLastColumn?0:buttonSize),sheet.defaults.colWidth);selectHeight=length>8?140:cssAuto;selectTop=rect.y+rect.height+offset.top;selectLeft=rect.x+rect.width+offset.left+(isLastColumn?0:buttonSize)-selectWidth;backgroundColor=""}var $select=$(select).css(cssOutline,cssNone).css(cssPosition,cssAbsolute).css(cssFont,font).css(cssZIndex,zIndex).css(cssBackgroundColor,backgroundColor).width(selectWidth).height(selectHeight).css(cssTop,selectTop).css(cssLeft,selectLeft).attr(attrGcUIElement,"gcValidationSelect").appendTo(document.body).attr(attrSize,length>2?length:2).hide().bind("click",function(){self._commitSelectValue(select,row,col);if(isSafariOnIpad){$(sheet._validationButton).show()}}).bind("keydown",function(event){if(event.keyCode===13&&!event.ctrlKey&&!event.shiftKey&&!event.altKey){self._commitSelectValue(select,row,col)}else if(event.keyCode===27&&!event.ctrlKey&&!event.shiftKey&&!event.altKey){$(select).hide()}if(isSafariOnIpad){$(sheet._validationButton).show()}});if(isSafariOnIpad){$select.bind("blur",function(event){self._commitSelectValue(select,row,col);$(sheet._validationButton).show()})}sheet._validationSelect=select;var button=document.createElement("input");button.type="image";button.src=spread.DefaultDataValidator.getImageSrc();button.alt="v";$(button).css(cssPosition,cssAbsolute).width(buttonSize).height(buttonSize).css(cssTop,rect.y+rect.height+offset.top-(buttonSize+3)).css(cssLeft,rect.x+rect.width+offset.left-(isLastColumn?buttonSize:0)).css(cssBackgroundColor,cssWhite).css(cssBorder,"1px solid gray").attr(attrGcUIElement,"gcValidationButton").appendTo(document.body).click(function(){if(sheet.isEditing()){sheet.endEdit()}$(sheet._validationSelect).toggle().focus();if(isSafariOnIpad){$(sheet._validationButton).toggle()}});sheet._validationButton=button}};_SheetEventHandler.prototype.startScroll=function(){var self=this;if(!self.startHitInfo){return}var hitType=self.startHitInfo.hitTestType;if(hitType===3||hitType===2){self._getVScrollTimer().setAction(self.processVSScrolled)}if(hitType===3||hitType===1){self._getHScrollTimer().setAction(self.processHSScrolled)}};_SheetEventHandler.prototype.processVSScrolled=function(increase){var self=this;var adjusted=self.adjustScrollRowViewport();if(!adjusted){var hi=self.startHitInfo;var sheet=self._sheet;var rowViewportIndex=hi.scrollRowViewportIndex;var topRow=sheet.getViewportTopRow(rowViewportIndex);var bottomRow=sheet.getViewportBottomRow(rowViewportIndex);if(increase){if(bottomRow<sheet.getRowCount()-sheet._frozenTrailingRowCount-1){sheet._setTopRow(sheet._getNextVisualRow(topRow))}else
{var rowLayoutModel=sheet._getRowLayout(rowViewportIndex);if(rowLayoutModel&&rowLayoutModel.length>0){var layout=sheet._getSheetLayout();var lastRow=rowLayoutModel[rowLayoutModel.length-1];if(lastRow.y+lastRow.height>=layout.viewportY+layout.viewportHeight){sheet._setTopRow(sheet._getNextVisualRow(topRow))}}}}else
{if(topRow>sheet.frozenRowCount){sheet._setTopRow(sheet._getPrevVisualRow(topRow))}}}if(self.isSelecting){self.continueSelecting()}if(self.isDragDropping){self.continueDragDropping()}if(self.isDraggingFill){self.continueDragFill()}if(self.isFormulaRangeAppending){self.continueFormulaRangeAppending()}if(self.isFormulaRangeMoving){self.continueFormulaRangeMoving()}if(self.isFormulaRangeResizing){self.continueFormulaRangeResizing()}};_SheetEventHandler.prototype.processHSScrolled=function(increase){var self=this;var adjusted=self.adjustScrollColViewport();if(!adjusted){var sheet=self._sheet;var hi=self.startHitInfo;var colViewportIndex=hi.scrollColViewportIndex;var leftCol=sheet.getViewportLeftColumn(colViewportIndex);var rightCol=sheet.getViewportRightColumn(colViewportIndex);if(increase){if(rightCol<sheet.getColumnCount()-sheet._frozenTrailingColCount-1){sheet._setLeftColumn(sheet._getNextVisualColumn(leftCol))}else
{var colLayoutModel=sheet._getColumnLayout(colViewportIndex);if(colLayoutModel&&colLayoutModel.length>0){var layout=sheet._getSheetLayout();var lastCol=colLayoutModel[colLayoutModel.length-1];if(lastCol.x+lastCol.width>=layout.viewportX+layout.viewportWidth){sheet._setLeftColumn(sheet._getNextVisualColumn(leftCol))}}}}else
{if(leftCol>sheet.frozenColCount){sheet._setLeftColumn(sheet._getPrevVisualColumn(leftCol))}}}if(self.isSelecting){self.continueSelecting()}if(self.isDragDropping){self.continueDragDropping()}if(self.isDraggingFill){self.continueDragFill()}if(self.isFormulaRangeAppending){self.continueFormulaRangeAppending()}if(self.isFormulaRangeMoving){self.continueFormulaRangeMoving()}if(self.isFormulaRangeResizing){self.continueFormulaRangeResizing()}};_SheetEventHandler.prototype.adjustScrollRowViewport=function(){var sheet=this._sheet;var layout=sheet._getSheetLayout();var mousePosition=this.mousePosition;var hi=this.startHitInfo;var rowViewportIndex=hi.scrollRowViewportIndex;if(rowViewportIndex===0){if(mousePosition.y>layout.viewportY){sheet._setTopRow(sheet._getFirstPageTopRow());hi.scrollRowViewportIndex=1;return true}}else if(rowViewportIndex===1){var rowLayoutModel=sheet._getRowLayout(1);if(rowLayoutModel&&rowLayoutModel.length>0){var rowLayout=rowLayoutModel[0];if(sheet.frozenRowCount>0&&mousePosition.y<layout.viewportY&&rowLayout.row<=sheet._getFirstPageTopRow()){hi.scrollRowViewportIndex=0;return true}rowLayout=rowLayoutModel[rowLayoutModel.length-1];if(sheet._frozenTrailingRowCount>0&&mousePosition.y>layout.frozenTrailingY&&rowLayout.row>=sheet._getLastVisualRow()&&rowLayout.y+rowLayout.height<=layout.frozenTrailingY){hi.scrollRowViewportIndex=2;return true}}}else if(rowViewportIndex===2){var rowLayoutModel=sheet._getRowLayout(1);if(rowLayoutModel&&rowLayoutModel.length>0&&mousePosition.y<layout.frozenTrailingY){var rowLayout=rowLayoutModel[rowLayoutModel.length-1];if(rowLayout.y+rowLayout.height>layout.frozenTrailingY){var viewportHeight=layout.viewportHeight;var newTopRow=sheet.getRowCount()-sheet._frozenTrailingRowCount-1;var height=0;for(var r=newTopRow;r>=sheet.frozenRowCount;r--){height+=sheet._getZoomRowHeight(r);if(height>viewportHeight){newTopRow=Math_min(r+1,newTopRow);break}}sheet._setTopRow(sheet._getNextVisualRow(newTopRow-1))}hi.scrollRowViewportIndex=1;return true}}return false};_SheetEventHandler.prototype.adjustScrollColViewport=function(){var sheet=this._sheet;var layout=sheet._getSheetLayout();var mousePosition=this.mousePosition;var hi=this.startHitInfo;var colViewportIndex=hi.scrollColViewportIndex;if(colViewportIndex===0){if(mousePosition.x>layout.viewportX){sheet._setLeftColumn(sheet._getFirstPageLeftColumn());hi.scrollColViewportIndex=1;return true}}else if(colViewportIndex===1){var colLayoutModel=sheet._getColumnLayout(1);if(colLayoutModel&&colLayoutModel.length>0){var colLayout=colLayoutModel[0];if(sheet.frozenColCount>0&&mousePosition.x<layout.viewportX&&colLayout.col<=sheet._getFirstPageLeftColumn()){hi.scrollColViewportIndex=0;return true}colLayout=colLayoutModel[colLayoutModel.length-1];if(sheet._frozenTrailingColCount>0&&mousePosition.x>layout.frozenTrailingX&&colLayout.col>=sheet._getLastVisualColumn()&&colLayout.x+colLayout.width<=layout.frozenTrailingX){hi.scrollColViewportIndex=2;return true}}}else if(colViewportIndex===2){var colLayoutModel=sheet._getColumnLayout(1);if(colLayoutModel&&colLayoutModel.length>0&&mousePosition.x<layout.frozenTrailingX){var colLayout=colLayoutModel[colLayoutModel.length-1];if(colLayout.x+colLayout.width>layout.frozenTrailingX){var viewportWidth=layout.viewportWidth;var newLeftColumn=sheet.getColumnCount()-sheet._frozenTrailingColCount-1;var width=0;for(var c=newLeftColumn;c>=sheet.frozenColCount;c--){width+=sheet._getZoomColumnWidth(c);if(width>viewportWidth){newLeftColumn=Math_min(c+1,newLeftColumn);break}}sheet._setLeftColumn(sheet._getNextVisualColumn(newLeftColumn-1))}hi.scrollColViewportIndex=1;return true}}return false};_SheetEventHandler.prototype.continueScroll=function(){var self=this;if(!self.isWorking&&!self.isFloatingObjectWorking&&!self.isCommentWorking){return}var sheet=self._sheet;var layout=sheet._getSheetLayout();var hi=self.startHitInfo;var rowViewportIndex=hi.scrollRowViewportIndex;var colViewportIndex=hi.scrollColViewportIndex;var mousePosition=self.mousePosition;var viewportRect=keyword_null;if(rowViewportIndex>=0&&colViewportIndex>=0){viewportRect=layout.viewportRect(rowViewportIndex,colViewportIndex)}else if(rowViewportIndex>=0){viewportRect=layout.rowHeaderRect(rowViewportIndex)}else if(colViewportIndex>=0){viewportRect=layout.colHeaderRect(colViewportIndex)}if(viewportRect){var distanceX=0,distanceY=0;if(mousePosition.x<=viewportRect.x){distanceX=mousePosition.x-viewportRect.x}else if(mousePosition.x>=viewportRect.x+viewportRect.width){distanceX=mousePosition.x-(viewportRect.x+viewportRect.width)}if(mousePosition.y<=viewportRect.y){distanceY=mousePosition.y-viewportRect.y}else if(mousePosition.y>=viewportRect.y+viewportRect.height){distanceY=mousePosition.y-(viewportRect.y+viewportRect.height)}self._getHScrollTimer().setInterval(self.getIntervalFromDistance(distanceX));self._getVScrollTimer().setInterval(self.getIntervalFromDistance(distanceY))}};_SheetEventHandler.prototype.stopScroll=function(){this._getHScrollTimer().stop();this._getVScrollTimer().stop()};_SheetEventHandler.prototype.startResizing=function(target){var self=this;var sheet=self._sheet,layout=sheet._getSheetLayout(),resizeInfo=target.resizeInfo,rowLayout,rl,colLayout,cl;if(resizeInfo.action==="sizeRow"){rowLayout=sheet._getAllRowLayout(resizeInfo.sheetArea);resizeInfo.index=self._getPrevVisualRowBeforeFindRow(resizeInfo.index,resizeInfo.sheetArea);rl=rowLayout.findRow(resizeInfo.index);if(!rl){rl=rowLayout.findRow(target.row)}resizeInfo.startY=rl.y}else
{colLayout=sheet._getAllColumnLayout(resizeInfo.sheetArea);resizeInfo.index=self._getPrevVisualColBeforeFindCol(resizeInfo.index,resizeInfo.sheetArea);cl=colLayout.findCol(resizeInfo.index);if(!cl){cl=colLayout.findCol(target.col)}resizeInfo.startX=cl.x}var currentSpread=sheet.parent,x=target.x,y=target.y;if(currentSpread){var showResizeTip=currentSpread.showResizeTip();if((showResizeTip===1&&resizeInfo.action==="sizeCol")||(showResizeTip===2&&resizeInfo.action==="sizeRow")||showResizeTip===3){if(y-self.RESIZETOOLTIP_TOP<0){y=y+self.RESIZETOOLTIP_TOP/2}else
{y=y-self.RESIZETOOLTIP_TOP}self._showTooltip(self._getMouseDownResizeTooltipContent(),x,y)}}self.isResizing=true;self.isWorking=true};_SheetEventHandler.prototype.continueResizing=function(){var self=this;var sheet=self._sheet,currentTarget=sheet._currentTarget,resizeInfo=currentTarget.resizeInfo,mousePosition=self.mousePosition,x=mousePosition.x,y=mousePosition.y,layout=sheet._getSheetLayout(),max,rect;if(!resizeInfo||!self.isWorking||!self.isResizing){return}if(currentTarget.x===x&¤tTarget.y===y){return}if(resizeInfo.action==="sizeRow"){resizeInfo.movingY=y;if(resizeInfo.movingY<resizeInfo.startY){resizeInfo.movingY=resizeInfo.startY}max=layout.y+layout.height;if(resizeInfo.movingY>max){resizeInfo.movingY=max}}else
{resizeInfo.movingX=x;if(resizeInfo.movingX<resizeInfo.startX){resizeInfo.movingX=resizeInfo.startX}max=layout.x+layout.width;if(resizeInfo.movingX>max){resizeInfo.movingX=max}}var render=sheet._render,ctx=render._getCtx();render.copyDoubleBuffer(layout.x,layout.y,layout.width,layout.height);render.paintAdornment(ctx);var currentSpread=sheet.parent;if(currentSpread){var showResizeTip=currentSpread.showResizeTip();if((showResizeTip===1&&resizeInfo.action==="sizeCol")||(showResizeTip===2&&resizeInfo.action==="sizeRow")||showResizeTip===3){self._refreshTooltip(self._getMouseMoveResizeTooltipContent(resizeInfo))}}};_SheetEventHandler.prototype.stopResizing=function(){var self=this;self.isResizing=false;self.isWorking=false;var sheet=self._sheet,currentTarget=sheet._currentTarget,resizeInfo=currentTarget.resizeInfo,value,i,selectedRange,action;if(!resizeInfo){return}self._removeTooltip();if(resizeInfo.action==="sizeRow"){if(resizeInfo.movingY!==keyword_undefined&&resizeInfo.movingY!==keyword_null){value=Math_max(0,(resizeInfo.movingY-resizeInfo.startY)/sheet._zoomFactor);var rowList=[];if(sheet._isRowSelected(resizeInfo.index)){for(i=0;i<sheet._selectionModel.length;i++){selectedRange=sheet._selectionModel[i];if(selectedRange.col===-1){selectedRange=sheet._getActualRange(selectedRange);rowList.push({firstRow:selectedRange.row,lastRow:selectedRange.row+selectedRange.rowCount-1})}}}else
{rowList.push({firstRow:resizeInfo.index,lastRow:resizeInfo.index})}var isColHeader=resizeInfo.sheetArea===1;action=new spread.UndoRedo.RowResizeUndoAction(sheet,rowList,value,isColHeader);sheet._doCommand(action)}}else
{if(resizeInfo.movingX!==keyword_undefined&&resizeInfo.movingX!==keyword_null){value=Math_max(0,(resizeInfo.movingX-resizeInfo.startX)/sheet._zoomFactor);var columnList=[];if(sheet._isColumnSelected(resizeInfo.index)){for(i=0;i<sheet._selectionModel.length;i++){selectedRange=sheet._selectionModel[i];if(selectedRange.row===-1){selectedRange=sheet._getActualRange(selectedRange);columnList.push({firstCol:selectedRange.col,lastCol:selectedRange.col+selectedRange.colCount-1})}}}else
{columnList.push({firstCol:resizeInfo.index,lastCol:resizeInfo.index})}var isRowHeader=resizeInfo.sheetArea===2;action=new spread.UndoRedo.ColumnResizeUndoAction(sheet,columnList,value,isRowHeader);sheet._doCommand(action)}}};_SheetEventHandler.prototype._startSelectingCore=function(target,doNotSetFocus){var colIndex=0,rowIndex=0,rowCount=0,colCount=0;var self=this;var sheet=self._sheet;self._lastSelections=sheet._selectionModel.toArray();if(!self.ctrl&&!self.shift){sheet._clearSelectionImp()}var firstRow,args,cellRange,activeRowChanged;if(target.hitTestType===0){if(!self.shift){firstRow=sheet.frozenRowCount?sheet._getFirstVisualRow():sheet._scrollTopRow;var leftCol=sheet.frozenColCount?sheet._getFirstVisualColumn():sheet._scrollLeftCol;args={sheet:sheet,sheetName:sheet._name,row:sheet._activeRowIndex,col:sheet._activeColIndex,cancel:false};sheet._trigger(spread.Events.LeaveCell,args);if(args&&args.cancel===true){return}sheet._setActiveCellImp(firstRow,leftCol,1,1,doNotSetFocus);sheet._trigger(spread.Events.EnterCell,{sheet:sheet,sheetName:sheet._name,row:firstRow,col:leftCol});self._updateValidationUI(firstRow,leftCol)}if(!self.ctrl){sheet._clearSelectionImp()}sheet._setSelectedRange(-1,-1,sheet.getRowCount(),sheet.getColumnCount(),true)}else if(target.hitTestType===1){if(!self.shift){firstRow=sheet.frozenRowCount?sheet._getFirstVisualRow():sheet._scrollTopRow;cellRange=sheet._getAvailableActiveCell(firstRow,target.col,false);args={sheet:sheet,sheetName:sheet._name,row:sheet._activeRowIndex,col:sheet._activeColIndex,cancel:false};sheet._trigger(spread.Events.LeaveCell,args);if(args&&args.cancel===true){return}sheet._setActiveCellImp(cellRange.row,cellRange.col,1,target.colViewportIndex,doNotSetFocus);sheet._trigger(spread.Events.EnterCell,{sheet:sheet,sheetName:sheet._name,row:cellRange.row,col:cellRange.col});self._updateValidationUI(cellRange.row,cellRange.col)}if(self.shift){colIndex=Math_min(sheet._activeColIndex,target.col);colCount=Math_abs(sheet._activeColIndex-target.col)+1;sheet._replaceActiveSelectedRange(-1,colIndex,sheet.getRowCount(),colCount,true)}else
{sheet._setSelectedRange(-1,sheet._activeColIndex,sheet.getRowCount(),1,true)}}else if(target.hitTestType===2){if(!self.shift){var firstCol=sheet.frozenColCount?sheet._getFirstVisualColumn():sheet._scrollLeftCol;cellRange=sheet._getAvailableActiveCell(target.row,firstCol,true);args={sheet:sheet,sheetName:sheet._name,row:sheet._activeRowIndex,col:sheet._activeColIndex,cancel:false};sheet._trigger(spread.Events.LeaveCell,args);if(args&&args.cancel===true){return}activeRowChanged=(sheet._activeRowIndex!==cellRange.row);sheet._setActiveCellImp(cellRange.row,cellRange.col,target.rowViewportIndex,1,doNotSetFocus);if(activeRowChanged){sheet.doDataItemChanged()}sheet._trigger(spread.Events.EnterCell,{sheet:sheet,sheetName:sheet._name,row:cellRange.row,col:cellRange.col});self._updateValidationUI(cellRange.row,cellRange.col)}if(self.shift){rowIndex=Math_min(sheet._activeRowIndex,target.row);rowCount=Math_abs(sheet._activeRowIndex-target.row)+1;sheet._replaceActiveSelectedRange(rowIndex,-1,rowCount,sheet.getColumnCount(),true)}else
{sheet._setSelectedRange(sheet._activeRowIndex,-1,1,sheet.getColumnCount(),true)}}else if(target.hitTestType===3){if(!isNaN(target.row)&&!isNaN(target.col)){if(!self.shift){if(sheet._activeRowIndex!==target.row||sheet._activeColIndex!==target.col){args={sheet:sheet,sheetName:sheet._name,row:sheet._activeRowIndex,col:sheet._activeColIndex,cancel:false};sheet._trigger(spread.Events.LeaveCell,args);if(args&&args.cancel===true){return}activeRowChanged=(sheet._activeRowIndex!==target.row);sheet._setActiveCellImp(target.row,target.col,target.rowViewportIndex,target.colViewportIndex,doNotSetFocus);if(activeRowChanged){sheet.doDataItemChanged()}sheet._trigger(spread.Events.EnterCell,{sheet:sheet,sheetName:sheet._name,row:target.row,col:target.col});self._updateValidationUI(target.row,target.col)}}if(self.shift){sheet._extendSelectedRange(target.row,target.col,true)}else
{var span=sheet._spanModel.find(target.row,target.col);if(span){sheet._setSelectedRange(span.row,span.col,span.rowCount,span.colCount,true)}else
{sheet._setSelectedRange(target.row,target.col,1,1,true)}}}else
{if(sheet.isEditing()){var rect=sheet.getCellRect(sheet._activeRowIndex,sheet._activeColIndex,sheet.activeRowViewportIndex,sheet.activeColViewportIndex);sheet._render.update(rect.x,rect.y,rect.width,rect.height)}}}};_SheetEventHandler.prototype._startSelectingScroll=function(target){if(!target){return}if(target.hitTestType===3&&(isNaN(target.row)||isNaN(target.col))){return}var self=this;self.isWorking=true;self.isSelecting=true;self.startHitInfo={scrollRowViewportIndex:target.rowViewportIndex,scrollColViewportIndex:target.colViewportIndex,hitTestType:target.hitTestType};self.startScroll()};_SheetEventHandler.prototype.startSelecting=function(target){this._startSelectingCore(target);this._startSelectingScroll(target)};_SheetEventHandler.prototype.continueSelecting=function(){var self=this;if(!self.startHitInfo||!self.isWorking){return}if(self._forceCancelSelectiong===true){return}var hitTestType=self.startHitInfo.hitTestType;if(hitTestType===3){self.continueCellSelecting()}else if(hitTestType===2){self.continueRowSelecting()}else if(hitTestType===1){self.continueColumnSelecting()}};_SheetEventHandler.prototype.continueCellSelecting=function(){var self=this;var sheet=self._sheet;var hitRow=self.getHitRowIndex();var hitCol=self.getHitColumnIndex();if(hitRow>=0&&hitCol>=0){var oldSelections=sheet._selectionModel.toArray();sheet._extendSelectedRange(hitRow,hitCol,true);var newSelections=sheet._selectionModel.toArray();if(self._notEqualSelecions(oldSelections,newSelections)){sheet._trigger(spread.Events.SelectionChanging,{sheet:sheet,sheetName:sheet._name,oldSelections:oldSelections,newSelections:newSelections})}}self.continueScroll()};_SheetEventHandler.prototype.continueRowSelecting=function(){var self=this;var sheet=self._sheet;var hitRow=self.getHitRowIndex();if(hitRow>=0){var r=Math_min(sheet._activeRowIndex,hitRow);var rc=Math_max(sheet._activeRowIndex,hitRow)-r+1;var c=-1;var cc=sheet.getColumnCount();var selectionPolicy=sheet.selectionPolicy();if(selectionPolicy===0){return}var selectionUnit=sheet.selectionUnit();if(selectionUnit===2){r=-1;rc=-1}var oldSelections=sheet._selectionModel.toArray();sheet._replaceActiveSelectedRange(r,c,rc,cc,true);var newSelections=sheet._selectionModel.toArray();if(self._notEqualSelecions(oldSelections,newSelections)){sheet._trigger(spread.Events.SelectionChanging,{sheet:sheet,sheetName:sheet._name,oldSelections:oldSelections,newSelections:newSelections})}}self.continueScroll()};_SheetEventHandler.prototype.continueColumnSelecting=function(){var self=this;var sheet=self._sheet;var hitCol=self.getHitColumnIndex();if(hitCol>=0){var c=Math_min(sheet._activeColIndex,hitCol);var cc=Math_max(sheet._activeColIndex,hitCol)-c+1;var r=-1;var rc=sheet.getRowCount();var selectionPolicy=sheet.selectionPolicy();if(selectionPolicy===0){return}var selectionUnit=sheet.selectionUnit();if(selectionUnit===1){c=-1;cc=-1}var oldSelections=sheet._selectionModel.toArray();sheet._replaceActiveSelectedRange(r,c,rc,cc,true);var newSelections=sheet._selectionModel.toArray();if(self._notEqualSelecions(oldSelections,newSelections)){sheet._trigger(spread.Events.SelectionChanging,{sheet:sheet,sheetName:sheet._name,oldSelections:oldSelections,newSelections:newSelections})}}self.continueScroll()};_SheetEventHandler.prototype.stopSelecting=function(){var self=this;self.startHitInfo=keyword_null;self.stopScroll();self._forceCancelSelectiong=keyword_null;self.isWorking=false;self.isSelecting=false;var sheet=self._sheet;var needRaiseChangedEvent=!self._lastSelections;if(!needRaiseChangedEvent){var currentSelections=sheet._selectionModel.toArray();needRaiseChangedEvent=self._notEqualSelecions(self._lastSelections,currentSelections)}if(needRaiseChangedEvent){sheet._trigger(spread.Events.SelectionChanged,{sheet:self._sheet,sheetName:self._sheet._name})}};_SheetEventHandler.prototype.startDragDropping=function(target){var self=this;if(self.isDragDropping){return}var sheet=self._sheet;var fromRange=keyword_null;if(sheet._selectionModel.length===1){fromRange=sheet._selectionModel[0]}else if(sheet._selectionModel.length<1){var spanActiveCell=sheet._spanModel.find(sheet._activeRowIndex,sheet._activeColIndex);if(spanActiveCell){fromRange=spanActiveCell}else
{fromRange=new spread.Range(sheet._activeRowIndex,sheet._activeColIndex,1,1)}}if(fromRange){self.isDragDropping=true;self.isWorking=true;self._dragDropFromRange=fromRange;var rect=sheet._getRangeRect(target.rowViewportIndex,target.colViewportIndex,fromRange);var dragRect=sheet._dragRect;dragRect.x=rect.x;dragRect.y=rect.y;dragRect.width=rect.width-1;dragRect.height=rect.height-1;dragRect.row=fromRange.row;dragRect.col=fromRange.col;dragRect.rowCount=fromRange.rowCount;dragRect.colCount=fromRange.colCount;var rg=sheet._fixRange(fromRange);var hitRow=target.row,hitCol=target.col;if(hitRow<rg.row){hitRow=rg.row}if(hitRow>=rg.row+rg.rowCount){hitRow=rg.row+rg.rowCount-1}if(hitCol<rg.col){hitCol=rg.col}if(hitCol>=rg.col+rg.colCount){hitCol=rg.col+rg.colCount-1}dragRect.hitRow=hitRow;dragRect.hitCol=hitCol;dragRect.rowOffset=hitRow-rg.row;dragRect.colOffset=hitCol-rg.col;self.startHitInfo={scrollRowViewportIndex:target.rowViewportIndex,scrollColViewportIndex:target.colViewportIndex,hitTestType:target.hitTestType};self.startScroll()}};_SheetEventHandler.prototype.continueDragDropping=function(){var self=this;if(!self.startHitInfo||!self.isWorking){return}if(!self.isDragDropping||!self._dragDropFromRange){return}var mousePosition=self.mousePosition;var sheet=self._sheet;var dragRect=sheet._dragRect;dragRect.hitTarget={x:mousePosition.x,y:mousePosition.y};var hitRow=self.getHitRowIndex();var hitCol=self.getHitColumnIndex();if(hitRow>=0&&hitCol>=0){self.updateDragDropRect(hitRow,hitCol)}self.continueScroll()};_SheetEventHandler.prototype.updateDragDropRect=function(hitRow,hitCol){var self=this;if(!self.isDragDropping||!self._dragDropFromRange){return}var sheet=self._sheet;var dragRect=sheet._dragRect;var activeSelRange=sheet._getActiveSelectedRange();if(activeSelRange.row===-1&&activeSelRange.col!==-1){dragRect.row=-1;dragRect.col=hitCol}else if(activeSelRange.row!==-1&&activeSelRange.col===-1){dragRect.row=hitRow;dragRect.col=-1}else
{dragRect.row=dragRect.row<0?-1:Math_max(0,Math_min(sheet.getRowCount()-dragRect.rowCount,hitRow-dragRect.rowOffset));dragRect.col=dragRect.col<0?-1:Math_max(0,Math_min(sheet.getColumnCount()-dragRect.colCount,hitCol-dragRect.colOffset))}dragRect.hitRow=hitRow;dragRect.hitCol=hitCol;var dragRange=sheet._fixRange(dragRect);var oldDragRange=sheet._oldDragRange;if(oldDragRange){if(dragRange.row===oldDragRange.row&&dragRange.col===oldDragRange.col&&dragRange.rowCount===oldDragRange.rowCount&&dragRange.colCount===oldDragRange.colCount&&dragRange.row>sheet._getFirstVisualRow()&&dragRange.col>sheet._getFirstVisualColumn()&&dragRange.row+dragRange.rowCount-1<sheet._getLastVisualRow()&&dragRange.col+dragRange.colCount-1<sheet._getLastVisualColumn()){return}}sheet._actualDragRange=dragRange;sheet._render.refreshDragDropIndicator();sheet._oldDragRange=dragRange;var currentSpread=sheet.parent;if(currentSpread&¤tSpread.showDragDropTip()){var left=dragRect.x+dragRect.width+self.DRAGDROPTOOLTIP_OFFSET;var top=dragRect.y+dragRect.height+self.DRAGDROPTOOLTIP_OFFSET;self._showTooltip(self._getDragDropRectString(dragRange),left,top)}};_SheetEventHandler.prototype._getDragDropRectString=function(dragRange){if(dragRange&&spread.util.hasCalc()){var sheet=this._sheet;var activeSelRange=sheet._getActiveSelectedRange();var activeRow=sheet.getActiveRowIndex();var activeCol=sheet.getActiveColumnIndex();var exp;activeRow=activeRow<0?0:activeRow;activeCol=activeCol<0?0:activeCol;if(activeSelRange.rowCount===1&&activeSelRange.colCount===1){exp=new spread.Calc.Expressions.CellExpression(dragRange.row-activeRow,dragRange.col-activeCol,true,true)}else
{exp=new spread.Calc.Expressions.RangeExpression;if(activeSelRange.row===-1&&activeSelRange.col>=0){exp.initBand(dragRange.col-activeCol,dragRange.col-activeCol+activeSelRange.colCount-1,true,true,false)}else if(activeSelRange.col===-1&&activeSelRange.row>=0){exp.initBand(dragRange.row-activeRow,dragRange.row-activeRow+activeSelRange.rowCount-1,true,true,true)}else if(activeSelRange.row>=0&&activeSelRange.col>=0){exp.init(dragRange.row-activeRow,dragRange.col-activeCol,dragRange.row-activeRow+activeSelRange.rowCount-1,dragRange.col-activeCol+activeSelRange.colCount-1,true,true,true,true)}}return sheet.getCalcService().unparse(exp,activeRow,activeCol)}else
{return keyword_undefined}};_SheetEventHandler.prototype.stopDragDrop=function(){var self=this;var isInvalid=false;var invalidMessage="";var doCommand=false;var sheet=self._sheet;var rg=keyword_null;self.startHitInfo=keyword_null;self.stopScroll();var _selectedRange=sheet._getActiveSelectedRange();if(_selectedRange&&(_selectedRange.rowCount>0||_selectedRange.colCount>0)){rg={r:_selectedRange.row,c:_selectedRange.col,rc:_selectedRange.rowCount,cc:_selectedRange.colCount}}else
{rg={r:sheet._activeRowIndex,c:sheet._activeColIndex,rc:1,cc:1}}if(self.isDragDropping===true&&self.isWorking===true){var fromRow=rg.r;var fromColumn=rg.c;var rowCount=rg.rc;var columnCount=rg.cc;var toRow=sheet._dragRect.row;var toColumn=sheet._dragRect.col;var action,cancel,dragMoveExtent;if(self._isDragInsert&&(fromRow===-1||fromColumn===-1)){if(fromColumn>=0&&fromRow<0){if((self._isDragCopy&&(toColumn<=fromColumn||toColumn>=fromColumn+columnCount))||(!self._isDragCopy&&(toColumn<fromColumn||toColumn>fromColumn+columnCount))){if(sheet._hasPartSpans(-1,fromColumn,-1,columnCount)||sheet._hasPartSpans(-1,toColumn,-1,0)){isInvalid=true;invalidMessage=spread.SR.Exp_ChangeMergedCell}if(!isInvalid){if(sheet._hasPartArrayFormulas(-1,fromColumn,-1,columnCount)||sheet._hasPartArrayFormulas(-1,toColumn,-1,0)){isInvalid=true;invalidMessage=spread.SR.Exp_ChangePartOfArray}}if(!isInvalid&&sheet.isProtected){isInvalid=true;invalidMessage=spread.SR.Exp_ColumnReadOnly}if(!isInvalid&&sheet._hasPartTable(-1,toColumn,-1,1)){isInvalid=true;invalidMessage=spread.SR.Exp_DragDropShiftTableCell}if(!isInvalid&&!self._isDragCopy&&sheet._hasPartTable(-1,fromColumn,-1,columnCount)){isInvalid=true;invalidMessage=spread.SR.Exp_DragDropChangePartOfTable}if(!isInvalid){dragMoveExtent=new spread.UndoRedo.DragDropExtent(-1,fromColumn,-1,toColumn,-1,columnCount);cancel=sheet._raiseDragDropBlock(dragMoveExtent.fromRow,dragMoveExtent.fromColumn,dragMoveExtent.toRow,dragMoveExtent.toColumn,dragMoveExtent.rowCount,dragMoveExtent.columnCount,self._isDragCopy,true,1023);if(!cancel){action=new spread.UndoRedo.DragDropUndoAction(sheet,dragMoveExtent,self._isDragCopy,true,1023);sheet.doCommand(action);sheet._raiseDragDropBlockCompleted(dragMoveExtent.fromRow,dragMoveExtent.fromColumn,dragMoveExtent.toRow,dragMoveExtent.toColumn,dragMoveExtent.rowCount,dragMoveExtent.columnCount,self._isDragCopy,true,1023);doCommand=true}}}}else if(fromRow>=0&&fromColumn<0){if((self._isDragCopy&&(toRow<=fromRow||toRow>=fromRow+rowCount))||(!self._isDragCopy&&(toRow<fromRow||toRow>fromRow+rowCount))){if(sheet._hasPartSpans(fromRow,-1,rowCount,-1)||sheet._hasPartSpans(toRow,-1,0,-1)){isInvalid=true;invalidMessage=spread.SR.Exp_ChangeMergedCell}if(!isInvalid){if(sheet._hasPartArrayFormulas(fromRow,-1,rowCount,-1)||sheet._hasPartArrayFormulas(toRow,-1,0,-1)){isInvalid=true;invalidMessage=spread.SR.Exp_ChangePartOfArray}}if(!isInvalid&&sheet.isProtected){isInvalid=true;invalidMessage=spread.SR.Exp_RowReadOnly}if(!isInvalid&&!self._isDragCopy&&sheet._hasPartTable(fromRow,-1,rowCount,-1)){isInvalid=true;invalidMessage=spread.SR.Exp_DragDropChangePartOfTable}if(!isInvalid){dragMoveExtent=new spread.UndoRedo.DragDropExtent(fromRow,-1,toRow,-1,rowCount,-1);cancel=sheet._raiseDragDropBlock(dragMoveExtent.fromRow,dragMoveExtent.fromColumn,dragMoveExtent.toRow,dragMoveExtent.toColumn,dragMoveExtent.rowCount,dragMoveExtent.columnCount,self._isDragCopy,true,1023);if(!cancel){action=new spread.UndoRedo.DragDropUndoAction(sheet,dragMoveExtent,self._isDragCopy,true,1023);sheet.doCommand(action);sheet._raiseDragDropBlockCompleted(dragMoveExtent.fromRow,dragMoveExtent.fromColumn,dragMoveExtent.toRow,dragMoveExtent.toColumn,dragMoveExtent.rowCount,dragMoveExtent.columnCount,self._isDragCopy,true,1023);doCommand=true}}}}}else
{if(toRow!==fromRow||toColumn!==fromColumn){if(sheet._hasPartSpans(fromRow,fromColumn,rowCount,columnCount)||sheet._hasPartSpans(toRow,toColumn,rowCount,columnCount)){isInvalid=true;invalidMessage=spread.SR.Exp_ChangeMergedCell}if(!isInvalid){if(sheet._hasPartArrayFormulas(fromRow,fromColumn,rowCount,columnCount)||sheet._hasPartArrayFormulas(toRow,toColumn,rowCount,columnCount)){isInvalid=true;invalidMessage=spread.SR.Exp_ChangePartOfArray}}if(!isInvalid&&sheet.isProtected){if((!self._isDragCopy&&sheet._isAnyCellInRangeLocked(new spread.Range(fromRow,fromColumn,rowCount,columnCount)))||sheet._isAnyCellInRangeLocked(new spread.Range(toRow,toColumn,rowCount,columnCount))){isInvalid=true;invalidMessage=spread.SR.Exp_CellReadOnly}}if(!isInvalid){dragMoveExtent=new spread.UndoRedo.DragDropExtent(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount);cancel=sheet._raiseDragDropBlock(dragMoveExtent.fromRow,dragMoveExtent.fromColumn,dragMoveExtent.toRow,dragMoveExtent.toColumn,dragMoveExtent.rowCount,dragMoveExtent.columnCount,self._isDragCopy,false,1023);if(!cancel){action=new spread.UndoRedo.DragDropUndoAction(sheet,dragMoveExtent,self._isDragCopy,false,1023);sheet.doCommand(action);sheet._raiseDragDropBlockCompleted(dragMoveExtent.fromRow,dragMoveExtent.fromColumn,dragMoveExtent.toRow,dragMoveExtent.toColumn,dragMoveExtent.rowCount,dragMoveExtent.columnCount,self._isDragCopy,false,1023);doCommand=true}}}}}self.isWorking=false;self.isDragDropping=false;self._dragDropFromRange=keyword_null;self._isDragInsert=false;self._isDragCopy=false;self._removeTooltip();if(doCommand===false){sheet._dragRect={};sheet.repaint()}if(isInvalid){sheet._raiseInvalidOperation(3,invalidMessage)}};_SheetEventHandler.prototype.startFormulaRangeAppending=function(target){var self=this;var sheet=self._sheet,fbx=sheet._formulaTextBox;if(!fbx){return}var fbxHasStarted=fbx.isAppending();if(!fbxHasStarted||!self._formulaRangeAppendingInfo){self._formulaRangeAppendingInfo={anchorRow:-1,anchorCol:-1,leadingRow:-1,leadingCol:-1}}var rowCount=sheet.getRowCount(),colCount=sheet.getColumnCount();var hitTestType=target.hitTestType,hitRow=target.row,hitCol=target.col,shiftKey=self.shift,ctrlKey=self.ctrl;var rangeAppendingInfo=self._formulaRangeAppendingInfo,oldAnchorRow=rangeAppendingInfo.anchorRow,oldAnchorCol=rangeAppendingInfo.anchorCol,anchorRow=-1,anchorCol=-1,range;if(hitTestType===0){anchorRow=sheet.frozenRowCount?sheet._getFirstVisualRow():sheet._scrollTopRow;anchorCol=sheet.frozenColCount?sheet._getFirstVisualColumn():sheet._scrollLeftCol;range=new spread.Range(-1,-1,-1,-1);if(ctrlKey){fbx.appendRange(self.rangeToString(range),false,false)}else if(shiftKey){fbx.appendRange(self.rangeToString(range),true,false)}else
{fbx.appendRange(self.rangeToString(range),false,true)}self.isWorking=true}else if(hitTestType===1){anchorRow=sheet.frozenRowCount?sheet._getFirstVisualRow():sheet._scrollTopRow;anchorCol=hitCol;range=sheet._getExtendedRange(0,hitCol,rowCount-1,hitCol);range=new spread.Range(-1,range.col,-1,range.colCount);if(ctrlKey){fbx.appendRange(self.rangeToString(range),false,false)}else if(shiftKey){if(oldAnchorCol>=0){range=sheet._getExtendedRange(0,hitCol,rowCount-1,oldAnchorCol);range=new spread.Range(-1,range.col,-1,range.colCount)}fbx.appendRange(self.rangeToString(range),true,false)}else
{fbx.appendRange(self.rangeToString(range),false,true)}self.isWorking=true}else if(hitTestType===2){anchorRow=hitRow;anchorCol=sheet.frozenColCount?sheet._getFirstVisualColumn():sheet._scrollLeftCol;range=sheet._getExtendedRange(hitRow,0,hitRow,colCount-1);range=new spread.Range(range.row,-1,range.rowCount,-1);if(ctrlKey){fbx.appendRange(self.rangeToString(range),false,false)}else if(shiftKey){if(oldAnchorRow>=0){range=sheet._getExtendedRange(hitRow,0,oldAnchorRow,colCount-1);range=new spread.Range(range.row,-1,range.rowCount,-1)}fbx.appendRange(self.rangeToString(range),true,false)}else
{fbx.appendRange(self.rangeToString(range),false,true)}self.isWorking=true}else if(hitTestType===3){anchorRow=hitRow;anchorCol=hitCol;range=sheet._getExtendedRange(hitRow,hitCol,hitRow,hitCol);range=new spread.Range(range.row,range.col,1,1);if(ctrlKey){fbx.appendRange(self.rangeToString(range),false,false)}else if(shiftKey){if(oldAnchorRow>=0&&oldAnchorCol>=0){range=sheet._getExtendedRange(hitRow,hitCol,oldAnchorRow,oldAnchorCol)}fbx.appendRange(self.rangeToString(range),true,false)}else
{fbx.appendRange(self.rangeToString(range),false,true)}self.isWorking=true}self.isFormulaRangeAppending=self.isWorking;if(!shiftKey||!fbxHasStarted){rangeAppendingInfo.anchorRow=anchorRow;rangeAppendingInfo.anchorCol=anchorCol;rangeAppendingInfo.leadingRow=anchorRow;rangeAppendingInfo.leadingCol=anchorCol}self.startHitInfo={scrollRowViewportIndex:target.rowViewportIndex,scrollColViewportIndex:target.colViewportIndex,hitTestType:target.hitTestType};self.startScroll()};_SheetEventHandler.prototype.continueFormulaRangeAppending=function(){var self=this;var hi=self.startHitInfo;if(!hi||!self.isWorking){return}var hitTestType=hi.hitTestType;if(hitTestType===3){self.continueFormulaRangeCellAppending()}else if(hitTestType===2){self.continueFormulaRangeRowAppending()}else if(hitTestType===1){self.continueFormulaRangeColumnAppending()}};_SheetEventHandler.prototype.continueFormulaRangeCellAppending=function(){var self=this;var rangeAppendingInfo=self._formulaRangeAppendingInfo,anchorRow=rangeAppendingInfo.anchorRow,anchorCol=rangeAppendingInfo.anchorCol,hitRow=self.getHitRowIndex(),hitCol=self.getHitColumnIndex();if(anchorRow>=0&&anchorCol>=0&&hitRow>=0&&hitCol>=0){var sheet=self._sheet;var range=sheet._getExtendedRange(hitRow,hitCol,anchorRow,anchorCol);var rangeString=self.rangeToString(range);if(rangeString){var fbx=sheet._formulaTextBox;fbx.appendRange(rangeString,true,false)}}self.continueScroll()};_SheetEventHandler.prototype.continueFormulaRangeRowAppending=function(){var self=this;var anchorRow=self._formulaRangeAppendingInfo.anchorRow,hitRow=self.getHitRowIndex();if(anchorRow>=0&&hitRow>=0){var sheet=self._sheet;var range=sheet._getExtendedRange(hitRow,0,anchorRow,sheet.getColumnCount()-1);range=new spread.Range(range.row,-1,range.rowCount,-1);var rangeString=self.rangeToString(range);if(rangeString){var fbx=sheet._formulaTextBox;fbx.appendRange(rangeString,true,false)}}self.continueScroll()};_SheetEventHandler.prototype.continueFormulaRangeColumnAppending=function(){var self=this;var anchorCol=self._formulaRangeAppendingInfo.anchorCol,hitCol=self.getHitColumnIndex();if(anchorCol>=0&&hitCol>=0){var sheet=self._sheet;var range=sheet._getExtendedRange(0,hitCol,sheet.getRowCount()-1,anchorCol);range=new spread.Range(-1,range.col,-1,range.colCount);var rangeString=self.rangeToString(range);if(rangeString){var fbx=sheet._formulaTextBox;fbx.appendRange(rangeString,true,false)}}self.continueScroll()};_SheetEventHandler.prototype.stopFormulaRangeAppending=function(){var self=this;self.stopScroll();self.startHitInfo=keyword_null;self.isWorking=false;self.isFormulaRangeAppending=false};_SheetEventHandler.prototype.startFormulaRangeMoving=function(target){var self=this;var sheet=self._sheet,fbx=sheet._formulaTextBox,hi=target.formulaRangeHitInfo;if(!hi||!hi.inBorder||!fbx){return}if(fbx.isAppending()){fbx.stopAppending()}fbx.close();var paramRange=hi.paramRange,rangeString=(paramRange&¶mRange.text);if(!rangeString){return}var range=self.stringToRange(rangeString);if(!range){return}var rg=sheet._fixRange(range),hitRow=target.row,hitCol=target.col;if(hitRow<rg.row){hitRow=rg.row}if(hitRow>=rg.row+rg.rowCount){hitRow=rg.row+rg.rowCount-1}if(hitCol<rg.col){hitCol=rg.col}if(hitCol>=rg.col+rg.colCount){hitCol=rg.col+rg.colCount-1}var rowOffset=hitRow-rg.row;var colOffset=hitCol-rg.col;self.isWorking=true;self.isFormulaRangeMoving=true;self._formulaRangeMovingInfo={paramRange:paramRange,fromRange:range,rowOffset:rowOffset,colOffset:colOffset};self.startHitInfo={scrollRowViewportIndex:target.rowViewportIndex,scrollColViewportIndex:target.colViewportIndex,hitTestType:target.hitTestType};self.startScroll()};_SheetEventHandler.prototype.continueFormulaRangeMoving=function(){var self=this;if(!self.isWorking||!self.isFormulaRangeMoving){return}var hitRow=self.getHitRowIndex();var hitCol=self.getHitColumnIndex();if(hitRow>=0&&hitCol>=0){var movingInfo=self._formulaRangeMovingInfo,range=movingInfo.fromRange,rowOffset=movingInfo.rowOffset,colOffset=movingInfo.colOffset,oldToRow=movingInfo.toRow,oldToCol=movingInfo.toCol;var toRow=hitRow,toCol=hitCol;if(toRow!==oldToRow||toCol!==oldToCol){movingInfo.toRow=toRow;movingInfo.toCol=toCol;var sheet=self._sheet,sheetRowCount=sheet.getRowCount(),sheetColCount=sheet.getColumnCount(),fromRow=range.row,fromCol=range.col,fromRowCount=range.rowCount,fromColCount=range.colCount;var newRow=fromRow<0?-1:Math_max(0,Math_min(sheetRowCount-fromRowCount,hitRow-rowOffset));var newCol=fromCol<0?-1:Math_max(0,Math_min(sheetColCount-fromColCount,hitCol-colOffset));var rangeString=self.rangeToString(new spread.Range(newRow,newCol,fromRowCount,fromColCount));if(rangeString){var fbx=sheet._formulaTextBox;fbx.repalceRange(movingInfo.paramRange.index,rangeString)}}}self.continueScroll()};_SheetEventHandler.prototype.stopFormulaRangeMoving=function(){var self=this;self.stopScroll();self.isWorking=false;self.isFormulaRangeMoving=false;self._formulaRangeMovingInfo=keyword_null};_SheetEventHandler.prototype.startFormulaRangeResizing=function(target){var self=this;var sheet=self._sheet,fbx=sheet._formulaTextBox,hi=target.formulaRangeHitInfo;if(!hi||!fbx){return}if(fbx.isAppending()){fbx.stopAppending()}var paramRange=hi.paramRange,rangeString=(paramRange&¶mRange.text);if(!rangeString){return}var range=self.stringToRange(rangeString);if(!range){return}var row=range.row,endRow=range.row<0?-1:range.row+range.rowCount-1,col=range.col,endCol=range.col<0?-1:range.col+range.colCount-1;var anchorRow,anchorCol,toRow,toCol;if(hi.inTopLeft){anchorRow=endRow;anchorCol=endCol;toRow=row;toCol=col}else if(hi.inTopRight){anchorRow=endRow;anchorCol=col;toRow=row;toCol=endCol}else if(hi.inBottomLeft){anchorRow=row;anchorCol=endCol;toRow=endRow;toCol=col}else if(hi.inBottomRight){anchorRow=row;anchorCol=col;toRow=endRow;toCol=endCol}else
{return}self.isWorking=true;self.isFormulaRangeResizing=true;self._formulaRangeResizingInfo={paramRange:paramRange,anchorRow:anchorRow,anchorCol:anchorCol,toRow:toRow,toCol:toCol};self.startHitInfo={scrollRowViewportIndex:target.rowViewportIndex,scrollColViewportIndex:target.colViewportIndex,hitTestType:target.hitTestType};self.startScroll()};_SheetEventHandler.prototype.continueFormulaRangeResizing=function(){var self=this;if(!self.isWorking||!self.isFormulaRangeResizing){return}var hitRow=self.getHitRowIndex();var hitCol=self.getHitColumnIndex();if(hitRow>=0&&hitCol>=0){var resizingInfo=self._formulaRangeResizingInfo,anchorRow=resizingInfo.anchorRow,anchorCol=resizingInfo.anchorCol,oldToRow=resizingInfo.toRow,oldToCol=resizingInfo.toCol;var toRow=hitRow,toCol=hitCol;if(toRow!==oldToRow||toCol!==oldToCol){resizingInfo.toRow=toRow;resizingInfo.toCol=toCol;var sheet=self._sheet,sheetRowCount=sheet.getRowCount(),sheetColCount=sheet.getColumnCount();var fromRow=anchorRow<0?sheetRowCount-1:anchorRow,fromCol=anchorCol<0?sheetColCount-1:anchorCol;var row=Math_min(fromRow,toRow),col=Math_min(fromCol,toCol),rowCount=Math_max(fromRow,toRow)-row+1,colCount=Math_max(fromCol,toCol)-col+1;if(row===0&&rowCount===sheetRowCount){row=-1;rowCount=-1}if(col===0&&colCount===sheetColCount){col=-1;colCount=-1}var rangeString=self.rangeToString(new spread.Range(row,col,rowCount,colCount));if(rangeString){var fbx=sheet._formulaTextBox;fbx.repalceRange(resizingInfo.paramRange.index,rangeString)}}}self.continueScroll()};_SheetEventHandler.prototype.stopFormulaRangeResizing=function(){var self=this;self.stopScroll();self.isWorking=false;self.isFormulaRangeResizing=false;self._formulaRangeResizingInfo=keyword_null};_SheetEventHandler.prototype.getFormulaRangeHitInfo=function(target,x,y){var sheet=this._sheet,fbx=sheet._formulaTextBox,paramRanges=(fbx&&fbx.getRanges());if(!paramRanges||paramRanges.length===0){return keyword_null}var rowViewportIndex=target.rowViewportIndex,colViewportIndex=target.colViewportIndex;if(this.inGrayArea(rowViewportIndex,colViewportIndex,x,y)){return keyword_null}var paramRange,cr,rect;for(var i=paramRanges.length-1;i>=0;i--){paramRange=paramRanges[i];cr=this.stringToRange(paramRange.text);if(!cr){continue}rect=sheet._getRangeRect(rowViewportIndex,colViewportIndex,cr);if(rect&&rect.width>0&&rect.height>0){var size=5;var x1=rect.x-2,x2=rect.x+rect.width+1-size,y1=rect.y-2,y2=rect.y+rect.height+1-size;if(x1+size<=x&&x<x2){if((y1+1<=y&&y<=y1+3)||(y2+1<=y&&y<=y2+3)){return{paramRange:paramRange,inBorder:true}}}if(y1+size<=y&&y<y2){if((x1+1<=x&&x<=x1+3)||(x2+1<=x&&x<=x2+3)){return{paramRange:paramRange,inBorder:true}}}if(x2<=x&&x<x2+size&&y2<=y&&y<y2+size){return{paramRange:paramRange,inBottomRight:true}}if(x1<=x&&x<x1+size&&y2<=y&&y<y2+size){return{paramRange:paramRange,inBottomLeft:true}}if(x2<=x&&x<x2+size&&y1<=y&&y<y1+size){return{paramRange:paramRange,inTopRight:true}}if(x1<=x&&x<x1+size&&y1<=y&&y<y1+size){return{paramRange:paramRange,inTopLeft:true}}}}return keyword_null};_SheetEventHandler.prototype.changeFormulaReference=function(){var self=this,sheet=self._sheet,fbx=sheet._formulaTextBox;if(!fbx){return}var spreadNS=wijmo.spread,CalcNS=spread.Calc,CalcExprNS=CalcNS.Expressions;var baseRow=sheet._activeRowIndex,baseCol=sheet._activeColIndex,useR1C1=(sheet.referenceStyle()===1);var context=new CalcNS.ParserContext(useR1C1,baseRow,baseCol);var parser=new CalcNS.Parser;var range,expression;if(fbx.isAppending()){var ranges=fbx.getAppendingRanges();for(var i=0;i<ranges.length;i++){range=ranges[i];try
{expression=parser.parse(range.text,context)}catch(ex){expression=keyword_null}if(!expression){continue}if(expression instanceof CalcExprNS.RangeExpression){self.changeRangeExpressionReference(expression,baseRow,baseCol,true,true);fbx.repalceRange(range.index,parser.unparse(expression,context))}else if(expression instanceof CalcExprNS.CellExpression){self.changeCellExpressionReference(expression,baseRow,baseCol);fbx.repalceRange(range.index,parser.unparse(expression,context))}}}else
{range=fbx.getActiveRange();if(!range){return}try
{expression=parser.parse(range.text,context)}catch(ex){expression=keyword_null}if(!expression){return}if(expression instanceof CalcExprNS.RangeExpression){var separatorPosition=range.textOffset+range.text.lastIndexOf(":");var leftActive=(fbx.caret()<=separatorPosition);if(leftActive){self.changeRangeExpressionReference(expression,baseRow,baseCol,true,false);var newRangeText=parser.unparse(expression,context);fbx.repalceRange(range.index,newRangeText);fbx.caret(range.textOffset+newRangeText.lastIndexOf(":"))}else
{self.changeRangeExpressionReference(expression,baseRow,baseCol,false,true);fbx.repalceRange(range.index,parser.unparse(expression,context))}}else if(expression instanceof CalcExprNS.CellExpression){self.changeCellExpressionReference(expression,baseRow,baseCol);fbx.repalceRange(range.index,parser.unparse(expression,context))}}};_SheetEventHandler.prototype.changeRangeExpressionReference=function(expression,baseRow,baseCol,changeLeft,changeRight){var startRowRelative=expression.startRowRelative,startColumnRelative=expression.startColumnRelative;if(changeLeft){if(startRowRelative&&startColumnRelative){expression.startRowRelative=false;expression.startColumnRelative=false;expression.startRow+=baseRow;expression.startColumn+=baseCol}else if(startRowRelative){expression.startColumnRelative=true;expression.startColumn-=baseCol}else if(startColumnRelative){expression.startRowRelative=true;expression.startColumnRelative=false;expression.startRow-=baseRow;expression.startColumn+=baseCol}else
{expression.startColumnRelative=true;expression.startColumn-=baseCol}}var endRowRelative=expression.endRowRelative,endColumnRelative=expression.endColumnRelative;if(changeRight){if(endRowRelative&&endColumnRelative){expression.endRowRelative=false;expression.endColumnRelative=false;expression.endRow+=baseRow;expression.endColumn+=baseCol}else if(endRowRelative){expression.endColumnRelative=true;expression.endColumn-=baseCol}else if(endColumnRelative){expression.endRowRelative=true;expression.endColumnRelative=false;expression.endRow-=baseRow;expression.endColumn+=baseCol}else
{expression.endColumnRelative=true;expression.endColumn-=baseCol}}};_SheetEventHandler.prototype.changeCellExpressionReference=function(expression,baseRow,baseCol){var rowRelative=expression.rowRelative,columnRelative=expression.columnRelative;if(rowRelative&&columnRelative){expression.rowRelative=false;expression.columnRelative=false;expression.row+=baseRow;expression.column+=baseCol}else if(rowRelative){expression.columnRelative=true;expression.column-=baseCol}else if(columnRelative){expression.rowRelative=true;expression.columnRelative=false;expression.row-=baseRow;expression.column+=baseCol}else
{expression.columnRelative=true;expression.column-=baseCol}};_SheetEventHandler.prototype.rangeToString=function(range){if(!range){return keyword_null}var spreadNS=wijmo.spread,CalcNS=spread.Calc;var sheet=this._sheet,baseRow=sheet._activeRowIndex,baseCol=sheet._activeColIndex,useR1C1=(sheet.referenceStyle()===1);if(range.row<0&&range.col<0){range=new spreadNS.Range(0,-1,sheet.getRowCount(),-1)}return CalcNS.rangeToFormula(range,baseRow,baseCol,15,useR1C1)};_SheetEventHandler.prototype.stringToRange=function(rangeText){if(!rangeText){return keyword_null}var spreadNS=wijmo.spread,CalcNS=spread.Calc;var sheet=this._sheet,baseRow=sheet._activeRowIndex,baseCol=sheet._activeColIndex,useR1C1=(sheet.referenceStyle()===1);try
{return CalcNS.formulaToRange(rangeText,baseRow,baseCol,useR1C1)}catch(ex){}return keyword_null};_SheetEventHandler.prototype.startDragFill=function(target){var self=this;if(self.isDraggingFill===true||self.isWorking===true){return}self.updateDragFillStartRange();if(!self._dragFillStartRange){return}self.isWorking=true;self.isDraggingFill=true;self._isDragAroundIndicator=true;self._dragStartRowViewport=target.rowViewportIndex;self._dragStartColumnViewport=target.colViewportIndex;self._dragToRowViewport=target.rowViewportIndex;self._dragToColumnViewport=target.colViewportIndex;self.updateDragStartRangeViewports();self.startHitInfo={scrollRowViewportIndex:target.rowViewportIndex,scrollColViewportIndex:target.colViewportIndex,hitTestType:target.hitTestType};self.startScroll()};_SheetEventHandler.prototype.updateDragStartRangeViewports=function(){var self=this;var dragFillStartTopRow=self.dragFillStartTopRow();if(dragFillStartTopRow>=0&&dragFillStartTopRow<self._sheet.frozenRowCount){self._dragFillStartTopRowViewport=0}else if(dragFillStartTopRow>=self._sheet.frozenRowCount&&dragFillStartTopRow<=self._sheet.getRowCount()){self._dragFillStartTopRowViewport=1}if(self.isDragFillWholeColumns()){self._dragFillStartBottomRowViewport=1}else
{self._dragFillStartBottomRowViewport=self._dragStartRowViewport}var dragFillStartLeftColumn=self.dragFillStartLeftColumn();if(dragFillStartLeftColumn>=0&&dragFillStartLeftColumn<self._sheet.frozenColCount){self._dragFillStartLeftColumnViewport=0}else if(dragFillStartLeftColumn>=self._sheet.frozenColCount&&dragFillStartLeftColumn<=self._sheet.getColumnCount()){self._dragFillStartLeftColumnViewport=1}if(self.isDragFillWholeRows()){self._dragFillStartRightColumnViewport=1}else
{self._dragFillStartRightColumnViewport=self._dragStartColumnViewport}};_SheetEventHandler.prototype.continueDragFill=function(){var self=this;if(!self.startHitInfo||!self.isDraggingFill){return}if(!self.isWorking||!self._dragFillStartRange){return}self._dragToRowViewport=self.getHitRowViewportIndex();self._dragToColumnViewport=self.getHitColumnViewportIndex();self._dragToRow=self.getHitRowIndex();self._dragToColumn=self.getHitColumnIndex();if(self._dragToRow>=0&&self._dragToColumn>=0){self.updateCurrentFillSettings();self.updateCurrentFillRange();var currentSpread=self._sheet.parent;var canDragFill=false;var wholeFillRange=self.getDragFillFrameRange();if(wholeFillRange){canDragFill=self.validateFillRange(wholeFillRange)}if(currentSpread&¤tSpread.showDragFillTip()&&canDragFill){self._showDragFillTooltip()}self.refreshDragFill()}self.continueScroll()};_SheetEventHandler.prototype._getDragFillTooltipContent=function(){if(!spread.features.fill){return keyword_null}var self=this;var sheet=self._sheet;var startRange=self._dragFillStartRange;var fillRange=self._currentFillRange;var autoFillType=self.getDragAutoFillType();var fillDirection=self.getCurrentFillDirection();var dragFillFrameRange=self.getDragFillFrameRange();var fillSeries;if(autoFillType===1){if(fillDirection===0||fillDirection===1){fillSeries=1}else
{fillSeries=0}var fill=new spread.FillImp(sheet);var trendValue=keyword_null;trendValue=fill.fillAuto(dragFillFrameRange,fillSeries,true);var cellRange=self._getAvailableRange(fillDirection,fillRange,startRange);var style=sheet.getActualStyle(cellRange.row,cellRange.col);var ct=(style.cellType||sheet.getDefaultCellType());var fmt=style.formatter?style.formatter:style._autoFormatter;if(trendValue instanceof Date&&spread.features.formatter){fmt=new spread.GeneralFormatter(spread.DefaultTokens.DateTimeFormatInfo().ShortDatePattern+" hh:mm:ss AM/PM;@",0,spread._CultureInfo.currentCulture().Name())}var hitInfo=self.startHitInfo,hitType=3;if(hitInfo){hitType=self.startHitInfo.hitTestType}var context={sheet:sheet,row:cellRange.row,col:cellRange.col,sheetArea:hitType};return ct.format(trendValue,fmt,context)}else if(autoFillType===0){var cellRange=self._getAvailableRange(fillDirection,fillRange,startRange);var formula=sheet.getFormula(cellRange.row,cellRange.col);if(formula){return keyword_null}return sheet.getText(cellRange.row,cellRange.col)}else
{return keyword_null}};_SheetEventHandler.prototype._getAvailableRange=function(fillDirection,fillRange,startRange){var cellRange=new spread.Range(startRange.row,startRange.col,1,1);if(fillDirection===3){var index=fillRange.rowCount%startRange.rowCount;if(index===0){index=startRange.row+startRange.rowCount-1}else
{index=startRange.row+index-1}cellRange.row=index;cellRange.col=startRange.col}else if(fillDirection===1){var index=fillRange.colCount%startRange.colCount;if(index===0){index=startRange.col+startRange.colCount-1}else
{index=startRange.col+index-1}cellRange.row=startRange.row;cellRange.col=index}else if(fillDirection===0){var index=fillRange.colCount%startRange.colCount;if(index===0){index=startRange.col}else
{index=startRange.col+startRange.colCount-index}cellRange.row=startRange.row;cellRange.col=index}else if(fillDirection===2){var index=fillRange.rowCount%startRange.rowCount;if(index===0){index=startRange.row}else
{index=startRange.row+startRange.rowCount-index}cellRange.row=index;cellRange.col=startRange.col}return cellRange};_SheetEventHandler.prototype._showDragFillTooltip=function(){var self=this;var autoFillType=self.getDragAutoFillType();if(autoFillType===4||self.isDragFillWholeRows()||self.isDragFillWholeColumns()){self._removeTooltip();return keyword_null}else
{var left,top,info;var sheet=self._sheet;var fillDirection=self.getCurrentFillDirection();var dragFillFrameRange=self.getDragFillFrameRange();var rect=sheet._getRangeRect2(dragFillFrameRange);info=self._getDragFillTooltipContent();if(fillDirection===3){left=rect.x+rect.width+self.DRAGFILLTOOLTIP_OFFSET;top=rect.y+rect.height+self.DRAGFILLTOOLTIP_OFFSET}else if(fillDirection===1){left=rect.x+rect.width+self.DRAGFILLTOOLTIP_OFFSET;top=rect.y+rect.height+self.DRAGFILLTOOLTIP_OFFSET}else if(fillDirection===0){left=rect.x+self.DRAGFILLTOOLTIP_OFFSET;top=rect.y+rect.height+self.DRAGFILLTOOLTIP_OFFSET}else if(fillDirection===2){left=rect.x+rect.width+self.DRAGFILLTOOLTIP_OFFSET;top=rect.y+self.DRAGFILLTOOLTIP_OFFSET}self._showTooltip(info,left,top)}};_SheetEventHandler.prototype.refreshDragFill=function(){var self=this;self.clearDragFill();self.refreshSelectionBorder();self.paintDragFill();self._oldDragFillFrameRange=self.getDragFillFrameRange()};_SheetEventHandler.prototype.clearDragFill=function(){var sheet=this._sheet;if(this._oldDragFillFrameRange){var oldDragFillRect=sheet._getRangeRect2(this._oldDragFillFrameRange);oldDragFillRect.x-=2;oldDragFillRect.y-=2;oldDragFillRect.width+=4;oldDragFillRect.height+=4;sheet._render.copyDoubleBufferRect(oldDragFillRect)}};_SheetEventHandler.prototype.refreshSelectionBorder=function(ctx){var sheet=this._sheet;sheet._render.repaintSelection(this._dragFillStartRange,keyword_null,ctx)};_SheetEventHandler.prototype.paintDragFill=function(){var sheet=this._sheet;var render=sheet._render;var dragFillFrameRange=this.getDragFillFrameRange();if(!dragFillFrameRange){return}var ctx=render._getCtx();var dragFillRect=sheet._getRangeRect2(dragFillFrameRange);ctx.save();ctx.beginPath();render.paintDragRectangle(ctx,dragFillRect);ctx.restore()};_SheetEventHandler.prototype.updateCurrentFillRange=function(){this._currentFillRange=this.getCurrentFillRange()};_SheetEventHandler.prototype.isDragFillWholeRows=function(){return this._dragFillStartRange.col===-1&&this._dragFillStartRange.row!==-1};_SheetEventHandler.prototype.isDragFillWholeColumns=function(){return this._dragFillStartRange.row===-1&&this._dragFillStartRange.col!==-1};_SheetEventHandler.prototype.isDragClear=function(){return this._currentFillDirection===4||this._currentFillDirection===5};_SheetEventHandler.prototype.getCurrentFillRange=function(){var self=this;var row=-1,column=-1,rowCount=-1,columnCount=-1;switch(self._currentFillDirection){case 0:if(self.isDragFillWholeColumns()){row=-1;rowCount=-1}else
{row=self.dragFillStartTopRow();rowCount=self._dragFillStartRange.rowCount}column=self._dragToColumn;columnCount=self.dragFillStartLeftColumn()-column;break;case 1:if(self.isDragFillWholeColumns()){row=-1;rowCount=-1}else
{row=self.dragFillStartTopRow();rowCount=self._dragFillStartRange.rowCount}column=self.dragFillStartRightColumn()+1;columnCount=self._dragToColumn-column+1;break;case 2:row=self._dragToRow;rowCount=self.dragFillStartTopRow()-row;if(self.isDragFillWholeRows()){column=-1;columnCount=-1}else
{column=self.dragFillStartLeftColumn();columnCount=self._dragFillStartRange.colCount}break;case 3:row=self.dragFillStartBottomRow()+1;rowCount=self._dragToRow-row+1;if(self.isDragFillWholeRows()){column=-1;columnCount=-1}else
{column=self.dragFillStartLeftColumn();columnCount=self._dragFillStartRange.colCount}break;case 5:row=self._dragToRow;rowCount=self.dragFillStartBottomRow()-row+1;if(self.isDragFillWholeRows()){column=-1;columnCount=-1}else
{column=self.dragFillStartLeftColumn();columnCount=self._dragFillStartRange.colCount}break;case 4:if(self.isDragFillWholeColumns()){row=-1;rowCount=-1}else
{row=self._dragFillStartRange.row;rowCount=self._dragFillStartRange.rowCount}column=self._dragToColumn;columnCount=self.dragFillStartRightColumn()-column+1;break;default:break}return new spread.Range(row,column,rowCount,columnCount)};_SheetEventHandler.prototype.dragFillStartBottomRowLayout=function(){var dragStartBottomRow=this.dragFillStartBottomRow();if(dragStartBottomRow!==-1){return this._sheet._getRowLayout(this._dragFillStartBottomRowViewport).findRow(dragStartBottomRow)}return keyword_null};_SheetEventHandler.prototype.dragFillToViewportBottomRowLayout=function(){return this._sheet._getRowLayout(this._dragToRowViewport).findRow(this.dragFillToViewportBottomRow())};_SheetEventHandler.prototype.dragFillToViewportBottomRow=function(){return this._sheet.getViewportBottomRow(this._dragToRowViewport)};_SheetEventHandler.prototype.dragFillStartRightColumnLayout=function(){var dragStartRightColumn=this.dragFillStartRightColumn();if(dragStartRightColumn!==-1){return this._sheet._getColumnLayout(this._dragFillStartRightColumnViewport).findCol(dragStartRightColumn)}return keyword_null};_SheetEventHandler.prototype.dragFillToViewportRightColumnLayout=function(){return this._sheet._getColumnLayout(this._dragToColumnViewport).findCol(this.dragFillToViewportRightColumn())};_SheetEventHandler.prototype.dragFillToViewportRightColumn=function(){return this._sheet.getViewportRightColumn(this._dragToColumnViewport)};_SheetEventHandler.prototype.updateCurrentFillSettings=function(){var self=this;var isWholeRows=self.isDragFillWholeRows(),isWholeColumns=self.isDragFillWholeColumns();var t=$(self._sheet._getCanvas()).offset();var e=self.mousePosition.e,x=self.mousePosition.x,y=self.mousePosition.y;var actualX=e.pageX-t.left,actualY=e.pageY-t.top,notClear=false;var hOffset,vOffset;if(!isWholeRows&&!isWholeColumns){if(self._dragToRow>=self.dragFillStartTopRow()&&self._dragToRow<=self.dragFillStartBottomRow()){if(self._dragToColumn>=self.dragFillStartLeftColumn()&&self._dragToColumn<=self.dragFillStartRightColumn()){hOffset=Math_abs(self._dragToColumn-self.dragFillStartRightColumn());vOffset=Math_abs(self._dragToRow-self.dragFillStartBottomRow());if(vOffset>hOffset){self._currentFillDirection=5}else if(vOffset<hOffset){self._currentFillDirection=4}else
{var dragFillStartBottomRowLayout=self.dragFillStartBottomRowLayout();if(!dragFillStartBottomRowLayout){dragFillStartBottomRowLayout=self.dragFillToViewportBottomRowLayout()}if(y>dragFillStartBottomRowLayout.y+dragFillStartBottomRowLayout.height){self._currentFillDirection=3}else
{var dragFillStartRightColumnLayout=self.dragFillStartRightColumnLayout();if(!dragFillStartRightColumnLayout){dragFillStartRightColumnLayout=self.dragFillToViewportRightColumnLayout()}var hDistance=dragFillStartRightColumnLayout.x+dragFillStartRightColumnLayout.width-x;var vDistance=dragFillStartBottomRowLayout.y+dragFillStartBottomRowLayout.height-y;if(actualX>=dragFillStartRightColumnLayout.x&&actualX<=dragFillStartRightColumnLayout.x+dragFillStartRightColumnLayout.width&&actualY>=dragFillStartBottomRowLayout.y&&actualY<=dragFillStartBottomRowLayout.y+dragFillStartBottomRowLayout.height){if(hDistance>=vDistance){self._currentFillDirection=4}else
{self._currentFillDirection=5}}else
{notClear=true}}}}else if(self._dragToColumn<self.dragFillStartLeftColumn()){self._currentFillDirection=0}else if(self._dragToColumn>self.dragFillStartRightColumn()){self._currentFillDirection=1}}else if(self._dragToRow<self.dragFillStartTopRow()){if(self._dragToColumn>=self.dragFillStartLeftColumn()&&self._dragToColumn<=self.dragFillStartRightColumn()){self._currentFillDirection=2}else if(self._dragToColumn<self.dragFillStartLeftColumn()){hOffset=Math_abs(self._dragToColumn-self.dragFillStartLeftColumn());vOffset=Math_abs(self._dragToRow-self.dragFillStartTopRow());if(vOffset>=hOffset){self._currentFillDirection=2}else
{self._currentFillDirection=0}}else if(self._dragToColumn>self.dragFillStartRightColumn()){hOffset=Math_abs(self._dragToColumn-self.dragFillStartRightColumn());vOffset=Math_abs(self._dragToRow-self.dragFillStartTopRow());if(vOffset>=hOffset){self._currentFillDirection=2}else
{self._currentFillDirection=1}}}else if(self._dragToRow>self.dragFillStartBottomRow()){if(self._dragToColumn>=self.dragFillStartLeftColumn()&&self._dragToColumn<=self.dragFillStartRightColumn()){self._currentFillDirection=3}else if(self._dragToColumn<self.dragFillStartLeftColumn()){hOffset=Math_abs(self._dragToColumn-self.dragFillStartLeftColumn());vOffset=Math_abs(self._dragToRow-self.dragFillStartBottomRow());if(vOffset>=hOffset){self._currentFillDirection=3}else
{self._currentFillDirection=0}}else if(self._dragToColumn>self.dragFillStartRightColumn()){hOffset=Math_abs(self._dragToColumn-self.dragFillStartRightColumn());vOffset=Math_abs(self._dragToRow-self.dragFillStartBottomRow());if(vOffset>=hOffset){self._currentFillDirection=3}else
{self._currentFillDirection=1}}}}else if(isWholeColumns){if(self._dragToColumn>=self.dragFillStartLeftColumn()&&self._dragToColumn<=self.dragFillStartRightColumn()){self._currentFillDirection=4}else if(self._dragToColumn<self.dragFillStartLeftColumn()){self._currentFillDirection=0}else if(self._dragToColumn>self.dragFillStartRightColumn()){self._currentFillDirection=1}}else if(isWholeRows){if(self._dragToRow>=self.dragFillStartTopRow()&&self._dragToRow<=self.dragFillStartBottomRow()){self._currentFillDirection=5}else if(self._dragToRow<self.dragFillStartTopRow()){self._currentFillDirection=2}else if(self._dragToRow>self.dragFillStartBottomRow()){self._currentFillDirection=3}}var rect=self._sheet._dragFillIndicatorRect;if(rect){var currentRow=self.dragFillStartBottomRow(),currentColumn=self.dragFillStartRightColumn(),nextRow=currentRow+1,nextColumn=currentColumn+1;var currentRowHieght=self._sheet.getRowHeight(currentRow,3),currentColumnWidth=self._sheet.getColumnWidth(currentColumn,3),nextRowHeight=self._sheet.getRowHeight(nextRow,3),nextColumnWidth=self._sheet.getColumnWidth(nextColumn,3);var minX=(rect.x+rect.width/2)-Math_min(10,currentColumnWidth/2),maxX=(rect.x+rect.width/2)+Math_min(10,nextColumnWidth/2),minY=(rect.y+rect.height/2)-Math_min(10,currentRowHieght/2),maxY=(rect.y+rect.height/2)+Math_min(10,nextRowHeight/2);var isAroundIndicator=false;if(!isWholeRows&&!isWholeColumns){isAroundIndicator=(minX<=actualX&&actualX<=maxX&&minY<=actualY&&actualY<=maxY)}else if(isWholeColumns){isAroundIndicator=(minX<=actualX&&actualX<=maxX)}else if(isWholeRows){isAroundIndicator=(minY<=actualY&&actualY<=maxY)}if(isAroundIndicator||notClear){self._isDragAroundIndicator=true;self._currentFillDirection=4}else
{self._isDragAroundIndicator=false}}};_SheetEventHandler.prototype.dragFillStartTopRow=function(){if(!this._dragFillStartRange){return-1}else if(this._dragFillStartRange.row===-1){return 0}else
{return this._dragFillStartRange.row}};_SheetEventHandler.prototype.dragFillStartBottomRow=function(){var self=this;if(!self._dragFillStartRange){return-1}else if(self._dragFillStartRange.row===-1){return self._sheet.getRowCount()-1}else
{return self._dragFillStartRange.row+self._dragFillStartRange.rowCount-1}};_SheetEventHandler.prototype.dragFillStartLeftColumn=function(){if(!this._dragFillStartRange){return-1}else if(this._dragFillStartRange.col===-1){return 0}else
{return this._dragFillStartRange.col}};_SheetEventHandler.prototype.dragFillStartRightColumn=function(){var self=this;if(!self._dragFillStartRange){return-1}else if(self._dragFillStartRange.col===-1){return self._sheet.getColumnCount()-1}else
{return self._dragFillStartRange.col+self._dragFillStartRange.colCount-1}};_SheetEventHandler.prototype.endDragFill=function(){var self=this;self.startHitInfo=keyword_null;self.stopScroll();self._removeTooltip();if(!self.isDraggingFill||!self.isWorking){self.resetDragFill();return}self.isDraggingFill=false;self.isWorking=false;var wholeFillRange=self.getDragFillFrameRange();if(!wholeFillRange){return}var canDragFill=self.validateFillRange(wholeFillRange);if(!canDragFill||self._isDragAroundIndicator){self.resetDragFill();self.refreshSelection(wholeFillRange)}else
{var autoFillType=self.getDragAutoFillType();var cancel=self.executeDragFillAction(self._currentFillRange,autoFillType);if(!cancel&&self.isDragFill()){self.showDragFillSmartTag(autoFillType)}else
{self.refreshSelection(wholeFillRange)}self.resetDragFill()}};_SheetEventHandler.prototype.showDragFillSmartTag=function(autoFillType){if(!spread.features.fill_ui){return}var sheet=this._sheet;var rect=sheet._dragFillIndicatorRect;var fillInfo={x:rect.x+rect.width,y:rect.y+rect.height,fillType:autoFillType};sheet._smartTag=new spread._GcFillDialog(sheet,fillInfo);sheet._smartTag.open()};_SheetEventHandler.prototype.updateDragFillStartRange=function(){var sheet=this._sheet;if(sheet._selectionModel.length===1){this._dragFillStartRange=sheet._selectionModel[0]}else if(sheet._activeRowIndex>=0&&sheet._activeColIndex>=0){this._dragFillStartRange=new spread.Range(sheet._activeRowIndex,sheet._activeColIndex,1,1)}};_SheetEventHandler.prototype.resetDragFill=function(){this.isWorking=false;this.isDraggingFill=false};_SheetEventHandler.prototype.refreshSelection=function(range){this._sheet._render.repaintSelection(range)};_SheetEventHandler.prototype.getDragAutoFillType=function(){var self=this;if(self.isDragClear()){return 4}var isDragSingleCell=(self._dragFillStartRange.rowCount===1&&self._dragFillStartRange.colCount===1)&&!self.isDragFillWholeColumns()&&!self.isDragFillWholeRows();if(isDragSingleCell){if(self.isControlPressed){return 1}else
{return 0}}else
{if(self.isControlPressed){return 0}else
{return 1}}};_SheetEventHandler.prototype.getDragFillFrameRange=function(){var self=this;if(!self._dragFillStartRange){return keyword_null}if(self.isDragClear()){return self._dragFillStartRange}if(!self._currentFillRange){return keyword_null}var row=0,rowCount=0,column=0,columnCount=0;if(self.isVerticalDragFill()){row=self._currentFillDirection===2?self._currentFillRange.row:self._dragFillStartRange.row;rowCount=self._dragFillStartRange.rowCount+self._currentFillRange.rowCount;column=self._dragFillStartRange.col;columnCount=self._dragFillStartRange.colCount}else
{row=self._dragFillStartRange.row;rowCount=self._dragFillStartRange.rowCount;column=self._currentFillDirection===0?self._currentFillRange.col:self._dragFillStartRange.col;columnCount=self._dragFillStartRange.colCount+self._currentFillRange.colCount}return new spread.Range(row,column,rowCount,columnCount)};_SheetEventHandler.prototype.validateFillRange=function(fillRange){var sheet=this._sheet;var canDragFill=true;var invalidMessage="";if(sheet._hasSpans(fillRange.row,fillRange.col,fillRange.rowCount,fillRange.colCount)){canDragFill=false;invalidMessage=spread.SR.Exp_FillRangeContainsMergedCell}if(canDragFill&&sheet.isProtected){if(sheet._isAnyCellInRangeLocked(fillRange)){canDragFill=false;invalidMessage=spread.SR.Exp_FillCellsReadOnly}}if(!canDragFill){sheet._raiseInvalidOperation(2,invalidMessage)}return canDragFill};_SheetEventHandler.prototype.executeDragFillAction=function(fillRange,autoFillType){var self=this;var sheet=self._sheet;var savedRange=sheet._getActualRange(fillRange);self._preFillCellsInfo=new spread.UndoRedo.CopyMoveCellsInfo(savedRange.rowCount,savedRange.colCount);spread.UndoRedo.CopyMoveHelper.saveViewportInfo(sheet,self._preFillCellsInfo,savedRange.row,savedRange.col,1023);var dragFillExtent={startRange:self._dragFillStartRange,fillRange:fillRange,autoFillType:autoFillType,fillDirection:self.getCurrentFillDirection()};var cancel=sheet._raiseDragFillBlock(dragFillExtent.fillRange,dragFillExtent.fillDirection,dragFillExtent.autoFillType);if(!cancel){var dragFillUndoAction=new spread.UndoRedo.DragFillUndoAction(sheet,dragFillExtent);sheet.doCommand(dragFillUndoAction);sheet._raiseDragFillBlockCompleted(dragFillExtent.fillRange,dragFillExtent.fillDirection,dragFillExtent.autoFillType);return false}return true};_SheetEventHandler.prototype.isDragFill=function(){return this.isIncreaseFill()||this.isDecreaseFill()};_SheetEventHandler.prototype.isIncreaseFill=function(){return this._currentFillDirection===3||this._currentFillDirection===1};_SheetEventHandler.prototype.isDecreaseFill=function(){return this._currentFillDirection===0||this._currentFillDirection===2};_SheetEventHandler.prototype.isVerticalDragFill=function(){return this._currentFillDirection===2||this._currentFillDirection===3||this._currentFillDirection===5};_SheetEventHandler.prototype.isDragToRowInView=function(){return this.isRowInViewport(this._dragToRowViewport,this._dragToRow)};_SheetEventHandler.prototype.isRowInViewport=function(rowViewport,row){var viewportTopRow=this._sheet.getViewportTopRow(rowViewport);var viewportBottomRow=this._sheet.getViewportBottomRow(rowViewport);if(row>=viewportTopRow&&row<=viewportBottomRow){return true}else
{return false}};_SheetEventHandler.prototype.getCurrentDragToRowLayout=function(){return this._sheet._getRowLayout(this._dragToRowViewport).findRow(this._dragToRow)};_SheetEventHandler.prototype.isDragFillStartBottomRowInView=function(){return this.isRowInViewport(this._dragFillStartBottomRowViewport,this.dragFillStartBottomRow())};_SheetEventHandler.prototype.dragFillStartViewportBottomRowLayout=function(){return this._sheet._getRowLayout(this._dragStartRowViewport).findRow(this.dragFillStartViewportBottomRow())};_SheetEventHandler.prototype.dragFillStartViewportBottomRow=function(){return this._sheet.getViewportBottomRow(this._dragStartRowViewport)};_SheetEventHandler.prototype.getValidVerDragToRowLayout=function(){var self=this;var rowLayout;if(self.isIncreaseFill()){if(self.isDragToRowInView()){rowLayout=self.getCurrentDragToRowLayout()}else
{rowLayout=self.dragFillToViewportBottomRowLayout()}}else
{if(self.isDragFillStartBottomRowInView){rowLayout=self.dragFillStartBottomRowLayout()}else
{rowLayout=self.dragFillStartViewportBottomRowLayout()}}return rowLayout};_SheetEventHandler.prototype.isDragToColumnInView=function(){return this.isColumnInViewport(this._dragToColumnViewport,this._dragToColumn)};_SheetEventHandler.prototype.isColumnInViewport=function(columnViewport,column){var viewportLeftColumn=this._sheet.getViewportLeftColumn(columnViewport);var viewportRightColumn=this._sheet.getViewportRightColumn(columnViewport);if(column>=viewportLeftColumn&&column<=viewportRightColumn){return true}else
{return false}};_SheetEventHandler.prototype.getCurrentDragToColumnLayout=function(){return this._sheet._getColumnLayout(this._dragToColumnViewport).findCol(this._dragToColumn)};_SheetEventHandler.prototype.isDragFillStartRightColumnInView=function(){return this.isColumnInViewport(this._dragFillStartRightColumnViewport,this.dragFillStartRightColumn())};_SheetEventHandler.prototype.dragFillStartViewportRightColumnLayout=function(){return this._sheet._getColumnLayout(this._dragStartColumnViewport).findCol(this.dragFillStartViewportRightColumn())};_SheetEventHandler.prototype.dragFillStartViewportRightColumn=function(){return this._sheet.getViewportRightColumn(this._dragStartColumnViewport)};_SheetEventHandler.prototype.getValidHorDragToColumnLayout=function(){var self=this;var columnLayout;if(self.isIncreaseFill()){if(self.isDragToColumnInView()){columnLayout=self.getCurrentDragToColumnLayout()}else
{columnLayout=self.dragFillToViewportRightColumnLayout()}}else
{if(self.isDragFillStartRightColumnInView()){columnLayout=self.dragFillStartRightColumnLayout()}else
{columnLayout=self.dragFillStartViewportRightColumnLayout()}}return columnLayout};_SheetEventHandler.prototype.dragFillToViewportTopRowLayout=function(){return this._sheet._getRowLayout(this._dragToRowViewport).findRow(this.dragFillToViewportTopRow())};_SheetEventHandler.prototype.dragFillToViewportTopRow=function(){return this._sheet.getViewportTopRow(this._dragToRowViewport)};_SheetEventHandler.prototype.dragFillToViewportLeftColumnLayout=function(){return this._sheet._getColumnLayout(this._dragToColumnViewport).findCol(this.dragFillToViewportLeftColumn())};_SheetEventHandler.prototype.dragFillToViewportLeftColumn=function(){return this._sheet.getViewportLeftColumn(this._dragToColumnViewport)};_SheetEventHandler.prototype.getCurrentFillDirection=function(){switch(this._currentFillDirection){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3;case 4:return 0;case 5:return 2;default:break}return 3};_SheetEventHandler.prototype.getHitRowViewportIndex=function(){var sheet=this._sheet;var rowViewportIndex=sheet._getRowViewportIndexNearY(this.mousePosition.y);var scrollRowViewportIndex=this.startHitInfo.scrollRowViewportIndex;var rowLayoutModel=sheet._getRowLayout(1);if(rowViewportIndex===0&&scrollRowViewportIndex>0&&rowLayoutModel.length>0&&rowLayoutModel[0].row>sheet._getFirstPageTopRow()){rowViewportIndex=1}else if(rowViewportIndex===2&&scrollRowViewportIndex<2&&rowLayoutModel.length>0&&rowLayoutModel[rowLayoutModel.length-1].row<sheet._getLastVisualRow()){rowViewportIndex=1}return rowViewportIndex};_SheetEventHandler.prototype.getHitColumnViewportIndex=function(){var sheet=this._sheet;var colViewportIndex=sheet._getColumnViewportIndexNearX(this.mousePosition.x);var scrollColViewportIndex=this.startHitInfo.scrollColViewportIndex;var colLayoutModel=sheet._getColumnLayout(1);if(colViewportIndex===0&&scrollColViewportIndex>0&&colLayoutModel.length>0&&colLayoutModel[0].col>sheet._getFirstPageLeftColumn()){colViewportIndex=1}else if(colViewportIndex===2&&scrollColViewportIndex<2&&colLayoutModel.length>0&&colLayoutModel[colLayoutModel.length-1].col<sheet._getLastVisualColumn()){colViewportIndex=1}return colViewportIndex};_SheetEventHandler.prototype.getHitRowIndex=function(){var sheet=this._sheet;var y=this.mousePosition.y;var rowViewportIndex=this.getHitRowViewportIndex();var rowLayout=sheet._getViewportRowLayoutNearY(rowViewportIndex,y);if(rowLayout){var layout=sheet._getSheetLayout();var hitRow=rowLayout.row;if(rowViewportIndex===1&&y<layout.viewportY&&hitRow>sheet._getFirstPageTopRow()){return(sheet._getNextVisualRow(hitRow-1)||hitRow)}if(rowViewportIndex===1&&y>layout.frozenTrailingY&&hitRow>sheet._getLastFullyVisibleRow()){return(sheet._getPrevVisualRow(hitRow)||hitRow)}return hitRow}return-1};_SheetEventHandler.prototype.getHitColumnIndex=function(){var sheet=this._sheet;var x=this.mousePosition.x;var colViewportIndex=this.getHitColumnViewportIndex();var colLayout=sheet._getViewportColumnLayoutNearX(colViewportIndex,x);if(colLayout){var layout=sheet._getSheetLayout();var hitCol=colLayout.col;if(colViewportIndex===1&&x<layout.viewportX&&hitCol>sheet._getFirstPageLeftColumn()){return(sheet._getNextVisualColumn(hitCol-1)||hitCol)}if(colViewportIndex===1&&x>layout.frozenTrailingX&&hitCol>sheet._getLastFullyVisibleColumn()){return(sheet._getPrevVisualColumn(hitCol)||hitCol)}return hitCol}return-1};_SheetEventHandler.prototype.getIntervalFromDistance=function(distance){var interval=0;if(!isNaN(distance)&&distance!==0){var isNegative=(distance<0);distance=Math_abs(distance);interval=Math_ceil(500/distance);interval=Math_max(20,interval*10);if(interval>200){interval=200}if(isNegative){interval=-interval}}return interval};_SheetEventHandler.prototype.updateRange=function(row,col,rowCount,colCount){if(rowCount===0||colCount===0){return}var self=this;var sheet=self._sheet;var viewport=3;var frozRowLayoutModel=sheet._getRowLayout(0,viewport);var frozColLayoutModel=sheet._getColumnLayout(0,viewport);var rowLayoutModel=sheet._getRowLayout(1,viewport);var colLayoutModel=sheet._getColumnLayout(1,viewport);var maxCol=0;if(frozColLayoutModel&&frozColLayoutModel.length>0){maxCol=frozColLayoutModel[frozColLayoutModel.length-1].col}if(colLayoutModel&&colLayoutModel.length>0){maxCol=colLayoutModel[colLayoutModel.length-1].col}var y=self.getYForRow(row,col,rowCount,colCount,true,maxCol,frozRowLayoutModel,rowLayoutModel);var y2=self.getYForRow(row,col,rowCount,colCount,false,maxCol,frozRowLayoutModel,rowLayoutModel);var maxRow=0;if(frozRowLayoutModel&&frozRowLayoutModel.length>0){maxRow=frozRowLayoutModel[frozRowLayoutModel.length-1].row}if(rowLayoutModel&&rowLayoutModel.length>0){maxRow=rowLayoutModel[rowLayoutModel.length-1].row}var x=self.getXForCol(row,col,rowCount,colCount,true,maxRow,frozColLayoutModel,colLayoutModel);var x2=self.getXForCol(row,col,rowCount,colCount,false,maxRow,frozColLayoutModel,colLayoutModel);var layout=sheet._getSheetLayout(),render=sheet._render;if(x2>x&&y2>y){render.update(x-layout.headerX-2,y-layout.headerY-2,x2-x+2*layout.headerX+2,y2-y+2*layout.headerY+2)}if(y2>y){render.update(layout.headerX,y,layout.rowHeaderWidth,y2-y)}if(x2>x){render.update(x,layout.headerY,x2-x,layout.colHeaderHeight);render.update(x,layout.footerY,x2-x,layout.colHeaderHeight)}};_SheetEventHandler.prototype.getYForRow=function(row,col,rowCount,colCount,bTop,maxCol,frozRowLayoutModel,rowLayoutModel){var sheet=this._sheet;var trow=row;if(!bTop){trow=row+rowCount-1}if(trow<sheet.frozenRowCount){if(frozRowLayoutModel.length<1){return-1}}else
{if(rowLayoutModel.length<1){return-1}if(bTop){if(trow<rowLayoutModel[0].row){trow=rowLayoutModel[0].row}}else
{if(trow>rowLayoutModel[rowLayoutModel.length-1].row){trow=rowLayoutModel[rowLayoutModel.length-1].row}}}var y=0;if(bTop){y=90000}for(var c=Math_max(sheet._scrollLeftCol,col);c<col+colCount&&c<=maxCol;c++){var rect=sheet.getCellRect(trow,c);if(rect){if(bTop){if(rect.y<y){y=rect.y}}else
{if(y<rect.y+rect.height){y=rect.y+rect.height}}}}return y};_SheetEventHandler.prototype.getXForCol=function(row,col,rowCount,colCount,bLeft,maxRow,frozColLayoutModel,colLayoutModel){var sheet=this._sheet;var tcol=col;if(!bLeft){tcol=col+colCount-1}if(tcol<sheet.frozenColCount){if(frozColLayoutModel.length<1){return}}else
{if(colLayoutModel.length<1){return}if(bLeft){if(tcol<colLayoutModel[0].col){tcol=colLayoutModel[0].col}}else
{if(tcol>colLayoutModel[colLayoutModel.length-1].col){tcol=colLayoutModel[colLayoutModel.length-1].col}}}var x=0;if(bLeft){x=90000}for(var r=Math_max(sheet._scrollTopRow,row);r<row+rowCount&&r<=maxRow;r++){var rect=sheet.getCellRect(r,tcol);if(rect){if(bLeft){if(rect.x<x){x=rect.x}}else
{if(x<rect.x+rect.width){x=rect.x+rect.width}}}}return x};_SheetEventHandler.prototype._getPrevVisualRowBeforeFindRow=function(row,sheetArea){var sheet=this._sheet;var tempRow=row;if(this._isCellHiddenByGroup(tempRow,0,sheetArea)){tempRow=sheet._getPrevVisualRow(tempRow,sheetArea);return(tempRow!==keyword_null)?tempRow:row}else
{return row}};_SheetEventHandler.prototype._getPrevVisualColBeforeFindCol=function(col,sheetArea){var sheet=this._sheet;var tempCol=col;if(this._isCellHiddenByGroup(0,tempCol,sheetArea)){tempCol=sheet._getPrevVisualColumn(tempCol,sheetArea);return(tempCol!==keyword_null)?tempCol:col}else
{return col}};_SheetEventHandler.prototype._isCellHiddenByGroup=function(row,col,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var sheet=this._sheet;var rowRangeGroup,colRangeGroup;if(sheetArea===3){rowRangeGroup=sheet.rowRangeGroup;colRangeGroup=sheet.colRangeGroup}else if(sheetArea===1){colRangeGroup=sheet.colRangeGroup}else if(sheetArea===2){rowRangeGroup=sheet.rowRangeGroup}var rowHidden=(rowRangeGroup&&!rowRangeGroup._isEmpty()&&rowRangeGroup.isCollapsed(row));var colHidden=(colRangeGroup&&!colRangeGroup._isEmpty()&&colRangeGroup.isCollapsed(col));return(rowHidden||colHidden)};_SheetEventHandler.prototype._getResizeRowInfo=function(sheet,target,resizeArea,sheetArea,y){var op=keyword_null;var rowLayout=sheet._getRowLayout(target.rowViewportIndex,sheetArea);if(rowLayout&&!isNaN(target.row)&&!isNaN(target.col)){target.row=this._getPrevVisualRowBeforeFindRow(target.row,sheetArea);var rl=rowLayout.findRow(target.row);if(rl){if(rl.y+rl.height-resizeArea<=y&&y<=rl.y+rl.height+resizeArea){op={action:"sizeRow",index:target.row,sheetArea:sheetArea};var lastRow=rowLayout[rowLayout.length-1].row;if(lastRow>=0){var lastVisibleRow=sheet._getLastVisualRow(sheetArea);if(op.index===lastVisibleRow&&op.index!==lastRow){if(rl.y+rl.height-resizeArea/2<=y){op={action:"sizeRow",index:lastRow,sheetArea:sheetArea}}}}}else if(rl.y-resizeArea<=y&&y<=rl.y+resizeArea){if(rowLayout.indexOf(rl)>0){op={action:"sizeRow",index:target.row-1,sheetArea:sheetArea}}}}if(!op&&target.rowViewportIndex===1&&rowLayout.length>0){rl=rowLayout[0];if(Math_max(0,rl.y-resizeArea)<=y&&y<=rl.y+resizeArea){var row=target.row-1;var preRowLayout=sheet._getRowLayout(target.rowViewportIndex-1,sheetArea);if(row>=0&&preRowLayout&&!preRowLayout.findRow(row)){if(sheet.getRowHeight(row)===0){op={action:"sizeRow",index:row,sheetArea:sheetArea}}}}}}if(op&&!sheet.getRowResizable(op.index,sheetArea)){op=keyword_null}return op};_SheetEventHandler.prototype._getResizeColInfo=function(sheet,target,resizeArea,sheetArea,x){var op=keyword_null;var colLayout=sheet._getColumnLayout(target.colViewportIndex,sheetArea);if(colLayout&&!isNaN(target.col)&&!isNaN(target.row)){target.col=this._getPrevVisualColBeforeFindCol(target.col,sheetArea);var cl=colLayout.findCol(target.col);if(cl){if(cl.x+cl.width-resizeArea<=x&&x<=cl.x+cl.width+resizeArea){op={action:"sizeCol",index:target.col,sheetArea:sheetArea};var lastCol=colLayout[colLayout.length-1].col;if(lastCol>=0){var lastVisibleCol=sheet._getLastVisualColumn(sheetArea);if(op.index===lastVisibleCol&&op.index!==lastCol){if(cl.x+cl.width-resizeArea/2<=x){op={action:"sizeCol",index:lastCol,sheetArea:sheetArea}}}}}else if(cl.x-resizeArea<=x&&x<=cl.x+resizeArea){if(colLayout.indexOf(cl)>0){op={action:"sizeCol",index:target.col-1,sheetArea:sheetArea}}}}if(!op&&target.colViewportIndex===1&&colLayout.length>0){cl=colLayout[0];if(Math_max(0,cl.x-resizeArea)<=x&&x<=cl.x+resizeArea){var col=target.col-1;var preColLayout=sheet._getColumnLayout(target.colViewportIndex-1,sheetArea);if(col>=0&&preColLayout&&!preColLayout.findCol(col)){if(sheet.getColumnWidth(col)===0){op={action:"sizeCol",index:col,sheetArea:sheetArea}}}}}}if(op&&!sheet.getColumnResizable(op.index,sheetArea)){op=keyword_null}return op};_SheetEventHandler.prototype.getResizingRowCol=function(target,x,y,resizeArea){var self=this;var sheet=self._sheet;var op=keyword_null,r,c;if(!sheet.parent||sheet.parent._allowUserResize){var sheetLayout=sheet._getSheetLayout();if(target.rowViewportIndex<0&&target.colViewportIndex>=0&&sheet.colHeaderVisible){op=self._getResizeColInfo(sheet,target,resizeArea,1,x);if(!op){op=self._getResizeRowInfo(sheet,target,resizeArea,1,y)}}else if(target.rowViewportIndex>=0&&target.colViewportIndex<0&&sheet.rowHeaderVisible){op=self._getResizeRowInfo(sheet,target,resizeArea,2,y);if(!op){op=self._getResizeColInfo(sheet,target,resizeArea,2,x)}}else if(target.rowViewportIndex<0&&target.colViewportIndex<0){if((sheet._getLastVisualRow(2)===keyword_null)&&(Math_abs(y-sheetLayout.colHeaderHeight)<=resizeArea)){var rowLayout=sheet._getRowLayout(1);if(rowLayout&&rowLayout.length>0){r=rowLayout[rowLayout.length-1].row}if(r>=0){op={action:"sizeRow",index:r,sheetArea:2}}}else if((sheet._getLastVisualColumn(1)===keyword_null)&&(Math_abs(x-sheetLayout.rowHeaderWidth)<=resizeArea)){var colLayout=sheet._getColumnLayout(1);if(colLayout&&colLayout.length>0){c=colLayout[colLayout.length-1].col}if(c>=0){op={action:"sizeCol",index:c,sheetArea:1}}}}else if(target.rowViewportIndex>=0&&target.colViewportIndex>=0){if((sheetLayout.colHeaderHeight===0)&&(y<=resizeArea)&&sheet.colHeaderVisible){r=sheet.getRowCount(1)-1;if(r>=0){op={action:"sizeRow",index:r,sheetArea:1}}}else if((sheetLayout.rowHeaderWidth===0)&&(x<=resizeArea)&&sheet.rowHeaderVisible){c=sheet.getColumnCount(2)-1;if(c>=0){op={action:"sizeCol",index:c,sheetArea:2}}}}}return op};_SheetEventHandler.prototype.getDragInfo=function(target,x,y){var self=this;var op=keyword_null;var rowViewportIndex=target.rowViewportIndex,colViewportIndex=target.colViewportIndex;if(typeof(rowViewportIndex)===const_undefined||rowViewportIndex===keyword_null||typeof(colViewportIndex)===const_undefined||colViewportIndex===keyword_null){return op}var sheet=self._sheet;var activeSelRange=sheet._getActiveSelectedRange();if(activeSelRange.row===-1&&activeSelRange.col===-1){return op}if(rowViewportIndex>=0&&colViewportIndex>=0&&sheet._selectionModel.length===1){if(self.inGrayArea(rowViewportIndex,colViewportIndex,x,y)){return op}var r=sheet._getRangeRect(rowViewportIndex,colViewportIndex,activeSelRange);if(r.x-4<x&&x<r.x+4&&r.y<=y&&y<r.y+r.height){op={action:"drag",side:"left"}}if(!op){var rect=self._sheet._dragFillIndicatorRect;if(rect&&rect.x<=x&&x<=rect.x+rect.width&&rect.y<=y&&y<=rect.y+rect.height){op={action:"drag",side:"corner"}}}if(!op){if(r.x+r.width-4<x&&x<r.x+r.width+4&&r.y<=y&&y<r.y+r.height){op={action:"drag",side:"right"}}}if(!op){if(r.y-4<y&&y<r.y+4&&r.x<=x&&x<r.x+r.width){op={action:"drag",side:"top"}}}if(!op){if(r.y+r.height-4<y&&y<r.y+r.height+4&&r.x<=x&&x<r.x+r.width){op={action:"drag",side:"bottom"}}}if(op){if(x<r.x||x>r.x+r.width||y<r.y||y>r.y+r.height){op.outside=true}}}if(!self._sheet.canUserDragDrop()){if(op&&op.side!=="corner"){op.side=keyword_null}}if(!self._sheet.canUserDragFill()){if(op&&op.side==="corner"){op.side=keyword_null}}return op};_SheetEventHandler.prototype.inGrayArea=function(rowViewportIndex,colViewportIndex,x,y){var sheet=this._sheet,layout=sheet._getSheetLayout(),viewportRect=layout.viewportRect(1,1);if(colViewportIndex===1){var colLayoutModel=sheet._getColumnLayout(colViewportIndex);if(colLayoutModel&&colLayoutModel.length>0){var colLayout=colLayoutModel[colLayoutModel.length-1];if(colLayout.x+colLayout.width<=x&&x<viewportRect.x+viewportRect.width){return true}}else if(viewportRect.contains(x,y)){return true}}if(rowViewportIndex===1){var rowLayoutModel=sheet._getRowLayout(rowViewportIndex);if(rowLayoutModel&&rowLayoutModel.length>0){var rowLayout=rowLayoutModel[rowLayoutModel.length-1];if(rowLayout.y+rowLayout.height<=y&&y<viewportRect.y+viewportRect.height){return true}}else if(viewportRect.contains(x,y)){return true}}return false};_SheetEventHandler.prototype.doMouseMove=function(e){var t=this._getCanvasOffset();this.doMouseMoveImp(e,e.pageX-t.left,e.pageY-t.top)};_SheetEventHandler.prototype.doMouseOut=function(e){var sheet=this._sheet;var oldTarget=sheet._currentTarget;if(oldTarget&&oldTarget.cellTypeHitInfo){var row=oldTarget.row,col=oldTarget.col;var celltype=sheet.getCellType(row,col,oldTarget.hitTestType);celltype.processMouseLeave(oldTarget.cellTypeHitInfo)}if(this.isWorking){return}var outTarget={x:-10000,y:-10000,rowViewportIndex:keyword_null,colViewportIndex:keyword_null,row:-1,col:-1,resizeInfo:keyword_null,hitTestType:keyword_null};sheet._setHoverCell(outTarget)};_SheetEventHandler.prototype._hoverShowComment=function(target){var sheet=this._sheet;var row=-1,col=-1;if(target){if(target.rowViewportIndex>=0&&target.colViewportIndex>=0){row=target.row;col=target.col}}if(sheet.parent){if(row<0||col<0){return}var comment=sheet.getComment(row,col);if(sheet._commentManager){sheet._commentManager.hoverShowComment(comment)}}};_SheetEventHandler.prototype.doMouseMoveImp=function(e,x,y){var self=this;self.mousePosition={e:e,x:x,y:y};var sheet=self._sheet;if(self.isMouseDown){if(!window.gcGlobal.activeElement){window.gcGlobal.activeElement=sheet}}if(self.isMouseDown&&self.isWorking){if(self.isResizing){self.continueResizing()}else if(self.isDragDropping){self.continueDragDropping()}else if(self.isDraggingFill){self.continueDragFill()}else if(self.isFormulaRangeAppending){self.continueFormulaRangeAppending()}else if(self.isFormulaRangeMoving){self.continueFormulaRangeMoving()}else if(self.isFormulaRangeResizing){self.continueFormulaRangeResizing()}else if(self.isSelecting){self.continueSelecting()}return}var target=sheet.hitTest(x,y);if(!target){return}if(spread.features.comment){self._hoverShowComment(target)}var canvas=sheet._getCanvas();if(!canvas){return}var oldTarget=sheet._currentTarget;var targetChanged=((!oldTarget)||(target.row!==oldTarget.row)||(target.col!==oldTarget.col)||(target.hitTestType!==oldTarget.hitTestType)||(target.resizeInfo&&!oldTarget.resizeInfo)||(!target.resizeInfo&&oldTarget.resizeInfo)||(target.resizeInfo&&target.resizeInfo.action!==oldTarget.resizeInfo.action)||(target.dragInfo&&!oldTarget.dragInfo)||(!target.dragInfo&&oldTarget.dragInfo)||(target.dragInfo&&target.dragInfo.action!==oldTarget.dragInfo.action));if(oldTarget&&targetChanged){if(oldTarget.cellTypeHitInfo){var row=oldTarget.row;var col=oldTarget.col;var celltype=sheet.getCellType(row,col,oldTarget.hitTestType);celltype.processMouseLeave(oldTarget.cellTypeHitInfo)}}var resizeInfo=target.resizeInfo,dragInfo=target.dragInfo,frInfo=target.formulaRangeHitInfo,cellTypeInfo=target.cellTypeHitInfo,render=sheet._render;if(resizeInfo){if(resizeInfo.action==="sizeCol"){canvas.style.cursor="w-resize"}else if(resizeInfo.action==="sizeRow"){canvas.style.cursor="n-resize"}else
{canvas.style.cursor="default"}}else if(dragInfo&&dragInfo.action==="drag"){if(dragInfo.side==="corner"){canvas.style.cursor="crosshair"}else if(dragInfo.side){canvas.style.cursor="move"}}else if(frInfo){if(frInfo.inBorder){canvas.style.cursor="move"}else if(frInfo.inTopLeft){canvas.style.cursor="nw-resize"}else if(frInfo.inTopRight){canvas.style.cursor="ne-resize"}else if(frInfo.inBottomLeft){canvas.style.cursor="sw-resize"}else if(frInfo.inBottomRight){canvas.style.cursor="se-resize"}var oldFormulaRangeHoving=self.isFormulaRangeHoving,oldFormulRangeHovingInfo=self._formulRangeHovingInfo,oldParamRange=(oldFormulRangeHovingInfo&&oldFormulRangeHovingInfo.paramRange);var newParamRange=frInfo.paramRange;self.isFormulaRangeHoving=true;self._formulRangeHovingInfo={paramRange:newParamRange};if(!oldFormulaRangeHoving||newParamRange.index!==oldParamRange.index){render.paintFormulaTextBox()}}else
{if(cellTypeInfo){var rowIndex=target.row;var colIndex=target.col;var celltype=sheet.getCellType(rowIndex,colIndex,target.hitTestType);cellTypeInfo.sheet=sheet;if(targetChanged){celltype.processMouseEnter(cellTypeInfo)}celltype.processMouseMove(cellTypeInfo)}if(targetChanged||!cellTypeInfo||!cellTypeInfo.isReservedLocation){canvas.style.cursor="default"}if(self.isFormulaRangeHoving){self.isFormulaRangeHoving=false;self._formulRangeHovingInfo=keyword_null;render.paintFormulaTextBox()}}sheet._setHoverCell(target)};_SheetEventHandler.prototype.doMouseUp=function(e){var self=this;var sheet=self._sheet;if(!sheet.inCanvas){self.unhandleDocumentMouseMove()}var t=self._getCanvasOffset();if(!sheet._isMouseDownInSheet){return true}else
{sheet._isMouseDownInSheet=false}self.doMouseUpImp(e,e.pageX-t.left,e.pageY-t.top);return false};_SheetEventHandler.prototype.doMouseUpImp=function(e,x,y){var self=this;var sheet=self._sheet;var ae=window.gcGlobal.activeElement;self.isMouseDown=false;if(ae&&ae!==sheet&&ae.endEdit){ae.endEdit();ae.repaint()}if(self.isResizing){self.stopResizing()}else if(self.isDragDropping){self.stopDragDrop()}else if(self.isDraggingFill){self.endDragFill()}else if(self.isFormulaRangeAppending){self.stopFormulaRangeAppending()}else if(self.isFormulaRangeMoving){self.stopFormulaRangeMoving()}else if(self.isFormulaRangeResizing){self.stopFormulaRangeResizing()}else if(sheet._currentTarget){var currentTarget=sheet._currentTarget;if(currentTarget.cellTypeHitInfo){var r=currentTarget.row,c=currentTarget.col,ct=sheet.getCellType(r,c,currentTarget.hitTestType);if(!currentTarget.cellTypeHitInfo.sheet){currentTarget.cellTypeHitInfo.sheet=sheet}ct.processMouseUp(currentTarget.cellTypeHitInfo)}if(!currentTarget.cellTypeHitInfo||!currentTarget.cellTypeHitInfo.isReservedLocation){sheet._trigger(spread.Events.CellClick,{sheet:sheet,sheetName:sheet._name,sheetArea:currentTarget.hitTestType,row:currentTarget.row,col:currentTarget.col})}}window.gcGlobal.activeElement=sheet;self.stopSelecting();self.setMetaKeyState(e)};_SheetEventHandler.prototype.startEdit=function(e){var sheet=this._sheet;var canvas=sheet._getCanvas();var t=this._getCanvasOffset();if(!e.shiftKey&&!e.ctrlKey){sheet._doStartEdit(canvas,e.pageX-t.left,e.pageY-t.top)}};_SheetEventHandler.prototype.doKeyDown=function(event){var self=this;var sheet=self._sheet;if(sheet){var activeRowIndex=sheet.getActiveRowIndex(),activeColumnIndex=sheet.getActiveColumnIndex(),cellType=sheet.getCellType(activeRowIndex,activeColumnIndex),context={isEditing:sheet.isEditing(),sheet:sheet,row:activeRowIndex,col:activeColumnIndex,sheetArea:3},context1={sheet:sheet,row:activeRowIndex,col:activeColumnIndex,sheetArea:3};if(cellType&&cellType.isReservedKey(event,context)){if(!sheet.isEditing()){cellType.processKeyDown(event,context1)}return}var fbx=sheet._formulaTextBox;if(fbx&&fbx.isReservedKey(event)){return}var attachedFBX=(sheet.parent&&sheet.parent._attachedFormulaTextBox);if(attachedFBX&&attachedFBX.isReservedKey(event)){return}}var navKey=(!sheet.isEditing()&&!event.ctrlKey&&!event.metaKey&&(event.keyCode===34||event.keyCode===33||event.keyCode===37||event.keyCode===39||event.keyCode===9||event.keyCode===13||event.keyCode===38||event.keyCode===40));if(sheet._isTouchMode){sheet._isTouchMode=false;sheet._render.refreshTouchSelectionIndicator()}if(navKey){if(self._keyPressed){if(self._keyPressedCount<25){self._keyPressedCount++}spread.util.cancelDefault(event);return}self._keyPressed=true;self._keyPressedCount=1;self._repeatKeyDown(event)}else
{self._keyDownImp(event)}};_SheetEventHandler.prototype._getMouseDownResizeTooltipContent=function(){var sheet=this._sheet;var currentTarget=sheet._currentTarget;var resizeInfo=currentTarget.resizeInfo;if(resizeInfo.action==="sizeRow"){var rowLayout=sheet._getAllRowLayout(resizeInfo.sheetArea);resizeInfo.index=this._getPrevVisualRowBeforeFindRow(resizeInfo.index,resizeInfo.sheetArea);var rl=rowLayout.findRow(resizeInfo.index);if(!rl){rl=rowLayout.findRow(currentTarget.row)}return spread.SR.Tip_Height+rl.height.toFixed(0)+spread.SR.Tip_pixels}else
{var colLayout=sheet._getAllColumnLayout(resizeInfo.sheetArea);resizeInfo.index=this._getPrevVisualColBeforeFindCol(resizeInfo.index,resizeInfo.sheetArea);var cl=colLayout.findCol(resizeInfo.index);if(!cl){cl=colLayout.findCol(currentTarget.col)}return spread.SR.Tip_Width+cl.width.toFixed(0)+spread.SR.Tip_pixels}};_SheetEventHandler.prototype._getMouseMoveResizeTooltipContent=function(resizeInfo){if(resizeInfo.action==="sizeRow"){return spread.SR.Tip_Height+(resizeInfo.movingY-resizeInfo.startY).toFixed(0)+spread.SR.Tip_pixels}else
{return spread.SR.Tip_Width+(resizeInfo.movingX-resizeInfo.startX).toFixed(0)+spread.SR.Tip_pixels}};_SheetEventHandler.prototype._repeatKeyDown=function(event){var self=this;if(!self._keyPressed){return}self._keyDownImp(event);if(self._keyPressed){self._repeatKeyDownTimeoutID=window.setTimeout(function(){self._repeatKeyDown(event)},500/self._keyPressedCount)}};_SheetEventHandler.prototype._startEditByKeyboard=function(){var sheet=this._sheet;var c=sheet._getCanvas();if(c){sheet._startEditByKeydown=true;try
{var isEditing=sheet.isEditing();sheet._startEditImp(c,sheet._activeRowIndex,sheet._activeColIndex,keyword_null,keyword_null,true);if(!isEditing&&sheet.isEditing()){var ct=sheet.getCellType(sheet._activeRowIndex,sheet._activeColIndex);if(ct._triggerButtonClicked&&event.keyCode===32&&!event.ctrlKey&&!event.shiftKey&&!event.altKey){ct._triggerButtonClicked(sheet,sheet._activeRowIndex,sheet._activeColIndex)}if(ct._cancelDefaultKeydown){ct._cancelDefaultKeydown(event)}}}finally
{sheet._startEditByKeydown=false}}};_SheetEventHandler.prototype._keyDownImp=function(event){var self=this;var sheet=self._sheet;self.setMetaKeyState(event);if(event.keyCode===9){spread.util.cancelDefault(event)}if(!sheet.isEditing()&&event.keyCode===27&&!event.altKey&&!event.ctrlKey&&!event.shiftKey&&sheet._validationInputMessage){$(sheet._validationInputMessage).remove();sheet._validationInputMessage=keyword_null}if(!sheet.isEditing()&&(event.keyCode===34||event.keyCode===33||event.keyCode===35||event.keyCode===36||event.keyCode===38||event.keyCode===40)){spread.util.cancelDefault(event)}if(!sheet.isEditing()&&(event.keyCode===37||event.keyCode===39)){spread.util.cancelDefault(event)}if(spread.features.floatingObject&&sheet._processFloatingObjectsKeyMap(event)){return}if(spread.features.comment&&sheet._processCommentKeyMap(event)){return}if(sheet._processKeyMap(event)){return}var isIme=event.keyCode===229||event.keyCode===0;if(self.allowEnterEditing(event)&&!isIme){var fbx=sheet._formulaTextBox;if(fbx&&fbx.isAppending()){fbx.stopAppending()}var isEditing=sheet.isEditing();if(!isEditing){var hitElement=spread.Global.prototype.getUIElement(event.target);var isAFBX=(hitElement&&hitElement.getAttribute("gcUIElement")==="gcAttachedFormulaTextBox");if(!isAFBX){self._startEditByKeyboard()}}}};_SheetEventHandler.prototype.doKeyUp=function(event){var self=this;self._keyPressed=false;if(self._repeatKeyDownTimeoutID>0){window.clearTimeout(self._repeatKeyDownTimeoutID);self._repeatKeyDownTimeoutID=0}var sheet=self._sheet;if(sheet){var activeRowIndex=sheet.getActiveRowIndex(),activeColumnIndex=sheet.getActiveColumnIndex(),cellType=sheet.getCellType(activeRowIndex,activeColumnIndex),context={isEditing:sheet.isEditing(),sheet:sheet,row:activeRowIndex,col:activeColumnIndex,sheetArea:3},context1={sheet:sheet,row:activeRowIndex,col:activeColumnIndex,sheetArea:3};if(cellType&&cellType.isReservedKey(event,context)){if(!sheet.isEditing()){cellType.processKeyUp(event,context1)}return}var fbx=sheet._formulaTextBox;if(fbx&&fbx.isReservedKey(event)){return}var attachedFBX=(sheet.parent&&sheet.parent._attachedFormulaTextBox);if(attachedFBX&&attachedFBX.isReservedKey(event)){return}}self.setMetaKeyState(event)};_SheetEventHandler.prototype.doCompositionStart=function(){this._startEditByKeyboard()};_SheetEventHandler.prototype.allowEnterEditing=function(e){if(e.ctrlKey||e.altKey||e.metaKey){return false}if(e.keyCode>=65&&e.keyCode<=90){return true}else if((e.keyCode>=48&&e.keyCode<=57)||(e.keyCode>=96&&e.keyCode<=105)){return true}else if(e.keyCode>=186&&e.keyCode<=192){return true}else if(e.keyCode>=220&&e.keyCode<=222||e.keyCode===219){return true}else if(e.keyCode>=106&&e.keyCode<=111){return true}else if(e.keyCode===32){return true}else if(e.keyCode===61){return true}else if(e.keyCode===173){return true}else if(e.keyCode===229||e.keyCode===0){return true}else if(e.keyCode===8){return true}return false};_SheetEventHandler.prototype.setMetaKeyState=function(e){var self=this;var sheet=self._sheet;self.shift=e.shiftKey&&!e.ctrlKey;self.ctrl=e.ctrlKey&&!e.shiftKey;sheet._isNavigateInSelection=false;if(e.keyCode===9){if(sheet._selectionModel.length>1){sheet._isNavigateInSelection=true}else
{var range=sheet._getActiveSelectedRange();if(range&&sheet._selectionModel.length>0){sheet._isNavigateInSelection=!(sheet._activeRowIndex===range.row&&sheet._activeColIndex===range.col&&sheet._activeRowCount===range.rowCount&&sheet._activeColCount===range.colCount)}}}if(self.isDragDropping===true){var activeSelRange=sheet._getActiveSelectedRange();var tempInsert=self._isDragInsert;var tempCopy=self._isDragCopy;if(activeSelRange.row===-1||activeSelRange.col===-1){self._isDragInsert=e.shiftKey}else
{self._isDragInsert=false}self._isDragCopy=e.ctrlKey;if(tempInsert!==self._isDragInsert||tempCopy!==self._isDragCopy){sheet._render.refreshDragDropIndicator()}}self.isShiftPressed=e.shiftKey;self.isControlPressed=e.ctrlKey};_SheetEventHandler.prototype.doMouseWheel=function(event,detail){var sheet=this._sheet;if(event.ctrlKey){if(!sheet.parent||sheet.parent._allowUserZoom){var oldZoomFactor=sheet._zoomFactor;var newZoomFactor=sheet._zoomFactor-0.05*detail;var action=new spread.UndoRedo.ZoomUndoAction(sheet,newZoomFactor);sheet._doCommand(action);newZoomFactor=sheet._zoomFactor;if(oldZoomFactor!==newZoomFactor){sheet._trigger(spread.Events.UserZooming,{sheet:sheet,sheetName:sheet._name,oldZoomFactor:oldZoomFactor,newZoomFactor:newZoomFactor})}}}else
{var oldTopRow=sheet._scrollTopRow,newTopRow=oldTopRow;if(sheet.frozenRowCount>0){if(sheet._scrollTopRow===0&&detail>0){newTopRow=sheet.frozenRowCount}else if(detail<0&&sheet._scrollTopRow===sheet.frozenRowCount-detail){newTopRow=0}}if(detail<0){var tmpRow=sheet._getScrollableRow(newTopRow+detail,true);if(tmpRow!=-1){newTopRow=tmpRow}else
{newTopRow=newTopRow+detail}}else if(detail>0){var tmpRow=sheet._getScrollableRow(newTopRow+detail);if(tmpRow!=-1){newTopRow=tmpRow}else
{newTopRow=newTopRow+detail}}if(newTopRow<sheet._getFirstPageTopRow()){newTopRow=sheet._getFirstPageTopRow()}else if(newTopRow>sheet._getLastVisualRow()){newTopRow=sheet._getLastVisualRow()}if(oldTopRow!==newTopRow){this.vScrollTo(newTopRow);sheet._syncVScrollbarPosition();sheet._trigger(spread.Events.TopRowChanged,{sheet:sheet,sheetName:sheet._name,oldTopRow:oldTopRow,newTopRow:newTopRow})}}if(spread.features.comment){var canvasOffset=this._getCanvasOffset();var target=sheet.hitTest(event.pageX-canvasOffset.left,event.pageY-canvasOffset.top);this._hoverShowComment(target)}};_SheetEventHandler.prototype.updateEditingEditor=function(){var sheet=this._sheet;if(!sheet.isEditing()){return}var activeRow=sheet._activeRowIndex,activeCol=sheet._activeColIndex,ct=sheet.getCellType(activeRow,activeCol),editor=sheet._editor,cellStyle=sheet.getActualStyle(activeRow,activeCol),cellRect=sheet.getCellRect(activeRow,activeCol);if(cellRect&&cellRect.width>0&&cellRect.height>0){var context={sheet:sheet,row:activeRow,col:activeCol,sheetArea:3};ct.updateEditor(editor,cellStyle,cellRect,context)}else
{$(editor).css({top:-10000,left:-10000})}var fbx=sheet._formulaTextBox;if(fbx){fbx.position()}};_SheetEventHandler.prototype.doVScroll=function(topRow){var self=this;var sheet=self._sheet;self.scrolling=true;self.newTop=topRow;self.newLeft=sheet._scrollLeftCol;if(!self.scrollTimer){self.scrollTimer=window.setInterval(function(){self._scrollView()},self.waittime)}};_SheetEventHandler.prototype.doHScroll=function(leftColumn){var self=this;var sheet=self._sheet;self.scrolling=true;self.newLeft=leftColumn;self.newTop=sheet._scrollTopRow;if(!self.scrollTimer){self.scrollTimer=window.setInterval(function(){self._scrollView()},self.waittime)}};_SheetEventHandler.prototype._scrollView=function(){var self=this;if(!self.scrolling){if(self.scrollTimer){window.clearInterval(self.scrollTimer);self.scrollTimer=keyword_null;var bLoadData=(self.newTop!==self._sheet._scrollTopRow);if(bLoadData){var topRow=self._sheet.getViewportTopRow(1);var bottomRow=self._sheet.getViewportBottomRow(1);var start=Math_max(0,topRow-60);if(start<self._sheet.getRowCount()){self._loadData(start,2*bottomRow-topRow)}}}return}self.scrolling=false;self._updateView()};_SheetEventHandler.prototype._showScrollTooltip=function(isVScroll,e){var self=this;var top;var left;if(isVScroll){top=e.pageY;left=e.pageX-self.VSCROLLTOOLTIP_LEFT}else
{top=e.pageY-self.HSCROLLTOOLTIP_TOP;left=e.pageX-self.HSCROLLTOOLTIP_LEFT}self._showTooltip(self._getScrollTooltipContent(isVScroll),left,top,true)};_SheetEventHandler.prototype._getScrollTooltipContent=function(isVScroll){var sheet=this._sheet;var info;if(isVScroll){info=spread.SR.Tip_Row+(sheet._scrollTopRow+1)}else
{if(sheet.colHeaderAutoText===1){info=spread.SR.Tip_Column+(sheet._scrollLeftCol+1)}else
{info=spread.SR.Tip_Column+sheet._indexToLetters(sheet._scrollLeftCol+1)}}return info};_SheetEventHandler.prototype._loadData=function(startIndex,endIndex){var self=this;if(!self._sheet.parent||!self._sheet.parent._host){return}if(self._sheet.dataContext&&self._sheet.dataContext.read){self._dataContextLoadDelegate=function(event,context){return self._dataContextLoaded(event,context)};self.lastLoadedRowIndex=startIndex}};_SheetEventHandler.prototype._dataContextLoaded=function(result,context){var tmp=result.data;if(tmp&&tmp.length>0){var sheet=this._sheet;var ds=sheet.getDataSource();if(ds&&this.lastLoadedRowIndex===result.start){for(var i=0;i<tmp.length;i++){ds[result.start+i]=tmp[i]}}sheet.recalcAll();sheet.repaint()}};_SheetEventHandler.prototype.getElementById=function(parent,id){if(!parent){return keyword_null}var t=parent.firstChild;while(t){if(t.id===id||t.name===id){return t}var t1=this.getElementById(t,id);if(t1){return t1}t=t.nextSibling}return keyword_null};_SheetEventHandler.prototype._updateView=function(){var self=this;var sheet=self._sheet;if(self.painting){return}self.painting=true;var currentSpread=sheet.parent,showScrollTip=0;if(currentSpread){showScrollTip=currentSpread.showScrollTip()}if(self.newTop!==sheet._scrollTopRow){self.vScrollTo(self.newTop);if(showScrollTip===2||showScrollTip===3){self._refreshTooltip(self._getScrollTooltipContent(true))}}else if(self.newLeft!==sheet._scrollLeftCol){self.hScrollTo(self.newLeft);if(showScrollTip===1||showScrollTip===3){self._refreshTooltip(self._getScrollTooltipContent(false))}}self.painting=false};_SheetEventHandler.prototype.vScrollTo=function(newTopRow){var sheet=this._sheet,oldTopRow=sheet._scrollTopRow;if(newTopRow===oldTopRow){return}sheet._scrollTopRow=newTopRow;if(sheet._paintSuspended||sheet._layoutSuspended>0){return}var painted=false;if(spread.util._useDoubleBuffer()){var bounds=sheet._bounds,layout=sheet._getSheetLayout(),viewportY=layout.viewportY,viewportHeight=layout.viewportHeight;var render=sheet._render,ctx=render._getCtx();if(newTopRow>oldTopRow){var rl1,rl2;var rowLayouts=sheet._getRowLayout(1);if(rowLayouts&&rowLayouts.length>0){rl1=rowLayouts.findRow(newTopRow)}if(rl1){var i=rowLayouts.length-1;rl2=rowLayouts[i];while(rl2.y+rl2.height>viewportY+viewportHeight){i=i-1;rl2=rowLayouts[i]}if(rl2.row>newTopRow){painted=true;var adj=2;var x=(bounds?bounds.x:layout.x);var y=rl1.y;var width=layout.width;var height=rl2.y+rl2.height-rl1.y-adj;render.copyScreen(x,y,width,height,x,viewportY);sheet.invalidateLayout();render.paintBody(ctx,new spread.Rect(x,viewportY+height,width,viewportHeight-height));render.paintAdornment(ctx,new spread.Rect(x,viewportY,width,viewportHeight))}}}else
{var h=0;for(var i=newTopRow;i<oldTopRow&&h<viewportHeight;i++){h+=sheet._getZoomRowHeight(i)}if(h<viewportHeight){painted=true;var adj=2;var x=(bounds?bounds.x:layout.x);var y=viewportY;var width=layout.width;var height=viewportHeight-h;if(sheet.getFrozenTrailingRowCount()>0){height-=1}render.copyScreen(x,y,width,height,x,y+h);sheet.invalidateLayout();render.paintBody(ctx,new spread.Rect(x,y,width,h+adj));render.paintAdornment(ctx,new spread.Rect(x,viewportY,width,viewportHeight))}}}if(!painted){sheet.invalidateLayout();sheet.repaint()}if(spread.features.comment){var commentManager=sheet._commentManager;commentManager.updateCommentsLayoutWhenSheetScroll()}this.updateEditingEditor()};_SheetEventHandler.prototype.hScrollTo=function(newLeftCol){var sheet=this._sheet,oldLeftCol=sheet._scrollLeftCol;if(newLeftCol===oldLeftCol){return}sheet._scrollLeftCol=newLeftCol;if(sheet._paintSuspended||sheet._layoutSuspended>0){return}var painted=false;if(spread.util._useDoubleBuffer()){var bounds=sheet._bounds,layout=sheet._getSheetLayout(),viewportX=layout.viewportX,viewportWidth=layout.viewportWidth;var render=sheet._render,ctx=render._getCtx();if(newLeftCol>oldLeftCol){var cl1,cl2;var colLayouts=sheet._getColumnLayout(1);if(colLayouts&&colLayouts.length>0){cl1=colLayouts.findCol(newLeftCol)}if(cl1){var j=colLayouts.length-1;cl2=colLayouts[j];while(cl2.x+cl2.width>viewportX+viewportWidth){j=j-1;cl2=colLayouts[j]}if(cl2.col>newLeftCol){painted=true;var adj=2;var x=cl1.x;var y=(bounds?bounds.y:layout.y);var width=cl2.x+cl2.width-cl1.x-adj;var height=layout.height;render.copyScreen(x,y,width,height,viewportX,y);sheet.invalidateLayout();render.paintBody(ctx,new spread.Rect(viewportX+width,y,viewportWidth-width,height));render.paintAdornment(ctx,new spread.Rect(viewportX,y,viewportWidth,height))}}}else
{var w=0;for(var j=newLeftCol;j<oldLeftCol&&w<viewportWidth;j++){w+=sheet._getZoomColumnWidth(j)}if(w<viewportWidth){painted=true;var adj=2;var x=viewportX;var y=(bounds?bounds.y:layout.y);var width=viewportWidth-w;var height=layout.height;if(sheet.getFrozenTrailingColumnCount()>0){width-=1}render.copyScreen(x,y,width,height,x+w,y);sheet.invalidateLayout();render.paintBody(ctx,new spread.Rect(x,y,w+adj,height));render.paintAdornment(ctx,new spread.Rect(viewportX,y,viewportWidth,height))}}}if(!painted){sheet.invalidateLayout();sheet.repaint()}if(spread.features.comment){var commentManager=sheet._commentManager;commentManager.updateCommentsLayoutWhenSheetScroll()}this.updateEditingEditor()};_SheetEventHandler.prototype._notEqualSelecions=function(oldSelections,newSelections){var notEqual=true;if(oldSelections.length===newSelections.length){for(var i=0;i<oldSelections.length;i++){var oldItem=oldSelections[i];var newItem=newSelections[i];if(oldItem.row!==newItem.row||oldItem.col!==newItem.col||oldItem.rowCount!==newItem.rowCount||oldItem.colCount!==newItem.colCount){notEqual=true;break}else
{notEqual=false}}}return notEqual};_SheetEventHandler.prototype._createFocusHolder=function(cellType,row,col,changeFocusHolder){var self=this,sheet=self._sheet,context={sheet:sheet,row:row,col:col,sheetArea:3};var isImeAware=cellType.isImeAware(context);var focusHolder;if(changeFocusHolder){self._destroyFocusHolder()}if(isImeAware&&!self._cellTypeFocusHolder){focusHolder=cellType.createEditorElement(context);if(!self._focusHolderOldCss){self._focusHolderOldCss={overflow:cssVisible,border:cssNone}}self._focusHolderOldCss.overflow=focusHolder.style.overflow;self._focusHolderOldCss.border=focusHolder.style.border;$(focusHolder).css(cssPosition,cssAbsolute).css(cssOverflow,cssHidden).css(cssWidth,"0px").css(cssHeight,"0px").css(cssBorder,cssNone);var sheet=self._sheet;sheet._setEditorValue(cellType,focusHolder,row,col,sheet.getActualStyle(row,col));var value=cellType.getEditorValue(focusHolder,context);if($.browser.safari){if(value===""||value===keyword_null||typeof(value)===const_undefined){cellType.setEditorValue(focusHolder," ",context)}}document.body.insertBefore(focusHolder,keyword_null);self._cellTypeFocusHolder=focusHolder}if(!self._originalFocusHolder){focusHolder=document.createElement("div");$(focusHolder).css(cssPosition,cssAbsolute).css(cssOverflow,cssHidden).css(cssWidth,"0px").css(cssHeight,"0px");self._originalFocusHolder=focusHolder;var focusElem=document.createElement("textarea");$(focusElem).attr(attrGcUIElement,"gcSheetFocusInput").css(cssPosition,cssAbsolute).css(cssOverflow,cssHidden).css(cssBorder,cssNone).css(cssResize,cssNone);focusElem.value=" ";focusHolder.insertBefore(focusElem,keyword_null);self._focusElem=focusElem;var readonlyFocusElem=document.createElement("textarea");$(readonlyFocusElem).css(cssPosition,cssAbsolute).css(cssOverflow,cssHidden).attr(attrGcUIElement,"gcSheetFocusInput").attr("readonly","readonly");focusHolder.insertBefore(readonlyFocusElem,keyword_null);self._readonlyFocusElem=readonlyFocusElem;document.body.insertBefore(focusHolder,keyword_null)}if(self._cellTypeFocusHolder){self._setVisibleLocation(sheet,self._cellTypeFocusHolder)}self._setVisibleLocation(sheet,self._originalFocusHolder);if(isImeAware){return self._cellTypeFocusHolder}else
{return self._focusElem}};_SheetEventHandler.prototype._resetFocusHolder=function(){var self=this;if(self._cellTypeFocusHolder&&self._focusHolderOldCss){$(self._cellTypeFocusHolder).css(cssOverflow,self._focusHolderOldCss.overflow).css(cssBorder,self._focusHolderOldCss.border)}};_SheetEventHandler.prototype._destroyFocusHolder=function(){var self=this;if(self._cellTypeFocusHolder){if(self._cellTypeFocusHolder.parentElement){self._cellTypeFocusHolder.parentElement.removeChild(self._cellTypeFocusHolder)}self._cellTypeFocusHolder=keyword_null}};_SheetEventHandler.prototype.setFocus=function(){if(!window.gcGlobal.activeElement){this._setFocusCore(true,true)}};_SheetEventHandler.prototype.changeFocusHolder=function(){this._setFocusCore(true,true)};_SheetEventHandler.prototype._clearTouchSetFocusTimeout=function(){if(this._touchSetFocusTimeout){clearTimeout(this._touchSetFocusTimeout);this._touchSetFocusTimeout=keyword_null}};_SheetEventHandler.prototype._setFocusCore=function(delay,changeFocusHolder){if(spread.util._isSilverlightCanvas()&&!spread.util._isStandardCanvas()){return}if(arguments.length===0){delay=true}var self=this;self._focusReleased=false;self._clearTouchSetFocusTimeout();var sheet=self._sheet;var activeRow,activeCol;activeRow=sheet.getActiveRowIndex();activeCol=sheet.getActiveColumnIndex();var ct=sheet.getCellType(activeRow,activeCol);self._createFocusHolder(ct,activeRow,activeCol,changeFocusHolder);var context={sheet:sheet,row:activeRow,col:activeCol,sheetArea:3};var focusElement;if(ct.isImeAware(context)){focusElement=self._cellTypeFocusHolder}else
{focusElement=self._focusElem}if(changeFocusHolder&&!$.browser.msie){ct.setImeMode(focusElement,sheet.getActualStyle(activeRow,activeCol).imeMode,context)}document.body.focus();var setFocusAndIme=function(){var setFocusToEditor=function(){if(ct.isImeAware(context)){ct.focus(focusElement,context);ct.selectAll(focusElement,context)}else
{focusElement.focus();focusElement.select()}};setFocusToEditor();if(changeFocusHolder&&$.browser.msie){ct.setImeMode(focusElement,sheet.getActualStyle(activeRow,activeCol).imeMode,context);setFocusToEditor()}};if(sheet._isTouchMode&&(delay||!ct.isImeAware(context))){if($.browser.metroMode){if(changeFocusHolder){ct.setImeMode(self._cellTypeFocusHolder,sheet.getActualStyle(activeRow,activeCol).imeMode,context)}}else
{self._touchSetFocusTimeout=setTimeout(function(){self._clearTouchSetFocusTimeout();if(sheet.isEditing()){return}setFocusAndIme()},200)}}else
{setFocusAndIme()}if(!window.gcGlobal.activeElement){window.gcGlobal.activeElement=sheet}self._updateValidationUI(sheet._activeRowIndex,sheet._activeColIndex)};_SheetEventHandler.prototype._setVisibleLocation=function(sheet,element){var top,left,activeRow=sheet.getActiveRowIndex(),activeCol=sheet.getActiveColumnIndex(),activeRowViewport=sheet.activeRowViewportIndex,activeColViewport=sheet.activeColViewportIndex;;var activeCellRect=sheet.getCellRect(activeRow,activeCol,activeRowViewport,activeColViewport);var top,left;var self=this;if(self._isInvalidRect(activeCellRect)){top=parseInt($(self._cellTypeFocusHolder).css(cssTop),10);left=parseInt($(self._cellTypeFocusHolder).css(cssLeft),10)}else
{var canvasOffset=self._getCanvasOffset();top=activeCellRect.y+canvasOffset.top-2;left=activeCellRect.x+canvasOffset.left-2}var minTop=window.pageYOffset;var maxTop=window.innerHeight+minTop-parseInt($(self._cellTypeFocusHolder).css(cssHeight),10);var minLeft=window.pageXOffset;var maxLeft=window.innerWidth+minLeft-parseInt($(self._cellTypeFocusHolder).css(cssWidth),10);if(isNaN(top)||top<minTop||top>maxTop){top=minTop}if(isNaN(left)||left<minLeft||left>maxLeft){left=minLeft}$(element).css(cssTop,top);$(element).css(cssLeft,left)};_SheetEventHandler.prototype.releaseFocus=function(target){var self=this;self._clearTouchSetFocusTimeout();if(self._focusReleased&&document.activeElement===self._readonlyFocusElem){return}var sheet=self._sheet;var activeRow,activeCol,activeRowViewport,activeColViewport;if(target){activeRow=target.row;activeCol=target.col;activeRowViewport=target.rowViewportIndex;activeColViewport=target.colViewportIndex}else
{activeRow=sheet._activeRowIndex;activeCol=sheet._activeColIndex;activeRowViewport=sheet.activeRowViewportIndex;activeColViewport=sheet.activeColViewportIndex}var ct=sheet.getCellType(activeRow,activeCol);self._createFocusHolder(ct,activeRow,activeCol,false);self._readonlyFocusElem.focus();self._focusReleased=true};_SheetEventHandler.prototype.resumeFocus=function(delay){var self=this;if(arguments.length===0){delay=true}if(self._focusReleased){self._focusReleased=false;self._setFocusCore(delay)}};_SheetEventHandler.prototype._switchFocusForClipboard=function(value){var self=this;if(self._focusElem){self._focusElem.value=value;self._focusElem.focus();self._focusElem.select();self._clipboardFloatingObjectData=keyword_null}};_SheetEventHandler.prototype._switchBackFocusAfterClipboard=function(){this._setFocusCore(true,false)};_SheetEventHandler.prototype._setClipboardFloatingObjectData=function(value){this._clipboardFloatingObjectData=value};_SheetEventHandler.prototype._getClipboardFloatingObjectData=function(){return this._clipboardFloatingObjectData};_SheetEventHandler.prototype._getClipboardData=function(){var data=this._focusElem?this._focusElem.value:"";var sbr=new spread.StringBuilder;if(data){var cellDelimiter="\"";var dl=cellDelimiter.length;var inCell=false;for(var i=0;i<data.length;i++){var tempChar=data[i];if(!inCell&&tempChar==="\n"){tempChar="\r\n"}sbr.Append(tempChar);if(sbr.Length()>=dl&&cellDelimiter===sbr.ToString(sbr.Length()-dl,dl)){inCell=!inCell}}}return sbr.ToString()};_SheetEventHandler.prototype._disposeFocusHolders=function(){var self=this;self._clearTouchSetFocusTimeout();var focusHolder=self._cellTypeFocusHolder;if(focusHolder){$(focusHolder).remove();self._cellTypeFocusHolder=keyword_undefined}focusHolder=self._originalFocusHolder;if(focusHolder){$(focusHolder).remove();self._focusElem=keyword_undefined;self._originalFocusHolder=keyword_null;self._readonlyFocusElem=keyword_null}};_SheetEventHandler.prototype.bind=function(type,data,fn){$(this._getElem()).bind(type,data,fn)};_SheetEventHandler.prototype.unbind=function(type,fn){$(this._getElem()).unbind(type,fn)};_SheetEventHandler.prototype.trigger=function(type,data){if(this._eventSuspended===0){$(this._getElem()).trigger(type,data)}};_SheetEventHandler.prototype._showTooltip=function(info,left,top,isAbsoluteDistanse){var sheet=this._sheet;var currentSpread=sheet.parent;if(currentSpread&&!currentSpread._tooltip){var tooltip=document.createElement("div");if(currentSpread.useWijmoTheme){$(tooltip).addClass("ui-widget-content");$(tooltip).addClass("ui-state-default")}else
{$(tooltip).addClass("spread-toolTip")}$(tooltip).css(cssPosition,cssAbsolute).css(cssPadding,"0px 3px 0px 3px").css(cssFont,"normal normal normal 10pt Arial").css(cssBoxShadow,"1px 2px 5px rgba(0,0,0,0.4)").css(cssBorderRadius,"3px").width(cssAuto).height(cssAuto).appendTo(document.body);currentSpread._tooltip=tooltip}this._refreshTooltip(info,left,top,isAbsoluteDistanse)};_SheetEventHandler.prototype._refreshTooltip=function(info,left,top,isAbsoluteDistanse){var sheet=this._sheet;var currentSpread=sheet.parent;if(currentSpread){var tooltip=$(currentSpread._tooltip);if(tooltip){if(info===keyword_undefined||info===keyword_null||info===""){tooltip.hide()}else
{tooltip.html(info);tooltip.show()}var offset=this._getCanvasOffset();if(isAbsoluteDistanse){top-=offset.top;left-=offset.left}var bounds=sheet._bounds;if(top+tooltip.outerHeight()>bounds.y+bounds.height){top=bounds.y+bounds.height-tooltip.outerHeight()}if(left+tooltip.outerWidth()>bounds.x+bounds.width){left=bounds.x+bounds.width-tooltip.outerWidth()}if(top!==keyword_null&&top!==keyword_undefined){tooltip.css(cssTop,top+offset.top)}if(left!==keyword_null&&left!==keyword_undefined){tooltip.css(cssLeft,left+offset.left)}}}};_SheetEventHandler.prototype._removeTooltip=function(){var sheet=this._sheet;var currentSpread=sheet.parent;if(currentSpread&¤tSpread._tooltip){$(currentSpread._tooltip).remove();currentSpread._tooltip=keyword_null}};return _SheetEventHandler})();spread._SheetEventHandler=_SheetEventHandler;var _MousePosition=(function(){function _MousePosition(){var self=this;self.top=false;self.bottom=false;self.left=false;self.right=false;self.distanceX=0;self.distanceY=0;self.nearMouseX=0;self.nearMouseY=0}return _MousePosition})()})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var __extends=this.__extends||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __};var wijmo;(function(wijmo){(function(spread){spread.feature("core.sheet_border",["core.common"]);var const_undefined="undefined";var keyword_null=null,Math_sqrt=Math.sqrt,Math_pow=Math.pow,Math_min=Math.min;var ComposedLineSide={first:1,second:2};var Line=(function(){function Line(){}Line.prototype.adjust=function(opt){var self=this;if(opt.orientation===0){if(opt.offsetEnd){self._x2+=opt.offsetEnd}if(opt.offsetStart){self._x1+=opt.offsetStart}}else if(opt.orientation===1){if(opt.offsetEnd){self._y2+=opt.offsetEnd}if(opt.offsetStart){self._y1+=opt.offsetStart}}};Line.prototype.paint=function(ctx){var color=(this._color||"#9eb6ce"),lineWidth=this._lineWidth,ctxLineWidth=ctx.lineWidth,ctxStrokeStyle=ctx.strokeStyle;if(ctxLineWidth!==lineWidth||ctxStrokeStyle!==color){ctx.closePath();ctx.stroke();ctx.beginPath();if(ctxLineWidth!==lineWidth){ctx.lineWidth=lineWidth}if(ctxStrokeStyle!==color){ctx.strokeStyle=color}}this.paintLine(ctx)};Line.prototype.paintLine=function(ctx){var self=this;ctx.moveTo(self._x1,self._y1);ctx.lineTo(self._x2,self._y2)};Line.Create=function(x1,y1,x2,y2,color,lineStyle){if(typeof(lineStyle)===const_undefined||lineStyle===keyword_null){lineStyle=1}switch(lineStyle){case 1:return new SolidLine(x1,y1,x2,y2,color,1);case 2:return new SolidLine(x1,y1,x2,y2,color,2);case 5:return new SolidLine(x1,y1,x2,y2,color,3);case 3:return new DashedLine(x1,y1,x2,y2,color,1,[3,1]);case 9:return new DashedLine(x1,y1,x2,y2,color,1,[8,2,2,2]);case 4:return new DashedLine(x1,y1,x2,y2,color,1,[2,2]);case 11:return new DashedLine(x1,y1,x2,y2,color,1,[9,3,3,3,3,3]);case 13:return new SlantedLine(x1,y1,x2,y2,color,x1!==x2,[11,1,5,1],[10,2,4,2]);case 10:return new DashedLine(x1,y1,x2,y2,color,2,[9,3,3,3]);case 12:return new DashedLine(x1,y1,x2,y2,color,2,[9,3,3,3,3,3]);case 8:return new DashedLine(x1,y1,x2,y2,color,2,[9,3]);case 7:return new DashedLine(x1,y1,x2,y2,color,1,[1]);case 6:return new DoubleLine(x1,y1,x2,y2,color,x1!==x2)}return keyword_null};return Line})();spread.Line=Line;var SolidLine=(function(_super){__extends(SolidLine,_super);function SolidLine(x1,y1,x2,y2,color,width){_super.call(this);var isSnapToPixel=width%2;if(!isSnapToPixel){if(x1!==x2){y1-=0.5;y2-=0.5}else
{x1-=0.5;x2-=0.5}}var self=this;self._x1=x1;self._y1=y1;self._x2=x2;self._y2=y2;self._color=color;self._lineWidth=width}return SolidLine})(Line);spread.SolidLine=SolidLine;var DashedLine=(function(_super){__extends(DashedLine,_super);function DashedLine(x1,y1,x2,y2,color,width,pattern){_super.call(this);var isSnapToPixel=width%2;if(!isSnapToPixel){if(x1!==x2){y1-=0.5;y2-=0.5}else
{x1-=0.5;x2-=0.5}}var self=this;self._x1=x1;self._y1=y1;self._x2=x2;self._y2=y2;self._color=color;self._lineWidth=width;self._pattern=pattern}DashedLine.prototype.paintLine=function(ctx){var self=this;DashedLine.render(ctx,self._x1,self._y1,self._x2,self._y2,self._pattern)};DashedLine.render=function(ctx,x0,y0,x1,y1,pattern){var length=Math_sqrt(Math_pow(x1-x0,2)+Math_pow(y1-y0,2));var vector={x:(x1-x0)/length,y:(y1-y0)/length};var dist=0,i=0;pattern=pattern&&pattern.length?pattern:[4,4];while(dist<length){var dashLength=Math_min(pattern[i++%pattern.length],length-dist);var draw=(i%2);dist+=dashLength;if(draw){ctx.moveTo(x0,y0)}x0+=dashLength*vector.x;y0+=dashLength*vector.y;if(draw){ctx.lineTo(x0,y0)}}};return DashedLine})(Line);spread.DashedLine=DashedLine;var SlantedLine=(function(_super){__extends(SlantedLine,_super);function SlantedLine(x1,y1,x2,y2,color,horizental,pattern1,pattern2){_super.call(this);if(horizental){x1-=1;x2-=1}else
{y1-=1;y2-=1}var self=this;self._x1=x1;self._y1=y1;self._x2=x2;self._y2=y2;self._color=color;self._horizental=horizental;self._lineWidth=1;self._pattern1=pattern1;self._pattern2=pattern2}SlantedLine.prototype.paintLine=function(ctx){var self=this;var xOff=self._horizental?0:1;var yOff=self._horizental?1:0;DashedLine.render(ctx,self._x1-xOff,self._y1-yOff,self._x2-xOff,self._y2-yOff,self._pattern1);DashedLine.render(ctx,self._x1,self._y1,self._x2,self._y2,self._pattern2)};return SlantedLine})(Line);spread.SlantedLine=SlantedLine;var DoubleLine=(function(_super){__extends(DoubleLine,_super);function DoubleLine(x1,y1,x2,y2,color,horizental){_super.call(this);var xOff=horizental?0:1;var yOff=horizental?1:0;var self=this;self._line1=new SolidLine(x1-xOff,y1-yOff,x2-xOff,y2-yOff,color,1);self._line2=new SolidLine(x1+xOff,y1+yOff,x2+xOff,y2+yOff,color,1);self._color=color;self._horizental=horizental;self._lineWidth=1}DoubleLine.prototype.paintLine=function(ctx){this._line1.paintLine(ctx);this._line2.paintLine(ctx)};DoubleLine.prototype.adjust=function(opt){var self=this;if(!opt.lineSide){self._line1.adjust(opt);self._line2.adjust(opt)}else if(opt.lineSide===ComposedLineSide.first){self._line1.adjust(opt)}else if(opt.lineSide===ComposedLineSide.second){self._line2.adjust(opt)}};return DoubleLine})(Line);spread.DoubleLine=DoubleLine;var compareColor=function(color1,color2){return 0};var compareLineStyle=function(line1,line2){if(!line1){if(!line2){return 0}return-1}else if(!line2){return 1}var lw1=spread.LineBorder.prototype._weight(line1);var lw2=spread.LineBorder.prototype._weight(line2);if(lw1===lw2){return compareColor(line1.color,line2.color)}else
{return lw1-lw2}};var getDrawingThickness=function(lineItem){if(lineItem){if(lineItem.isGridLine){return 1}if(lineItem.style){return spread.LineBorder.prototype.width(lineItem.style)}}return 0};var isDoubleLine=function(line){return(line&&line.style===6)};var isSlantedLine=function(line){return(line&&line.style===13)};var LayoutEngine=(function(){var LineType={previous:-1,next:1};var getMaxLine=function(line1,line2){if(!line1){if(!line2){return keyword_null}return line2}else if(!line2){return line1}return compareLineStyle(line1.style,line2.style)>0?line1:line2};var adjustLine=function(lineItem,opt){if(lineItem&&lineItem.line){lineItem.line.adjust(opt)}};var compareLine=function(lineItem1,lineItem2){if(lineItem1===keyword_null||typeof(lineItem1)===const_undefined){if(lineItem2===keyword_null||typeof(lineItem2)===const_undefined){return 0}else
{return-1}}else if(lineItem2===keyword_null||typeof(lineItem2)===const_undefined){return 1}else
{if(lineItem1.isGridLine){if(lineItem2.isGridLine){return 0}else
{return-1}}else if(lineItem2.isGridLine){return 1}return compareLineStyle(lineItem1.style,lineItem2.style)}};var isDoubleLineItem=function(lineItem){return lineItem&&isDoubleLine(lineItem.style)};var isAllowExtend=function(current,line,break1,break2){if(!isDoubleLineItem(current)){var doubleCnt=0;doubleCnt+=(isDoubleLineItem(line))?1:0;doubleCnt+=(isDoubleLineItem(break1))?1:0;doubleCnt+=(isDoubleLineItem(break2))?1:0;return doubleCnt<2}return true};var layout4CrossRoad=function(current,line,break1,break2,lineType,vertical){var opt={orientation:(vertical?1:0),offsetStart:0,offsetEnd:0};var diff1=compareLine(current,break1),diff2=compareLine(current,break2);if(diff1>=0&&diff2>=0){if(diff1===0&&diff2===0){if(lineType!==LineType.previous){if(lineType===LineType.next){opt.offsetEnd-=lineType}}}else
{if(lineType===LineType.previous){opt.offsetStart-=lineType}else if(lineType===lineType.next){opt.offsetEnd-=2*lineType}}}else if(diff2>=0){opt.lineSide=ComposedLineSide.second;opt.offsetStart+=lineType}else if(diff1>=0){opt.lineSide=ComposedLineSide.first;opt.offsetStart+=lineType}adjustLine(current,opt)};var layout4TurnRoad=function(current,prevLine,nextLine,break1,break2,type,lineType,vertical,swap){var optFirst={orientation:(vertical?1:0),lineSide:(swap?ComposedLineSide.second:ComposedLineSide.first),offsetStart:0,offsetEnd:0};var optSecond={orientation:(vertical?1:0),lineSide:(swap?ComposedLineSide.first:ComposedLineSide.second),offsetStart:0,offsetEnd:0};var breakLine=(type===1?break1:break2);var neighborLine=(lineType===LineType.next?nextLine:prevLine);var hasNeighborDoubleLine=isDoubleLineItem(neighborLine);if(!hasNeighborDoubleLine){if(compareLine(current,breakLine)>=0){if(lineType===LineType.previous){optSecond.offsetStart-=2*lineType}else if(lineType===LineType.next){optSecond.offsetEnd-=2*lineType}}else
{if(lineType===LineType.previous){optFirst.offsetStart+=2*lineType}else if(lineType===LineType.next){optFirst.offsetEnd+=2*lineType}}}else
{var diff=compareLine(current,breakLine);if(diff===0){var diff1=compareLine(current,neighborLine);if(diff1===0){if(lineType===LineType.next){optSecond.offsetEnd-=lineType}}else if(diff1>0){if(lineType===LineType.previous){optSecond.offsetStart-=2*lineType}else if(lineType===LineType.next){optSecond.offsetEnd-=2*lineType}}}else if(diff>0){var diff2=compareLine(current,neighborLine);if(diff2===0){if(lineType===LineType.next){optSecond.offsetEnd-=lineType}}else if(diff2>0){if(lineType===LineType.previous){optSecond.offsetStart-=2*lineType}else if(lineType===LineType.next){optSecond.offsetEnd-=2*lineType}}}else
{var diff3=compareLine(current,neighborLine);if(diff3===0){if(lineType===LineType.previous){optFirst.offsetStart+=2*lineType}else if(lineType===LineType.next){optFirst.offsetEnd+=2*lineType}}else if(diff3>0){if(lineType===LineType.previous){optFirst.offsetStart-=3*lineType}else if(lineType===LineType.next){optFirst.offsetEnd-=3*lineType}}}}var otherType=(type===1?2:1);var otherBreakLine=(otherType===1?break1:break2);var needMakeupCorner=false;var thickness=0;if(!needMakeupCorner&&isDoubleLineItem(otherBreakLine)&&compareLine(otherBreakLine,current)>0){needMakeupCorner=true;var drawThickness=getDrawingThickness(otherBreakLine);if(compareLine(otherBreakLine,breakLine)>0){if(drawThickness>0){if(lineType===LineType.next&&isDoubleLineItem(nextLine)){thickness=drawThickness>=2?2:1}else if(lineType===LineType.previous&&isDoubleLineItem(prevLine)){thickness=drawThickness>=3?2:1}else
{thickness=drawThickness===3?3:2}}}else
{thickness=drawThickness===3?3:2}}if(!needMakeupCorner&&(!isDoubleLineItem(neighborLine))&&((neighborLine&&!neighborLine.isGridLine)||(otherBreakLine&&!otherBreakLine.isGridLine))){needMakeupCorner=true;if(lineType===LineType.previous){thickness=2}else
{thickness=1}}if(needMakeupCorner){if(lineType===LineType.previous){optFirst.offsetStart+=lineType*thickness;optSecond.offsetStart+=lineType*thickness}else if(lineType===LineType.next){optFirst.offsetEnd+=lineType*thickness;optSecond.offsetEnd+=lineType*thickness}}if(optFirst.offsetStart||optFirst.offsetEnd){adjustLine(current,optFirst)}if(optSecond.offsetStart||optSecond.offsetEnd){adjustLine(current,optSecond)}};var layout4TRoad=function(current,line,break1,break2,lineType,vertical){if(compareLine(current,break1)>=0&&compareLine(current,break2)>=0){var opt={orientation:(vertical?1:0),offsetStart:0,offsetEnd:0};if(lineType===LineType.previous){opt.offsetStart-=2*lineType;if(isDoubleLineItem(current)&&compareLine(line,current)>0){opt.offsetStart-=1}}else if(lineType===LineType.next){opt.offsetEnd-=2*lineType;if(isDoubleLineItem(current)&&compareLine(line,current)>0){opt.offsetEnd+=1}}adjustLine(current,opt)}};var layout4Connected=function(current,line,break1,break2,lineType,vertical){if(isDoubleLineItem(current)){var breakLine=getMaxLine(break1,break2);if(breakLine&&!breakLine.isGridLine){var drawThickness=getDrawingThickness(breakLine);if(drawThickness>0){var opt={orientation:(vertical?1:0),offsetStart:0,offsetEnd:0};if(lineType===LineType.previous){opt.offsetStart+=drawThickness*lineType}else
{opt.offsetEnd+=drawThickness*lineType}if(opt.offsetStart||opt.offsetEnd){adjustLine(current,opt)}}}}};return{calcLayoutHorizontal:function(current,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2){var drawThickness;var diff;if(prevLine||prevBreak1||prevBreak2){var prevBreak=getMaxLine(prevBreak1,prevBreak2);if(!isAllowExtend(current,prevLine,prevBreak1,prevBreak2)){adjustLine(current,{orientation:0,offsetStart:1})}else if((diff=compareLine(prevBreak,current))>0){drawThickness=getDrawingThickness(prevBreak);if(!(isDoubleLineItem(current)&&(isDoubleLineItem(prevBreak1)||isDoubleLineItem(prevBreak2)||isDoubleLineItem(prevLine)))){if(drawThickness===3){adjustLine(current,{orientation:0,offsetStart:1})}}}else if(prevBreak&&diff<0){if((diff=compareLine(current,prevLine))>0){drawThickness=getDrawingThickness(prevBreak);if(drawThickness===3||drawThickness===2){adjustLine(current,{orientation:0,offsetStart:-2})}else if(drawThickness===1){adjustLine(current,{orientation:0,offsetStart:-1})}}else if(diff!==0){if(compareLine(prevLine,prevBreak)>0){drawThickness=getDrawingThickness(prevBreak);if(drawThickness===3){adjustLine(current,{orientation:0,offsetStart:1})}}}}else if(diff===0){if(!prevLine||compareLine(current,prevLine)>0){drawThickness=getDrawingThickness(prevBreak);if(drawThickness===3||drawThickness===2){adjustLine(current,{orientation:0,offsetStart:-2})}else if(drawThickness===1){adjustLine(current,{orientation:0,offsetStart:-1})}}}}if(nextLine||nextBreak1||nextBreak2){var nextBreak=getMaxLine(nextBreak1,nextBreak2);if(!isAllowExtend(current,nextLine,nextBreak1,nextBreak2)){adjustLine(current,{orientation:0,offsetEnd:-2})}else if((diff=compareLine(nextBreak,current))>0){drawThickness=getDrawingThickness(nextBreak);if(!(isDoubleLineItem(current)&&(isDoubleLineItem(nextBreak1)||isDoubleLineItem(nextBreak2)||isDoubleLineItem(nextLine)))){if(drawThickness===3){adjustLine(current,{orientation:0,offsetEnd:-2})}else if(drawThickness===2||drawThickness===1){adjustLine(current,{orientation:0,offsetEnd:-1})}}}else if(diff<0){if((diff=compareLine(current,nextLine))>0){drawThickness=getDrawingThickness(nextBreak);if(drawThickness===3){adjustLine(current,{orientation:0,offsetEnd:1})}}else if(diff!==0){adjustLine(current,{orientation:0,offsetEnd:-1})}}else if(diff===0){if((diff=compareLine(current,nextLine))>0){drawThickness=getDrawingThickness(nextBreak);if(drawThickness===3){adjustLine(current,{orientation:0,offsetEnd:1})}}else if(diff!==0){adjustLine(current,{orientation:0,offsetEnd:-1})}}}},calcLayoutVertical:function(current,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2){var drawThickness;var diff;if(prevLine||prevBreak1||prevBreak2){var prevBreak=getMaxLine(prevBreak1,prevBreak2);if(!isAllowExtend(current,prevLine,prevBreak1,prevBreak2)){adjustLine(current,{orientation:1,offsetStart:1})}else if((diff=compareLine(prevBreak,current))>0){drawThickness=getDrawingThickness(prevBreak);if(!(isDoubleLineItem(current)&&(isDoubleLineItem(prevBreak1)||isDoubleLineItem(prevBreak2)||isDoubleLineItem(prevLine)))){if(drawThickness===3){adjustLine(current,{orientation:1,offsetStart:1})}}}else if(diff<0){if((diff=compareLine(current,prevLine))>0){drawThickness=getDrawingThickness(prevBreak);if(drawThickness===3||drawThickness===2){adjustLine(current,{orientation:1,offsetStart:-2})}else if(drawThickness===1){adjustLine(current,{orientation:1,offsetStart:-1})}}else if(diff!==0){if(compareLine(prevLine,prevBreak)>0){drawThickness=getDrawingThickness(prevBreak);if(drawThickness===3){adjustLine(current,{orientation:1,offsetStart:1})}}}}else if(diff===0){if(compareLine(current,prevLine)>0){drawThickness=getDrawingThickness(prevBreak);if(drawThickness===3||drawThickness===2){adjustLine(current,{orientation:1,offsetStart:-2})}else if(drawThickness===1){adjustLine(current,{orientation:1,offsetStart:-1})}}}}if(nextLine||nextBreak1||nextBreak2){var nextBreak=getMaxLine(nextBreak1,nextBreak2);if(!isAllowExtend(current,nextLine,nextBreak1,nextBreak2)){adjustLine(current,{orientation:1,offsetEnd:-2})}else if((diff=compareLine(current,nextBreak))<0){drawThickness=getDrawingThickness(nextBreak);if(!(isDoubleLineItem(current)&&(isDoubleLineItem(nextBreak1)||isDoubleLineItem(nextBreak2)||isDoubleLineItem(nextLine)))){if(drawThickness===3||drawThickness===2){adjustLine(current,{orientation:1,offsetEnd:-2})}else if(drawThickness===1){adjustLine(current,{orientation:1,offsetEnd:-1})}}}else if(nextBreak!==keyword_null&&diff>0){if((diff=compareLine(current,nextLine))>0){drawThickness=getDrawingThickness(nextBreak);if(drawThickness===3){adjustLine(current,{orientation:1,offsetEnd:1})}}else if(diff!==0){adjustLine(current,{orientation:1,offsetEnd:-1})}}else if(diff===0){if((diff=compareLine(current,nextLine))>0){drawThickness=getDrawingThickness(nextBreak);if(drawThickness===3){adjustLine(current,{orientation:1,offsetEnd:1})}}else if(diff!==0){adjustLine(current,{orientation:1,offsetEnd:-1})}}}},calcDoubleLayout:function(current,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2,vertical){if(vertical){this.calcLayoutVertical(current,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2)}else
{this.calcLayoutHorizontal(current,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2)}var break1DoubleLine=isDoubleLineItem(prevBreak1),break2DoubleLine=isDoubleLineItem(prevBreak2),prevDoubleLine=isDoubleLineItem(prevLine);if(break1DoubleLine&&break2DoubleLine&&prevDoubleLine){layout4CrossRoad(current,prevLine,prevBreak1,prevBreak2,LineType.previous,vertical)}else if(break1DoubleLine&&!break2DoubleLine){layout4TurnRoad(current,prevLine,nextLine,prevBreak1,prevBreak2,1,LineType.previous,vertical,true)}else if(!break1DoubleLine&&break2DoubleLine){layout4TurnRoad(current,prevLine,nextLine,prevBreak1,prevBreak2,2,LineType.previous,vertical,false)}else if(break1DoubleLine&&break2DoubleLine&&!prevDoubleLine){layout4TRoad(current,prevLine,prevBreak1,prevBreak2,LineType.previous,vertical)}else if(prevDoubleLine){layout4Connected(current,prevLine,prevBreak1,prevBreak2,LineType.previous,vertical)}break1DoubleLine=isDoubleLineItem(nextBreak1);break2DoubleLine=isDoubleLineItem(nextBreak2);var nextDoubleLine=isDoubleLineItem(nextLine);if(break1DoubleLine&&break2DoubleLine&&nextDoubleLine){layout4CrossRoad(current,nextLine,nextBreak1,nextBreak2,LineType.next,vertical)}else if(break1DoubleLine&&!break2DoubleLine){layout4TurnRoad(current,prevLine,nextLine,nextBreak1,nextBreak2,1,LineType.next,vertical,true)}else if(!break1DoubleLine&&break2DoubleLine){layout4TurnRoad(current,prevLine,nextLine,nextBreak1,nextBreak2,2,LineType.next,vertical,false)}else if(break1DoubleLine&&break2DoubleLine&&!nextDoubleLine){layout4TRoad(current,nextLine,nextBreak1,nextBreak2,LineType.next,vertical)}else if(nextDoubleLine){layout4Connected(current,nextLine,nextBreak1,nextBreak2,LineType.next,vertical)}}}}());var DefaultLineLayout={layoutHorizontal:function(line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2){LayoutEngine.calcLayoutHorizontal(line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2)},layoutVertical:function(line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2){LayoutEngine.calcLayoutVertical(line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2)}};var DoubleLineLayout={layoutHorizontal:function(line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2){LayoutEngine.calcDoubleLayout(line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2,false)},layoutVertical:function(line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2){LayoutEngine.calcDoubleLayout(line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2,true)}};var SlantedLineLayout={layoutHorizontal:function(line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2){},layoutVertical:function(line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2){}};var _GcBorders=(function(){function _GcBorders(sheet,rowViewportIndex,colViewportIndex,sheetArea){this._isInitialized=false;this._isMerged=false;var self=this;self._sheet=sheet;self._sheetArea=sheetArea;self._rowViewportIndex=rowViewportIndex;self._colViewportIndex=colViewportIndex}_GcBorders.prototype._initialize=function(){var self=this;self._spanCells=[];self._rowIndecies=[];self._colIndecies=[];self._overflowedCells=[];self._adjustingRanges=[];self._hGridLine={};self._vGridLine={};self._hBorders={};self._vBorders={};var sheet=self._sheet,sheetArea=self._sheetArea,colViewportIndex=self._colViewportIndex,rowViewportIndex=self._rowViewportIndex;var rowLayoutModel=sheet._getRowLayout(rowViewportIndex,sheetArea),colLayoutModel=sheet._getColumnLayout(colViewportIndex,sheetArea);if(rowLayoutModel&&rowLayoutModel.length>0&&colLayoutModel&&colLayoutModel.length>0){var rowIndecies=self._rowIndecies,rowLayoutCount=rowLayoutModel.length,rowLyout;for(var i=0;i<rowLayoutCount;i++){rowLyout=rowLayoutModel[i];if(rowLyout.height>0){rowIndecies.push(rowLyout.row)}}var colIndecies=self._colIndecies,colLayoutCount=colLayoutModel.length,colLayout;for(var j=0;j<colLayoutCount;j++){colLayout=colLayoutModel[j];if(colLayout.width>0){colIndecies.push(colLayout.col)}}}self._isInitialized=true};_GcBorders.prototype.addCellOverlfowLayout=function(row,cellOverflowLayout){if(cellOverflowLayout){var overflowedCell={row:row,startCol:cellOverflowLayout.startColumn,endCol:cellOverflowLayout.endColumn};this._overflowedCells.push(overflowedCell)}};_GcBorders.prototype.addCellLines=function(row,col,x,y,width,height,style,spanCellLayout){var self=this;if(!self._isInitialized){self._initialize()}if(spanCellLayout){self._spanCells.push(spanCellLayout)}else
{var borderLeft,borderTop,borderRight,borderBottom;var backColor;if(style){borderLeft=style.borderLeft;borderTop=style.borderTop;borderRight=style.borderRight;borderBottom=style.borderBottom;backColor=style.backColor}if(backColor&&(!borderLeft&&!borderRight&&!borderTop&&!borderBottom)){self._adjustingRanges.push({r:row,c:col,rc:1,cc:1})}self._addCellLineImp(row,col,x,y,width,height,borderLeft,borderTop,borderRight,borderBottom,backColor)}};_GcBorders.prototype._addCellLineImp=function(row,col,x,y,width,height,borderLeft,borderTop,borderRight,borderBottom,backColor,noHGridLine,noVGridLine){var self=this;var addTopLineSucceeded=false,addLeftLineSucceeded=false,addBottomLineSucceeded=false,addRightLineSucceeded=false;if(borderTop){addTopLineSucceeded=self._addCellLineSide(row,col,x,y-0.5,x+width,y-0.5,borderTop,self._hBorders)}if(borderLeft){addLeftLineSucceeded=self._addCellLineSide(row,col,x-0.5,y,x-0.5,y+height,borderLeft,self._vBorders)}if(borderBottom){addBottomLineSucceeded=self._addCellLineSide(row+1,col,x,y+height-0.5,x+width,y+height-0.5,borderBottom,self._hBorders)}if(borderRight){addRightLineSucceeded=self._addCellLineSide(row,col+1,x+width-0.5,y,x+width-0.5,y+height,borderRight,self._vBorders)}var sheet=self._sheet;if(!backColor||sheet.getRowHeight(row)===0||sheet.getColumnWidth(col)===0){var needRenderHGridLine=!addBottomLineSucceeded&&!noHGridLine,needRenderVGridLine=!addRightLineSucceeded&&!noVGridLine;if(needRenderHGridLine||needRenderVGridLine){self._addGridLine(row,col,x,y,width,height,needRenderHGridLine,needRenderVGridLine)}}if(addTopLineSucceeded||typeof(backColor)!==const_undefined){self._removeLineItem(row-1,col,self._hGridLine)}if(addLeftLineSucceeded||typeof(backColor)!==const_undefined){self._removeLineItem(row,col-1,self._vGridLine)}if(backColor&&(!borderLeft&&!borderRight&&!borderTop&&!borderBottom)){self._adjustLineItem(row-1,col-1,self._vGridLine,false);self._adjustLineItem(row-1,col-1,self._hGridLine,true)}};_GcBorders.prototype._addCellLineSide=function(row,col,x,y,width,height,lineStyle,store){if(lineStyle){var borderLine;var query=this._queryLineItem(row,col,store,true);if(query.success){borderLine=query.lineItem;if(borderLine.style.style!==6){if(lineStyle.style===6||compareLineStyle(lineStyle,borderLine.style)>0){borderLine.line=Line.Create(x,y,width,height,lineStyle.color,lineStyle.style);borderLine.style=lineStyle}}}else
{borderLine=this._queryLineItem(row,col,store).lineItem;borderLine.line=Line.Create(x,y,width,height,lineStyle.color,lineStyle.style);borderLine.style=lineStyle}return borderLine.line!==keyword_null}return false};_GcBorders.prototype._addGridLine=function(row,col,x,y,width,height,hLine,vLine){var self=this;var ns=wijmo.spread,atViewport=(self._sheetArea===3);var gridLine=self._sheet.gridline,Line=ns.Line;if(!atViewport||gridLine){var gridLineColor=(!atViewport?"#9eb6ce":gridLine.color);if(hLine&&(gridLine.showHorizontalGridline||!atViewport)){var hGridLineItem=self._queryLineItem(row,col,self._hGridLine).lineItem;hGridLineItem.isGridLine=true;hGridLineItem.line=Line.Create(x,y+height-0.5,x+width,y+height-0.5,gridLineColor)}if(vLine&&(gridLine.showVerticalGridline||!atViewport)){var vGridLineItem=self._queryLineItem(row,col,self._vGridLine).lineItem;vGridLineItem.isGridLine=true;vGridLineItem.line=Line.Create(x+width-0.5,y,x+width-0.5,y+height,gridLineColor)}}};_GcBorders.prototype._adjustLineItem=function(r,c,store,h){var query=this._queryLineItem(r,c,store,true);if(query.success){var lineItem=query.lineItem;if(lineItem&&lineItem.line){lineItem.line.adjust({orientation:(h?0:1),offsetEnd:-1})}}};_GcBorders.prototype._removeLineItem=function(r,c,store){if(r>=0&&c>=0){var firstDim=store[r];if(firstDim){var secondDim=firstDim[c];if(secondDim){delete firstDim[c]}}}};_GcBorders.prototype._queryLineItem=function(r,c,store,noCreate){if(r===-1||c===-1){return{success:false}}var firstDim=store[r];if(!firstDim){if(noCreate){return{success:false}}store[r]=firstDim={}}var secondDim=firstDim[c];if(!secondDim){if(noCreate){return{success:false}}firstDim[c]=secondDim={}}return{success:true,lineItem:secondDim}};_GcBorders.prototype._processOverflowCells=function(){var self=this;var overflowedCells=self._overflowedCells,overflowedCellsCount=overflowedCells.length,vBorders=self._vBorders,vGridLine=self._vGridLine;for(var i=0;i<overflowedCellsCount;i++){var overflowCell=overflowedCells[i],r=overflowCell.row,sc=overflowCell.startCol,ec=overflowCell.endCol,query;for(var c=sc;c<ec;c++){query=self._queryLineItem(r,c+1,vBorders,true);if(query.success){self._removeLineItem(r,c+1,vBorders)}else
{query=self._queryLineItem(r,c,vGridLine,true);if(query.success){self._removeLineItem(r,c,vGridLine)}}}}};_GcBorders.prototype._processSpans=function(){var spanCells=this._spanCells,spanCellsCount=spanCells.length,spanLayout;if(spanCellsCount>0){for(var i=0;i<spanCellsCount;i++){spanLayout=spanCells[i];this._processSpanCell(spanLayout)}}};_GcBorders.prototype._processSpanCell=function(spanCellLayout){var self=this;var row=spanCellLayout.row,col=spanCellLayout.col;var x=spanCellLayout.x,y=spanCellLayout.y;var borderLeft,borderTop,borderRight,borderBottom;var spanCellStyle=self._sheet.getActualStyle(row,col,self._sheetArea);var backColor=spanCellStyle?spanCellStyle.backColor:keyword_null;var i,r,c,rowHeight,colWidth,firstCol,firstRow,lastCol,lastRow,cellStyle;var ix=x,iy=y;if(spanCellLayout.rowCount===1){r=row;rowHeight=self._sheet._getZoomRowHeight(r,self._sheetArea);for(i=0;i<spanCellLayout.colCount;i++){firstCol=(i===0);lastCol=(i===spanCellLayout.colCount-1);c=col+i;colWidth=self._sheet._getZoomColumnWidth(c,self._sheetArea);cellStyle=self._sheet.getActualStyle(r,c,self._sheetArea);if(cellStyle){borderLeft=cellStyle.borderLeft;borderTop=cellStyle.borderTop;borderRight=cellStyle.borderRight;borderBottom=cellStyle.borderBottom}else
{borderLeft=borderTop=borderRight=borderBottom=keyword_null}if(firstCol){self._addCellLineImp(r,c,ix,iy,colWidth,rowHeight,borderLeft,borderTop,keyword_null,borderBottom,backColor,false,true)}else if(lastCol){self._addCellLineImp(r,c,ix,iy,colWidth,rowHeight,keyword_null,borderTop,borderRight,borderBottom,backColor)}else
{self._addCellLineImp(r,c,ix,iy,colWidth,rowHeight,keyword_null,borderTop,keyword_null,borderBottom,backColor,false,true)}ix+=colWidth}}else if(spanCellLayout.colCount===1){c=col;colWidth=self._sheet._getZoomColumnWidth(c,self._sheetArea);for(i=0;i<spanCellLayout.rowCount;i++){firstRow=(i===0);lastRow=(i===spanCellLayout.rowCount-1);r=row+i;rowHeight=self._sheet._getZoomRowHeight(r,self._sheetArea);cellStyle=self._sheet.getActualStyle(r,c,self._sheetArea);if(cellStyle){borderLeft=cellStyle.borderLeft;borderTop=cellStyle.borderTop;borderRight=cellStyle.borderRight;borderBottom=cellStyle.borderBottom}else
{borderLeft=borderTop=borderRight=borderBottom=keyword_null}if(firstRow){self._addCellLineImp(r,c,ix,iy,colWidth,rowHeight,borderLeft,borderTop,borderRight,keyword_null,backColor,true,false)}else if(lastRow){self._addCellLineImp(r,c,ix,iy,colWidth,rowHeight,borderLeft,keyword_null,borderRight,borderBottom,backColor)}else
{self._addCellLineImp(r,c,ix,iy,colWidth,rowHeight,borderLeft,keyword_null,borderRight,keyword_null,backColor,true,false)}iy+=rowHeight}}else
{for(i=0;i<spanCellLayout.rowCount;i++){r=row+i;firstRow=(i===0);lastRow=(i===spanCellLayout.rowCount-1);rowHeight=self._sheet._getZoomRowHeight(r,self._sheetArea);for(var j=0;j<spanCellLayout.colCount;j++){c=col+j;firstCol=(j===0);lastCol=(j===spanCellLayout.colCount-1);colWidth=self._sheet._getZoomColumnWidth(c,self._sheetArea);cellStyle=self._sheet.getActualStyle(r,c,self._sheetArea);if(cellStyle){borderLeft=cellStyle.borderLeft;borderTop=cellStyle.borderTop;borderRight=cellStyle.borderRight;borderBottom=cellStyle.borderBottom}else
{borderLeft=borderTop=borderRight=borderBottom=keyword_null}if(firstRow){if(firstCol){self._addCellLineImp(r,c,ix,iy,colWidth,rowHeight,borderLeft,borderTop,keyword_null,keyword_null,backColor,true,true)}else if(lastCol){self._addCellLineImp(r,c,ix,iy,colWidth,rowHeight,keyword_null,borderTop,borderRight,keyword_null,backColor,true,false)}else
{self._addCellLineImp(r,c,ix,iy,colWidth,rowHeight,keyword_null,borderTop,keyword_null,keyword_null,backColor,true,true)}}else if(lastRow){if(firstCol){self._addCellLineImp(r,c,ix,iy,colWidth,rowHeight,borderLeft,keyword_null,keyword_null,borderBottom,backColor,false,true)}else if(lastCol){self._addCellLineImp(r,c,ix,iy,colWidth,rowHeight,keyword_null,keyword_null,borderRight,borderBottom,backColor)}else
{self._addCellLineImp(r,c,ix,iy,colWidth,rowHeight,keyword_null,keyword_null,keyword_null,borderBottom,backColor,false,true)}}else
{if(firstCol){self._addCellLineImp(r,c,ix,iy,colWidth,rowHeight,borderLeft,keyword_null,keyword_null,keyword_null,backColor,true,true)}else if(lastCol){self._addCellLineImp(r,c,ix,iy,colWidth,rowHeight,keyword_null,keyword_null,borderRight,keyword_null,backColor,true,false)}}ix+=colWidth}ix=x;iy+=rowHeight}}if(backColor&&(!borderLeft&&!borderRight&&!borderTop&&!borderBottom)){self._adjustingRanges.push({r:row,c:col,rc:spanCellLayout.rowCount,cc:spanCellLayout.colCount})}};_GcBorders.prototype._adjust=function(){var self=this;var hasVBorders=false,hasHBorders=false;for(var v in self._vBorders){hasVBorders=true;break}for(var h in self._hBorders){hasHBorders=true;break}if(hasVBorders||hasHBorders){self._adjustBorders()}if(self._adjustingRanges.length>0){self._adjustGridlines()}};_GcBorders.prototype._adjustGridlines=function(){var self=this;var adjustingRanges=self._adjustingRanges,adjustingRangesCount=adjustingRanges.length;for(var i=0;i<adjustingRangesCount;i++){var range=adjustingRanges[i];var r=range.r,c=range.c;var ar1=r,ar2=r-1;var ac1=c-1,ac2=c;if(range.rc>1){ar1+=range.rc-1}if(range.cc>1){ac2+=range.cc-1}var skipLeftBottom=false,skipRightTop=false;for(var j=0;j<adjustingRangesCount;j++){var next=adjustingRanges[j];if(next.c===ac2+1&&next.r===r){skipRightTop=true}if(next.r===ar1+1&&next.c===c){skipLeftBottom=true}if(skipLeftBottom&&skipRightTop){break}if(next.r>r+1&&next.c>c+1){break}}if(!skipLeftBottom){self._adjustLineItem(ar1,ac1,self._hGridLine,true)}if(!skipRightTop){self._adjustLineItem(ar2,ac2,self._vGridLine,false)}}};_GcBorders.prototype._adjustBorders=function(){var self=this;var rowIndecies=self._rowIndecies,colIndecies=self._colIndecies,rowIndexCount=rowIndecies.length,colIndexCount=colIndecies.length,r,c,row,col;for(r=0;r<=rowIndexCount;r++){row=rowIndecies[r];if(typeof(row)===const_undefined&&r===rowIndexCount){row=rowIndecies[r-1]+1}for(c=0;c<=colIndexCount;c++){col=colIndecies[c];if(typeof(col)===const_undefined&&c===colIndexCount){col=colIndecies[c-1]+1}self._adjustHorizontalBorderLine(r,c,row,col)}}for(c=0;c<=colIndexCount;c++){col=colIndecies[c];if(typeof(col)===const_undefined&&c===colIndexCount){col=colIndecies[c-1]+1}for(r=0;r<=rowIndexCount;r++){row=rowIndecies[r];if(typeof(row)===const_undefined&&r===rowIndexCount){row=rowIndecies[r-1]+1}self._adjustVerticalBorderLine(r,c,row,col)}}};_GcBorders.prototype._adjustHorizontalBorderLine=function(r,c,row,col){var self=this;var line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2,lineQuery=self._queryLineItem(row,col,self._hBorders,true),borderLineCount=0;if(!lineQuery.success){lineQuery=self._queryLineItem(row-1,col,self._hGridLine,true);if(!lineQuery.success){return}}else
{borderLineCount++}line=lineQuery.lineItem;prevLine=self._getLineItemImp(row,self._prevCol(c),false);if(prevLine&&prevLine.line&&!prevLine.isGridLine){borderLineCount++}prevBreak1=self._getLineItemImp(self._prevRow(r),col,true);if(prevBreak1&&prevBreak1.line&&!prevBreak1.isGridLine){borderLineCount++}prevBreak2=self._getLineItemImp(row,col,true);if(prevBreak2&&prevBreak2.line&&!prevBreak2.isGridLine){borderLineCount++}nextLine=self._getLineItemImp(row,self._nextCol(c),false);if(nextLine&&nextLine.line&&!nextLine.isGridLine){borderLineCount++}nextBreak1=self._getLineItemImp(self._prevRow(r),self._nextCol(c),true);if(nextBreak1&&nextBreak1.line&&!nextBreak1.isGridLine){borderLineCount++}nextBreak2=self._getLineItemImp(row,self._nextCol(c),true);if(nextBreak2&&nextBreak2.line&&!nextBreak2.isGridLine){borderLineCount++}if(borderLineCount>0){if(isDoubleLine(line.style)){DoubleLineLayout.layoutHorizontal(line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2)}else if(isSlantedLine(line.style)){SlantedLineLayout.layoutHorizontal(line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2)}else
{DefaultLineLayout.layoutHorizontal(line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2)}}};_GcBorders.prototype._adjustVerticalBorderLine=function(r,c,row,col){var self=this;var line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2,lineQuery=self._queryLineItem(row,col,self._vBorders,true),borderLineCount=0;if(!lineQuery.success){lineQuery=self._queryLineItem(row,col-1,self._vGridLine,true);if(!lineQuery.success){return}}else
{borderLineCount++}line=lineQuery.lineItem;prevLine=self._getLineItemImp(self._prevRow(r),col,true);if(prevLine&&prevLine.line&&!prevLine.isGridLine){borderLineCount++}prevBreak1=self._getLineItemImp(row,self._prevCol(c),false);if(prevBreak1&&prevBreak1.line&&!prevBreak1.isGridLine){borderLineCount++}prevBreak2=self._getLineItemImp(row,col,false);if(prevBreak2&&prevBreak2.line&&!prevBreak2.isGridLine){borderLineCount++}nextLine=self._getLineItemImp(self._nextRow(r),col,true);if(nextLine&&nextLine.line&&!nextLine.isGridLine){borderLineCount++}nextBreak1=self._getLineItemImp(self._nextRow(r),self._prevCol(c),false);if(nextBreak1&&nextBreak1.line&&!nextBreak1.isGridLine){borderLineCount++}nextBreak2=self._getLineItemImp(self._nextRow(r),col,false);if(nextBreak2&&nextBreak2.line&&!nextBreak2.isGridLine){borderLineCount++}if(borderLineCount>0){if(isDoubleLine(line.style)){DoubleLineLayout.layoutVertical(line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2)}else if(isSlantedLine(line.style)){SlantedLineLayout.layoutVertical(line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2)}else
{DefaultLineLayout.layoutVertical(line,prevLine,prevBreak1,prevBreak2,nextLine,nextBreak1,nextBreak2)}}};_GcBorders.prototype._prevCol=function(c){if(c<0){return-1}return this._colIndecies[c-1]};_GcBorders.prototype._nextCol=function(c){var colIndecies=this._colIndecies,colIndexCount=colIndecies.length,col=colIndecies[c+1];if(typeof(col)===const_undefined&&(c+1)>=colIndexCount){return colIndecies[colIndexCount-1]+1}return col};_GcBorders.prototype._prevRow=function(r){if(r<0){return-1}return this._rowIndecies[r-1]};_GcBorders.prototype._nextRow=function(r){var rowIndecies=this._rowIndecies,rowIndexCount=rowIndecies.length,row=rowIndecies[r+1];if(typeof(row)===const_undefined&&(r+1)>=rowIndexCount){return rowIndecies[rowIndexCount-1]+1}return row};_GcBorders.prototype._getLineItemImp=function(r,c,vertical){if(typeof(r)===const_undefined||r<0||typeof(c)===const_undefined||c<0){return keyword_null}var self=this;var store=vertical?self._vBorders:self._hBorders,query=self._queryLineItem(r,c,store,true);if(query.success){return query.lineItem}store=vertical?self._vGridLine:self._hGridLine;if(vertical){if(--c<0){return keyword_null}}else
{if(--r<0){return keyword_null}}query=self._queryLineItem(r,c,store,true);if(query.success){return query.lineItem}return keyword_null};_GcBorders.prototype.paint=function(context,clipRect){var self=this;if(!self._isInitialized){return}if(!self._isMerged){self._processSpans();self._processOverflowCells();self._adjust();self._isMerged=true}context.save();context.beginPath();self._paint(context,clipRect);context.closePath();context.stroke();context.restore()};_GcBorders.prototype._paint=function(context,clipRect){this._paintGridLine(context);this._paintBorderLines(context)};_GcBorders.prototype._paintGridLine=function(context){var self=this;self._paintLines(context,self._hGridLine);self._paintLines(context,self._vGridLine)};_GcBorders.prototype._paintBorderLines=function(context){var self=this;self._paintLines(context,self._hBorders);self._paintLines(context,self._vBorders)};_GcBorders.prototype._paintLines=function(context,store){if(!store){return}var firstDim,secondDim,line;for(var i in store){firstDim=store[i];if(firstDim){for(var j in firstDim){secondDim=firstDim[j];line=(secondDim&&secondDim.line);if(line){line.paint(context)}}}}};return _GcBorders})();spread._GcBorders=_GcBorders})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("core.sheet_render",["core.common","core.sheet_border","core.sheet_action","core.sheet_model","core.imageLoader"]);var keyword_null=null,Math_min=Math.min,Math_max=Math.max,Math_abs=Math.abs,Math_PI=Math.PI,const_undefined="undefined";var document=window.document;var _SheetRender=(function(){function _SheetRender(sheet){this.ctx=keyword_null;this.buffer=keyword_null;this.bufferCtx=keyword_null;this._rowGroups=keyword_null;this._columnGroups=keyword_null;this._floatingObjectRenderManager=keyword_null;this._existTouchDragFillIndicator=false;this._showTouchSelectionIndicator=true;this._init(sheet)}_SheetRender.prototype._init=function(sheet){this._sheet=sheet};_SheetRender.prototype._getCtx=function(){var self=this;self.ctx=keyword_null;var sheet=self._sheet;var c=sheet._getCanvas();if(c){if(!c.getContext&&spread.util._isSilverlightCanvas()){if(!c.getContext){return}}if(c.getContext){self.ctx=c.getContext('2d')}}if(self.ctx){self.ctx.name="userContext"}return self.ctx};_SheetRender.prototype._getBufferCtx=function(){var self=this;var sheet=self._sheet;var rect=sheet._bounds;var buffer=self.buffer;if(!buffer||buffer.width!==rect.width||buffer.height!==rect.height){self.buffer=buffer=document.createElement("canvas");buffer.width=rect.width;buffer.height=rect.height}if(buffer.getContext){self.bufferCtx=buffer.getContext('2d')}else
{if(spread.util._isSilverlightCanvas()){if(!buffer.getContext){return}else
{self.bufferCtx=buffer.getContext('2d')}}}if(self.bufferCtx){self.bufferCtx.beginPath();self.bufferCtx.font=self._getZoomFont(self._getDefaultFont());self.bufferCtx.name="bufferContext"}return self.bufferCtx};_SheetRender.prototype._getDefaultFont=function(sheetArea){if(sheetArea===3||typeof(sheetArea)===const_undefined||sheetArea===keyword_null){return"9pt Microsoft YaHei"}else
{return"11pt "+this._sheet.currentTheme().bodyFont()}};_SheetRender.prototype._getDefaultBackground=function(){return"white"};_SheetRender.prototype._getSpreadBackColor=function(){var sheet=this._sheet;var currentSpread=sheet.parent;var bkColorString=currentSpread?currentSpread._backColor:this._getDefaultBackground();var bkColor=spread._ThemeContext.getColor(sheet,bkColorString);var bkImg=currentSpread?currentSpread._backgroundImage:keyword_null;if(bkImg&&bkImg!==""){bkColor="transparent"}return bkColor};_SheetRender.prototype._getGrayAreaBackColor=function(isDrawImage){var sheet=this._sheet;var currentSpread=sheet.parent;var bkColorString=currentSpread?currentSpread._grayAreaBackColor:"gray";var bkColor=this._getThemeContentBackgroundColor(spread._ThemeContext.getColor(sheet,bkColorString));if(!isDrawImage){return bkColor}var bkImg=currentSpread?currentSpread._backgroundImage:keyword_null;if(bkImg&&bkImg!==""){bkColor="transparent"}return bkColor};_SheetRender.prototype._getZoomFont=function(font){var sheet=this._sheet,zoomFactor=sheet._zoomFactor;if(zoomFactor===1){return font}return spread.StyleHelper._scaleFont(font,zoomFactor).font};_SheetRender.prototype.copyDoubleBuffer=function(srcX,srcY,srcW,srcH,clipRect){if(srcW<=0||srcH<=0){return}var buffer=this.buffer,ctx=this._getCtx();if(!buffer||!ctx){return}if(!clipRect){clipRect=this._sheet._bounds}var intersectRect=clipRect.getIntersect(srcX,srcY,srcW,srcH);if(!intersectRect){return}srcX=intersectRect.x;srcY=intersectRect.y;srcW=intersectRect.width;srcH=intersectRect.height;var maxWidth=buffer.width;if(maxWidth&&(srcX+srcW>maxWidth)){srcW=maxWidth-srcX}var maxHeight=buffer.height;if(maxHeight&&(srcY+srcH>maxHeight)){srcH=maxHeight-srcY}if($.browser.qtMode){if(srcX>0){srcW--}if(srcY>0){srcH--}}ctx.clearRect(srcX,srcY,srcW,srcH);ctx.drawImage(buffer,srcX,srcY,srcW,srcH,srcX,srcY,srcW,srcH)};_SheetRender.prototype.copyDoubleBufferRect=function(rect,clipRect){if(rect){this.copyDoubleBuffer(rect.x,rect.y,rect.width,rect.height,clipRect)}};_SheetRender.prototype.copyScreen=function(srcX,srcY,srcW,srcH,destX,destY){try
{var self=this;var sheet=self._sheet,ctx=self._getCtx(),canvas=sheet._getCanvas(),bufferCtx=self._getBufferCtx(),buffer=self.buffer;ctx.clearRect(destX,destY,srcW,srcH);ctx.drawImage(buffer,srcX,srcY,srcW,srcH,destX,destY,srcW,srcH);bufferCtx.clearRect(destX,destY,srcW,srcH);bufferCtx.drawImage(canvas,destX,destY,srcW,srcH,destX,destY,srcW,srcH)}catch(e){}};_SheetRender.prototype.repaintSelection=function(range,clipRect,ctx){var self=this;if(!ctx){ctx=self._getCtx()}var ret=false,sheet=self._sheet,newRange=new spread.Range(-1,-1,-1,-1),isNavigateInSelection=sheet._isNavigateInSelection;if(range){if(sheet._allowCellOverflow){newRange=new spread.Range(range.row,0,range.rowCount,sheet.getColumnCount())}else
{newRange=new spread.Range(range.row,range.col,range.rowCount,range.colCount)}if(!isNavigateInSelection){if(newRange.col>=0){var startCol=newRange.col,endCol=newRange.col+newRange.colCount-1,rCount=sheet.getRowCount(1);for(var r=0;r<rCount;r++){var cr=sheet._colHeaderSpanModel.find(r,newRange.col);if(cr){startCol=Math_min(cr.col,startCol)}var cr=sheet._colHeaderSpanModel.find(r,newRange.col+newRange.colCount-1);if(cr){endCol=Math_max(cr.col+cr.colCount-1,endCol)}}newRange.col=startCol;newRange.colCount=endCol-startCol+1}if(newRange.row>=0){var startRow=newRange.row,endRow=newRange.row+newRange.rowCount-1,cCount=sheet.getColumnCount(2);for(var c=0;c<cCount;c++){var cr=sheet._rowHeaderSpanModel.find(newRange.row,c);if(cr){startRow=Math_min(cr.row,startRow)}var cr=sheet._rowHeaderSpanModel.find(newRange.row+newRange.rowCount-1,c);if(cr){endRow=Math_max(cr.row+cr.rowCount-1,endRow)}}newRange.row=startRow;newRange.rowCount=endRow-startRow+1}}}var rect=sheet._getRangeRect2(newRange);if(rect.width>=0&&rect.height>=0){rect.x-=9;rect.y-=9;rect.width+=18;rect.height+=30;if(clipRect){rect=rect.getIntersectRect(clipRect);if(!rect){return}}self.paint(ctx,rect);var layout=sheet._getSheetLayout();if(rect.height>0&&!isNavigateInSelection){sheet._dirty=true;self.paint(ctx,new spread.Rect(layout.x,Math_max(layout.frozenY,rect.y),layout.rowHeaderWidth,rect.height))}if(rect.width>0&&!isNavigateInSelection){sheet._dirty=true;self.paint(ctx,new spread.Rect(Math_max(layout.frozenX,rect.x),layout.y,rect.width,layout.colHeaderHeight))}if(newRange.row===-1&&newRange.col===-1&&!isNavigateInSelection){sheet._dirty=true;self.paint(ctx,layout.headerCornerRect())}ret=true}return ret};_SheetRender.prototype.update=function(x,y,width,height,ignoreDirtyFlag){var sheet=this._sheet;if(sheet._layoutSuspended>0){return}var ctx=this._getCtx();if(ctx){if(!ignoreDirtyFlag){sheet._dirty=true}this.paint(ctx,new spread.Rect(x,y,width,height))}};_SheetRender.prototype.repaint=function(clipRect){var sheet=this._sheet;if(sheet._layoutSuspended>0){return}var ctx=this._getCtx();if(ctx){sheet._dirty=true;this.paint(ctx,clipRect)}};_SheetRender.prototype.paint=function(ctx,clipRect){var sheet=this._sheet;if(!ctx||sheet._layoutSuspended>0){return}this.paintBody(ctx,clipRect);this.paintAdornment(ctx,clipRect)};_SheetRender.prototype.paintBody=function(ctx,clipRect){var self=this;var sheet=self._sheet;if(!ctx||sheet._layoutSuspended>0){return}var useDoubleBuffer=spread.util._useDoubleBuffer();var bufferCtx=useDoubleBuffer?self._getBufferCtx():ctx;if(!bufferCtx){useDoubleBuffer=false;bufferCtx=ctx}var rect=sheet._bounds;if(!clipRect){clipRect=rect}if(sheet._dirty){sheet._dirty=false;if(useDoubleBuffer){bufferCtx.clearRect(clipRect.x,clipRect.y,clipRect.width,clipRect.height);bufferCtx.translate(-rect.x,-rect.y)}self.paintSheet(bufferCtx,clipRect);if(useDoubleBuffer){bufferCtx.translate(rect.x,rect.y)}}if(useDoubleBuffer){self.copyDoubleBufferRect(clipRect)}};_SheetRender.prototype.paintAdornment=function(ctx,clipRect){var self=this,sheet=self._sheet,isTouchMode=sheet._isTouchMode;if(!ctx||sheet._paintSuspended||sheet._layoutSuspended>0){return}var layout=sheet._getSheetLayout(),rect,actualClipRect,r,c;if(!sheet._hoverCell){if(isTouchMode){for(r=0;r<=2;r++){rect=layout.rowHeaderRect(r);if(!rect||rect.width===0||rect.height===0){continue}self.copyDoubleBufferRect(rect)}for(c=0;c<=2;c++){rect=layout.colHeaderRect(c);if(!rect||rect.width===0||rect.height===0){continue}self.copyDoubleBufferRect(rect)}}for(r=0;r<=2;r++){for(c=0;c<=2;c++){rect=layout.viewportRect(r,c);if(!rect||rect.width===0||rect.height===0){continue}actualClipRect=clipRect;if(isTouchMode&&(r!==1||c!==1)){self.copyDoubleBufferRect(rect);actualClipRect=rect}if(!actualClipRect||rect.intersectRect(actualClipRect)){self.paintSelection(ctx,r,c,actualClipRect)}}}self.paintResizeLine(ctx);var fbx=sheet._formulaTextBox;if(fbx){for(r=0;r<=2;r++){for(c=0;c<=2;c++){rect=layout.viewportRect(r,c);if(!rect||rect.width===0||rect.height===0){continue}self.paintFormulaTextBoxRange(ctx,r,c)}}}}if(isTouchMode){self.paintTouchResizeIndicator(ctx);if(self._existTouchDragFillIndicator){self.paintTouchDragFillIndicator(ctx)}else
{self.paintTouchSelectionIndicator(ctx)}}};_SheetRender.prototype.paintTouchResizeIndicator=function(ctx){var sheet=this._sheet,rowCount=sheet.getRowCount(),colCount=sheet.getColumnCount();var layout=sheet._getSheetLayout();var image,imageSize=16;var headerCellRect,resizeIndicatorRect,headerRect;var selections=sheet.getSelections();if(sheet._isTouchMode&&selections.length>0){var selection=selections[selections.length-1];var row=selection.row,lastRow=selection.row+selection.rowCount-1,col=selection.col,lastCol=selection.col+selection.colCount-1;if(!sheet.parent||sheet.parent._allowUserResize){if(row!==-1&&col===-1&&sheet.getRowResizable(lastRow)){var rowViewportIndex;if(lastRow<sheet.frozenRowCount){rowViewportIndex=0}else if(lastRow<rowCount-sheet._frozenTrailingRowCount){rowViewportIndex=1}else if(lastRow<rowCount){rowViewportIndex=2}image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABaSURBVDhPY/z//z8DLsDIyAiWBKphBAtgAUxQGgPANIMAMhsdYDUAmwZchtDOC8SCgTcA5DfcgUAEoNwFo7GAPQxwJVtsYYHVBdgU4gpInF5A1oBLMwMDAwMApuAtD6Z7YxQAAAAASUVORK5CYII=";headerCellRect=sheet.getCellRect(lastRow,sheet.getColumnCount(2)-1,rowViewportIndex,-1);headerRect=layout.rowHeaderRect(rowViewportIndex);if(headerRect.y<=headerCellRect.y&&headerCellRect.y+headerCellRect.height<=headerRect.y+headerRect.height){resizeIndicatorRect=new spread.Rect(layout.frozenX-imageSize,headerCellRect.y+headerCellRect.height-imageSize/2,imageSize,imageSize)}}else if(row===-1&&col!==-1&&sheet.getColumnResizable(lastCol)){var colViewportIndex;if(lastCol<sheet.frozenColCount){colViewportIndex=0}else if(lastCol<colCount-sheet._frozenTrailingColCount){colViewportIndex=1}else if(lastCol<colCount){colViewportIndex=2}image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAJcEhZcwAADsIAAA7CARUoSoAAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAE1JREFUOE/ljtEKACAIA/v/nzZ9mFhsJPRocLEuGS4zk/iJyyP/D6gE0wrYoCqoLoUafPl8fEBln3ulSscfErk65TMjMFRBhUowosDWBoHpba8+C7w0AAAAAElFTkSuQmCC";headerCellRect=sheet.getCellRect(sheet.getRowCount(1)-1,lastCol,-1,colViewportIndex);headerRect=layout.colHeaderRect(colViewportIndex);if(headerRect.x<=headerCellRect.x&&headerCellRect.x+headerCellRect.width<=headerRect.x+headerRect.width){resizeIndicatorRect=new spread.Rect(headerCellRect.x+headerCellRect.width-imageSize/2,layout.frozenY-imageSize,imageSize,imageSize)}}if(image&&resizeIndicatorRect){var imageLoader=sheet._getImageLoader();if(imageLoader.getState(image)){ctx.drawImage(imageLoader.getImage(image),resizeIndicatorRect.x,resizeIndicatorRect.y,resizeIndicatorRect.width,resizeIndicatorRect.height)}else
{imageLoader.addImage(image)}}}}};_SheetRender.prototype._getFloatingObjectRender=function(rowViewportIndex,columnViewportIndex){var self=this;if(spread.features.floatingObject){if(!self._floatingObjectRenderManager){self._floatingObjectRenderManager=[]}var rowFloatingObjectRenderManager=self._floatingObjectRenderManager[rowViewportIndex];if(!rowFloatingObjectRenderManager){self._floatingObjectRenderManager[rowViewportIndex]=[]}var result=self._floatingObjectRenderManager[rowViewportIndex][columnViewportIndex];if(!result){self._floatingObjectRenderManager[rowViewportIndex][columnViewportIndex]=new spread._FloatingObjectRenderManager(self._sheet)}result=self._floatingObjectRenderManager[rowViewportIndex][columnViewportIndex];return result}return keyword_null};_SheetRender.prototype._paintFloatingObject=function(clipRect,zoomFactor){var sheet=this._sheet;if(!sheet._hoverCell){var layout=sheet._getSheetLayout(),rect;if(zoomFactor===keyword_null||typeof(zoomFactor)===const_undefined){zoomFactor=sheet._zoomFactor}for(var r=0;r<=2;r++){for(var c=0;c<=2;c++){rect=layout.viewportRect(r,c);if(!rect||rect.width===0||rect.height===0){continue}if(!clipRect||rect.intersectRect(clipRect)){var floatingObjectRender=this._getFloatingObjectRender(r,c);if(floatingObjectRender&&!sheet._eventHandler.isFloatingObjectWorking){floatingObjectRender._render(r,c,zoomFactor)}}}}}};_SheetRender.prototype.paintSheet=function(ctx,clipRect){var self=this;var sheet=self._sheet;if(!ctx||sheet._layoutSuspended>0){return}spread._CatchMgr.startCatch(sheet,0,0,sheet.getRowCount()-1,sheet.getColumnCount()-1);var rect=sheet._bounds;ctx.save();if(!clipRect){ctx.rect(rect.x,rect.y,rect.width,rect.height)}else
{ctx.rect(clipRect.x,clipRect.y,clipRect.width,clipRect.height)}ctx.clip();ctx.beginPath();ctx.fillStyle=self._getSpreadBackColor();ctx.fillRect(rect.x,rect.y,rect.width,rect.height);var layout=sheet._getSheetLayout();if(spread.features.group){self.paintGroup(ctx,clipRect)}if(spread.features.floatingObject){self._paintFloatingObject(clipRect)}var r,c;for(c=0;c<=2;c++){var colHeaderRect=layout.colHeaderRect(c);if(colHeaderRect){if(!clipRect){self.paintColHeader(ctx,c,colHeaderRect)}else
{var intersectRect=colHeaderRect.getIntersectRect(clipRect);if(intersectRect){self.paintColHeader(ctx,c,intersectRect)}}}}for(r=0;r<=2;r++){var rowHeaderRect=layout.rowHeaderRect(r);if(rowHeaderRect){if(!clipRect){self.paintRowHeader(ctx,r,rowHeaderRect)}else
{var intersectRect=rowHeaderRect.getIntersectRect(clipRect);if(intersectRect){self.paintRowHeader(ctx,r,intersectRect)}}}for(c=0;c<=2;c++){var viewportRect=layout.viewportRect(r,c);if(viewportRect){if(!clipRect){self.paintViewport(ctx,r,c,viewportRect)}else
{var intersectRect=viewportRect.getIntersectRect(clipRect);if(intersectRect){self.paintViewport(ctx,r,c,intersectRect)}}}}}if(spread.features.comment){self._paintComment(clipRect)}var headerCornerRect=layout.headerCornerRect();if(headerCornerRect){if(!clipRect){self.paintColHeaderCorner(ctx,headerCornerRect)}else
{var intersectRect=headerCornerRect.getIntersectRect(clipRect);if(intersectRect){self.paintColHeaderCorner(ctx,intersectRect)}}}var rowLayoutModel=sheet._getRowLayout(1);if(rowLayoutModel.length>0){var rowLayout=rowLayoutModel[rowLayoutModel.length-1];if(rowLayout.y+rowLayout.height<layout.frozenTrailingY){ctx.fillStyle=self._getGrayAreaBackColor(false);ctx.fillRect(layout.headerX,rowLayout.y+rowLayout.height,layout.width,layout.frozenTrailingY-(rowLayout.y+rowLayout.height))}}else if(rowLayoutModel.length===0){ctx.fillStyle=self._getGrayAreaBackColor(false);ctx.fillRect(layout.headerX,layout.viewportY,layout.width,layout.frozenTrailingY-layout.viewportY)}var colLayoutModel=sheet._getColumnLayout(1);if(colLayoutModel.length>0){var colLayout=colLayoutModel[colLayoutModel.length-1];if(colLayout.x+colLayout.width<layout.frozenTrailingX){ctx.fillStyle=self._getGrayAreaBackColor(false);ctx.fillRect(colLayout.x+colLayout.width,layout.headerY,layout.frozenTrailingX-(colLayout.x+colLayout.width),layout.height)}}else if(colLayoutModel.length===0){ctx.fillStyle=self._getGrayAreaBackColor(false);ctx.fillRect(layout.viewportX,layout.headerY,layout.frozenTrailingX-layout.viewportX,layout.height)}self.paintFrozenLine(ctx);if(sheet.borderWidth>0){ctx.strokeStyle=sheet.borderColor;ctx.lineWidth=sheet.borderWidth;ctx.strokeRect(rect.x+ctx.lineWidth/2,rect.y+ctx.lineWidth/2,Math_max(0,rect.width-ctx.lineWidth),Math_max(0,rect.height-ctx.lineWidth))}spread._CatchMgr.clearCatch();ctx.beginPath();ctx.restore()};_SheetRender.prototype._getThemeContentBackgroundColor=function(defaultColor){var sheet=this._sheet;if(sheet.parent&&sheet.parent.useWijmoTheme){var t=spread.Global.prototype._dummyContent;var themeStyle=t.currentStyle;if(document.defaultView&&document.defaultView.getComputedStyle){themeStyle=document.defaultView.getComputedStyle(t,'')}if(themeStyle&&themeStyle.backgroundColor&&themeStyle.backgroundColor!==""){defaultColor=themeStyle.backgroundColor}}return defaultColor};_SheetRender.prototype.refreshDragDropIndicator=function(){var self=this;var sheet=self._sheet;var target=sheet._currentTarget;if(!target||!target.dragInfo){return}var ctx=self._getCtx();var layout=sheet._getSheetLayout();var dragRange=sheet._actualDragRange;var dragRect=sheet._dragRect;var rect=sheet._getRangeRect2(dragRange);var frozenTrailingColCount=sheet._frozenTrailingColCount,frozenTrailingRowCount=sheet._frozenTrailingRowCount;var endCol=sheet.getColumnCount()-frozenTrailingColCount,endRow=sheet.getRowCount()-frozenTrailingRowCount;var vpRect=layout.viewportRect(1,1);if(frozenTrailingColCount>0&&dragRange.col+dragRange.colCount<=endCol&&rect.x+rect.width>vpRect.x+vpRect.width&&rect.intersectRect(vpRect)){rect=rect.getIntersectRect(vpRect)}if(frozenTrailingRowCount>0&&dragRange.row+dragRange.rowCount<=endRow&&rect.y+rect.height>vpRect.y+vpRect.height&&rect.intersectRect(vpRect)){rect=rect.getIntersectRect(vpRect)}var viewportRect=new spread.Rect(layout.frozenX,layout.frozenY,layout.frozenTrailingX+layout.frozenTrailingWidth,layout.frozenTrailingY+layout.frozenTrailingHeight);if(rect.width>0&&rect.height>0){dragRect.x=rect.x;dragRect.y=rect.y;dragRect.width=rect.width-1;dragRect.height=rect.height-1;self.paintDragDropIndicator(ctx,viewportRect)}else if(rect.width===0||rect.height===0){dragRect.x=rect.x;dragRect.y=rect.y;dragRect.width=rect.width;dragRect.height=rect.height;self.paintDragDropIndicator(ctx,viewportRect)}var isDragInsert=sheet._eventHandler._isDragInsert;if(isDragInsert===true){sheet._dragOldRect=sheet._insertDragRect}else
{sheet._dragOldRect=new spread.Rect(dragRect.x,dragRect.y,dragRect.width,dragRect.height)}};_SheetRender.prototype.paintDragDropIndicator=function(ctx,viewportClipRect){var self=this;var sheet=self._sheet;var dragRect=sheet._dragRect;var isDragInsert=sheet._eventHandler._isDragInsert;var hi=dragRect.hitTarget;var oldRect,clipRect;if(!sheet||!dragRect||!hi){return}ctx.save();if(isDragInsert===true&&(dragRect.row===-1||dragRect.col===-1)){if(dragRect.row===-1&&dragRect.col!==-1){var cl=sheet._getColumnLayout(0).findCol(dragRect.hitCol);if(!cl){cl=sheet._getColumnLayout(1).findCol(dragRect.hitCol)}if(!cl){cl=sheet._getColumnLayout(2).findCol(dragRect.hitCol)}if(cl){var x=cl.x;var width=cl.width;dragRect.col=dragRect.hitCol;if(hi.x>(x+width/2)&&(dragRect.col<sheet._getLastFullyVisibleColumn()||dragRect.col===sheet._getLastVisualColumn())){x=cl.x+cl.width;dragRect.col++}oldRect=sheet._dragOldRect;if(!oldRect||oldRect.width!==0){oldRect=sheet._dragRect}if(oldRect){clipRect=new spread.Rect(oldRect.x-2,oldRect.y-2,oldRect.width+4,oldRect.height+4);self.copyDoubleBufferRect(clipRect,viewportClipRect);self.repaintSelection(sheet._getActiveSelectedRange(),viewportClipRect)}sheet._insertDragRect=new spread.Rect(x,dragRect.y,0,dragRect.height);ctx.rect(viewportClipRect.x,viewportClipRect.y,viewportClipRect.width,viewportClipRect.height);ctx.clip();ctx.beginPath();self.paintDragLine(ctx,x,dragRect.y,x,dragRect.y+dragRect.height)}}else if(dragRect.row!==-1&&dragRect.col===-1){var rl=sheet._getRowLayout(0).findRow(dragRect.hitRow);if(!rl){rl=sheet._getRowLayout(1).findRow(dragRect.hitRow)}if(!rl){rl=sheet._getRowLayout(2).findRow(dragRect.hitRow)}if(rl){var y=rl.y;var height=rl.height;dragRect.row=dragRect.hitRow;if(hi.y>(y+height/2)&&(dragRect.row<sheet._getLastFullyVisibleRow()||dragRect.row===sheet._getLastVisualRow())){y=rl.y+rl.height;dragRect.row++}oldRect=sheet._dragOldRect;if(!oldRect||oldRect.height!==0){oldRect=sheet._dragRect}if(oldRect){clipRect=new spread.Rect(oldRect.x-2,oldRect.y-2,oldRect.width+4,oldRect.height+4);self.copyDoubleBufferRect(clipRect,viewportClipRect);self.repaintSelection(sheet._getActiveSelectedRange(),viewportClipRect)}sheet._insertDragRect=new spread.Rect(dragRect.x,y,dragRect.width,0);ctx.rect(viewportClipRect.x,viewportClipRect.y,viewportClipRect.width,viewportClipRect.height);ctx.clip();ctx.beginPath();self.paintDragLine(ctx,dragRect.x,y,dragRect.x+dragRect.width,y)}}}else
{{oldRect=sheet._dragOldRect;if(oldRect){clipRect=new spread.Rect(oldRect.x-2,oldRect.y-2,oldRect.width+4,oldRect.height+4);self.copyDoubleBufferRect(clipRect,viewportClipRect);self.repaintSelection(sheet._getActiveSelectedRange(),viewportClipRect)}ctx.rect(viewportClipRect.x,viewportClipRect.y,viewportClipRect.width,viewportClipRect.height);ctx.clip();ctx.beginPath();self.paintDragRectangle(ctx,dragRect)}}ctx.beginPath();ctx.restore()};_SheetRender.prototype.paintDragRectangle=function(ctx,rect){var self=this;self.paintDragLine(ctx,rect.x,rect.y,rect.x+rect.width,rect.y);self.paintDragLine(ctx,rect.x,rect.y+rect.height,rect.x+rect.width,rect.y+rect.height);self.paintDragLine(ctx,rect.x,rect.y,rect.x,rect.y+rect.height);self.paintDragLine(ctx,rect.x+rect.width,rect.y,rect.x+rect.width,rect.y+rect.height)};_SheetRender.prototype.paintDragLine=function(ctx,fromX,fromY,toX,toY){ctx.save();var line1,line2,line3;if(fromX===toX){ctx.rect(fromX-2,fromY,7,Math_abs(toY-fromY));ctx.clip();ctx.beginPath();if(fromY<toY){fromY-=3;toY+=3}else
{fromY+=3;toY-=3}line1=spread.Line.Create(fromX-1,fromY-1,toX-1,toY+1,"black",7);line2=spread.Line.Create(fromX,fromY,toX,toY,"black",7);line3=spread.Line.Create(fromX+1,fromY-1,toX+1,toY+1,"black",7)}else if(fromY===toY){ctx.rect(fromX,fromY-2,Math_abs(toX-fromX),7);ctx.clip();ctx.beginPath();if(fromX<toX){fromX-=3;toX+=3}else
{fromX+=3;toX-=3}line1=spread.Line.Create(fromX-1,fromY-1,toX+1,toY-1,"black",7);line2=spread.Line.Create(fromX,fromY,toX,toY,"black",7);line3=spread.Line.Create(fromX-1,fromY+1,toX+1,toY+1,"black",7)}line1.paintLine(ctx);line2.paintLine(ctx);line3.paintLine(ctx);ctx.stroke();ctx.beginPath();ctx.restore()};_SheetRender.prototype.paintResizeLine=function(ctx){var x,y,movingX,movingY,endX,endY;var sheet=this._sheet;if(!sheet._eventHandler.isResizing){return}var currentTarget=sheet._currentTarget;if(!currentTarget){return}var resizeInfo=currentTarget.resizeInfo;if(resizeInfo){var sheetLayout=sheet._getSheetLayout(),lineColor="#000000";ctx.save();if(ctx.strokeStyle!==lineColor){ctx.strokeStyle=lineColor}if(ctx.lineWidth!==1){ctx.lineWidth=1}ctx.beginPath();if(resizeInfo.action==="sizeRow"){y=Math_max(0,resizeInfo.startY-0.5);movingY=resizeInfo.movingY-0.5;endX=sheetLayout.x+sheetLayout.width;for(x=sheetLayout.x;x<endX;x+=2){ctx.moveTo(x,y);ctx.lineTo(x+1,y);ctx.moveTo(x,movingY);ctx.lineTo(x+1,movingY)}}else
{x=Math_max(0,resizeInfo.startX-0.5);movingX=resizeInfo.movingX-0.5;endY=sheetLayout.y+sheetLayout.height;for(y=sheetLayout.y;y<endY;y+=2){ctx.moveTo(x,y);ctx.lineTo(x,y+1);ctx.moveTo(movingX,y);ctx.lineTo(movingX,y+1)}}ctx.stroke();ctx.beginPath();ctx.restore()}};_SheetRender.prototype.paintColHeaderCorner=function(ctx,clipRect){var sheet=this._sheet;ctx.beginPath();var rect=sheet._getSheetLayout().headerCornerRect();var style=sheet.getActualStyle(-1,-1,0);this.paintCells(ctx,[{data:keyword_null,row:-1,col:-1,x:rect.x,y:rect.y,width:rect.width,height:rect.height,style:style}],0);var border=new spread._GcBorders(sheet,0,0,0);border.addCellLines(0,0,rect.x,rect.y,rect.width,rect.height);border.paint(ctx,clipRect)};_SheetRender.prototype.paintFrozenLine=function(ctx){var sheet=this._sheet;if(sheet.frozenRowCount||sheet.frozenColCount||sheet._frozenTrailingRowCount||sheet._frozenTrailingColCount){var sheetLayout=sheet._getSheetLayout();ctx.save();ctx.strokeStyle=spread._ThemeContext.getColor(sheet,sheet._frozenlineColor);ctx.lineWidth=1;ctx.beginPath();if(sheet.frozenColCount){ctx.moveTo(sheetLayout.viewportX-0.5,sheetLayout.y);ctx.lineTo(sheetLayout.viewportX-0.5,sheetLayout.y+sheetLayout.height)}if(sheet.frozenRowCount){ctx.moveTo(sheetLayout.x,sheetLayout.viewportY-0.5);ctx.lineTo(sheetLayout.x+sheetLayout.width,sheetLayout.viewportY-0.5)}if(sheet._frozenTrailingColCount){ctx.moveTo(sheetLayout.frozenTrailingX-0.5,sheetLayout.y);ctx.lineTo(sheetLayout.frozenTrailingX-0.5,sheetLayout.y+sheetLayout.height)}if(sheet._frozenTrailingRowCount){ctx.moveTo(sheetLayout.x,sheetLayout.frozenTrailingY-0.5);ctx.lineTo(sheetLayout.x+sheetLayout.width,sheetLayout.frozenTrailingY-0.5)}ctx.stroke();ctx.restore()}};_SheetRender.prototype.paintColHeader=function(ctx,c,clipRect){this.paintViewportImp(ctx,-1,c,1,clipRect)};_SheetRender.prototype.paintRowHeader=function(ctx,r,clipRect){this.paintViewportImp(ctx,r,-1,2,clipRect)};_SheetRender.prototype.paintViewport=function(ctx,rowViewportIndex,colViewportIndex,clipRect){this.paintViewportImp(ctx,rowViewportIndex,colViewportIndex,3,clipRect);var cutCopyIndicatorManager=this._sheet._cutCopyIndicatorManager;if(cutCopyIndicatorManager){cutCopyIndicatorManager.paintCutCopyIndicator(ctx,clipRect,rowViewportIndex,colViewportIndex)}};_SheetRender.prototype.getTouchDragFillIndicatorRect=function(){var sheet=this._sheet;var rect=keyword_null;var selections=sheet.getSelections();var length=selections.length;if(sheet._isTouchMode&&length>0){var sel=selections[length-1];var selectRect=sheet._getRangeRect2(sel);var dragFillIndicatorWidth=17;var dragFillIndicatorHeight=20;rect=new spread.Rect(selectRect.x+selectRect.width-dragFillIndicatorWidth,selectRect.y+selectRect.height,dragFillIndicatorWidth,dragFillIndicatorHeight)}return rect};_SheetRender.prototype.getCurrentViewportRange=function(row,col){var sheet=this._sheet,rowCount=sheet.getRowCount(),colCount=sheet.getColumnCount();var rowViewportIndex=1;if(0<=row&&row<sheet.frozenRowCount){rowViewportIndex=0}else if(rowCount>row&&row>=rowCount-sheet._frozenTrailingRowCount){rowViewportIndex=2}var colViewportIndex=1;if(0<=col&&col<sheet.frozenColCount){colViewportIndex=0}else if(colCount>col&&col>=colCount-sheet._frozenTrailingColCount){colViewportIndex=2}var viewportRowLayoutModel=sheet._getViewportRowLayout(rowViewportIndex),viewportColumnLayoutModel=sheet._getViewportColumnLayout(colViewportIndex),topRow=0,bottomRow=0,leftCol=0,rightCol=0;if(viewportRowLayoutModel.length>0){topRow=viewportRowLayoutModel[0].row;bottomRow=viewportRowLayoutModel[viewportRowLayoutModel.length-1].row}if(viewportColumnLayoutModel.length>0){leftCol=viewportColumnLayoutModel[0].col;rightCol=viewportColumnLayoutModel[viewportColumnLayoutModel.length-1].col}return new spread.Range(topRow,leftCol,bottomRow-topRow+1,rightCol-leftCol+1)};_SheetRender.prototype.isContainedByCurrentViewport=function(row,col){var sheet=this._sheet,rowCount=sheet.getRowCount(),colCount=sheet.getColumnCount();var rowViewportIndex=1;if(0<=row&&row<sheet.frozenRowCount){rowViewportIndex=0}else if(rowCount>row&&row>=rowCount-sheet._frozenTrailingRowCount){rowViewportIndex=2}var colViewportIndex=1;if(0<=col&&col<sheet.frozenColCount){colViewportIndex=0}else if(colCount>col&&col>=colCount-sheet._frozenTrailingColCount){colViewportIndex=2}var sheetLayout=sheet._getSheetLayout();var viewportRect=sheetLayout.viewportRect(rowViewportIndex,colViewportIndex);var colContained=false;var viewportColumnLayoutModel=sheet._getViewportColumnLayout(colViewportIndex);var columnLayout=col===-1?viewportColumnLayoutModel[0]:viewportColumnLayoutModel.findCol(col);if(columnLayout){colContained=viewportRect.x<=columnLayout.x&&columnLayout.x+columnLayout.width<=viewportRect.x+viewportRect.width}var rowContained=false;var viewportRowLayoutModel=sheet._getViewportRowLayout(rowViewportIndex);var rowLayout=row===-1?viewportRowLayoutModel[0]:viewportRowLayoutModel.findRow(row);if(rowLayout){rowContained=viewportRect.y<=rowLayout.y&&rowLayout.y+rowLayout.height<=viewportRect.y+viewportRect.height}return colContained&&rowContained};_SheetRender.prototype.getSelectionIndicatorRects=function(){var self=this;var sheet=self._sheet;var selections=sheet.getSelections();var rects=[];if(sheet._isTouchMode&&selections.length>0){var selection=selections[selections.length-1];var selectRect=sheet._getRangeRect2(selection);var radius=8;var sheetLayout=sheet._getSheetLayout(),selectionFirstRow=selection.row,selectionLastRow=selection.row+selection.rowCount-1,selectionFirstCol=selection.col,selectionLastCol=selection.col+selection.colCount-1,topLeftViewportRange=self.getCurrentViewportRange(selectionFirstRow,selectionFirstCol),bottomRightViewportRange=self.getCurrentViewportRange(selectionLastRow,selectionLastCol),topRow=topLeftViewportRange.row,bottomRow=bottomRightViewportRange.row+bottomRightViewportRange.rowCount-1,leftCol=topLeftViewportRange.col,rightCol=bottomRightViewportRange.col+bottomRightViewportRange.colCount-1,frozenRect,viewportRect,equalBottomRow=selectionLastRow===bottomRow&&self.isContainedByCurrentViewport(bottomRow,-1),equalRightCol=selectionLastCol===rightCol&&self.isContainedByCurrentViewport(-1,rightCol);if(selection.row!==-1&&selection.col!==-1){if(leftCol<=selectionFirstCol&&selectionFirstCol<=rightCol&&topRow<=selectionFirstRow&&selectionFirstRow<=bottomRow){rects[0]=new spread.Rect(selectRect.x-radius,selectRect.y-radius,radius*2,radius*2)}if(((leftCol<=selectionLastCol&&selectionLastCol<rightCol)||equalRightCol)&&((topRow<=selectionLastRow&&selectionLastRow<bottomRow)||equalBottomRow)){rects[1]=new spread.Rect(selectRect.x+selectRect.width-radius,selectRect.y+selectRect.height-radius,radius*2,radius*2)}}else if(selection.row!==-1){frozenRect=sheetLayout.viewportRect(1,0);viewportRect=sheetLayout.viewportRect(1,1);var startX=frozenRect.x+(frozenRect.width+viewportRect.width)/2-radius;var viewportLastColumn=sheet.getColumnCount()-1-sheet.getFrozenTrailingColumnCount();var viewportColumnLayoutModel=sheet._getViewportColumnLayout(1);var columnLayout=viewportColumnLayoutModel.findCol(viewportLastColumn);if(columnLayout){var frozenColumnLayoutModel=sheet._getViewportColumnLayout(0);var leftColLayout=frozenColumnLayoutModel[0]||viewportColumnLayoutModel[0];if(leftColLayout){startX=leftColLayout.x+(columnLayout.x+columnLayout.width-leftColLayout.x)/2-radius}}if(topRow<=selectionFirstRow&&selectionFirstRow<=bottomRow){rects[0]=new spread.Rect(startX,selectRect.y-radius,radius*2,radius*2)}if((topRow<=selectionLastRow&&selectionLastRow<bottomRow)||equalBottomRow){rects[1]=new spread.Rect(startX,selectRect.y+selectRect.height-radius,radius*2,radius*2)}}else if(selection.col!==-1){frozenRect=sheetLayout.viewportRect(0,1);viewportRect=sheetLayout.viewportRect(1,1);var startY=frozenRect.y+(frozenRect.height+viewportRect.height)/2-radius;var viewportLastRow=sheet.getRowCount()-1-sheet.getFrozenTrailingRowCount();var viewportRowLayoutModel=sheet._getViewportRowLayout(1);var rowLayout=viewportRowLayoutModel.findRow(viewportLastRow);if(rowLayout){var frozenRowLayoutModel=sheet._getViewportRowLayout(0);var topRowLayout=frozenRowLayoutModel[0]||viewportRowLayoutModel[0];if(topRowLayout){startY=topRowLayout.y+(rowLayout.y+rowLayout.height-topRowLayout.y)/2-radius}}if(leftCol<=selectionFirstCol&&selectionFirstCol<=rightCol){rects[0]=new spread.Rect(selectRect.x-radius,startY,radius*2,radius*2)}if((leftCol<=selectionLastCol&&selectionLastCol<rightCol)||equalRightCol){rects[1]=new spread.Rect(selectRect.x+selectRect.width-radius,startY,radius*2,radius*2)}}var rec;for(var i=rects.length-1;i>=0;i--){rec=rects[i];if(!rec||rec.x<0||rec.y<0){rects.splice(i,1)}}}return rects};_SheetRender.prototype.paintTouchSelectionIndicator=function(ctx){if(this._sheet.isEditing()||!this._showTouchSelectionIndicator){return}var selectionIndicatorRects=this.getSelectionIndicatorRects(),len=selectionIndicatorRects.length,rect;if(len>0){ctx.save();ctx.fillStyle="white";ctx.strokeStyle="black";for(var i=0;i<len;i++){rect=selectionIndicatorRects[i];ctx.beginPath();ctx.arc(rect.x+rect.width/2,rect.y+rect.height/2,rect.width/2,0,Math_PI*2,false);ctx.fill();ctx.stroke()}ctx.restore()}};_SheetRender.prototype.refreshTouchSelectionIndicator=function(){var sheet=this._sheet;var selections=sheet.getSelections();if(!sheet._paintSuspended&&selections.length>0){this.repaintSelection(selections[selections.length-1])}};_SheetRender.prototype.paintTouchDragFillIndicator=function(ctx){var sheet=this._sheet;var dragFillIndicatorWidth=17;var dragFillIndicatorHeight=20;var dragFillIndicatorRect=this.getTouchDragFillIndicatorRect();if(dragFillIndicatorRect){var imgSrc="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAATCAIAAAD5x3GmAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwwAADsMBx2 + oZAAAAGhJREFUOE / djkEOwCAIBHk6P98u1lKo1diEU + dggOyAAkC + YPl / Onx3WDmiytm4aulQoKba + 4uiO77YhHDH5SqnRa0If / Nhq0fnjPob2h5oVXJI0rJA3h1ya1kgU4f4nQfVzozk7APgAIEqATZbalz1AAAAAElFTkSuQmCC";var imageLoader=sheet._getImageLoader();if(imageLoader.getState(imgSrc)){ctx.drawImage(imageLoader.getImage(imgSrc),dragFillIndicatorRect.x,dragFillIndicatorRect.y,dragFillIndicatorWidth,dragFillIndicatorHeight)}else
{imageLoader.addImage(imgSrc)}}};_SheetRender.prototype.paintSelection=function(ctx,rowViewportIndex,colViewportIndex,clipRect){var self=this,sheet=self._sheet,eventHandler=sheet._eventHandler,layout=sheet._getSheetLayout(),viewportRect=layout.viewportRect(rowViewportIndex,colViewportIndex),selections=sheet._selectionModel,selectionCount=selections.length;clipRect=self._getClipRect(rowViewportIndex,colViewportIndex,clipRect);if(!clipRect){return}var selectionRects=self._getPaintingRects(rowViewportIndex,colViewportIndex,selections,clipRect),selectionRectCount=selectionRects.length,selectionRect;if(selectionRectCount<=0){return}var needClip=false,clipped=false;for(var i=0;i<selectionRectCount;i++){selectionRect=selectionRects[i];if(!clipRect.containsRect(selectionRect)){needClip=true;break}}ctx.save();if(needClip){ctx.rect(clipRect.x,clipRect.y,clipRect.width,clipRect.height);ctx.clip();clipped=true}ctx.beginPath();if(selectionRectCount>0){var selectionBackColor=spread._ThemeContext.getColor(sheet,sheet.selectionBackColor());if(ctx.fillStyle!==selectionBackColor){ctx.fillStyle=selectionBackColor}for(var i=0;i<selectionRects.length;i++){selectionRect=selectionRects[i];ctx.fillRect(selectionRect.x,selectionRect.y,selectionRect.width,selectionRect.height)}}var rect=sheet.getCellRect(sheet._activeRowIndex,sheet._activeColIndex,rowViewportIndex,colViewportIndex);if(viewportRect.intersectRect(rect)){rect.x=Math_max(rect.x,viewportRect.x);rect.y=Math_max(rect.y,viewportRect.y)}if(rect&&rect.intersectRect(clipRect)){self.copyDoubleBuffer(rect.x+1,rect.y+1,rect.width-2,rect.height-2);if(selectionCount>1){ctx.strokeStyle="black";ctx.lineWidth=1;ctx.strokeRect(rect.x+1.5,rect.y+1.5,rect.width-4,rect.height-4)}}if(selectionCount===1){if(eventHandler.isDraggingFill&&eventHandler.isDragClear()&&!eventHandler._isDragAroundIndicator){var fillRange=eventHandler.getCurrentFillRange();var fillRect=sheet._getRangeRect(rowViewportIndex,colViewportIndex,fillRange);if(fillRect&&fillRect.width>0&&fillRect.height>0){ctx.fillStyle="rgba(110,110,110, 0.5)";ctx.fillRect(fillRect.x,fillRect.y,fillRect.width,fillRect.height)}}if(selectionRect&&selectionRect.width>=0&&selectionRect.height>=0){self.paintSelectionBorder(ctx,rowViewportIndex,colViewportIndex,selectionRect,clipRect)}}ctx.beginPath();ctx.restore()};_SheetRender.prototype.paintSelectionBorder=function(ctx,rowViewportIndex,colViewportIndex,selectRect,clipRect){var sheet=this._sheet,eventHandler=sheet._eventHandler;if(selectRect.width>=0&&selectRect.height>=0&&(!clipRect||selectRect.intersect(clipRect.x-1,clipRect.y-1,clipRect.width+2,clipRect.height+2))){ctx.save();if(clipRect&&!clipRect.containsRect(selectRect)){ctx.rect(clipRect.x,clipRect.y,clipRect.width,clipRect.height);ctx.clip()}ctx.beginPath();ctx.strokeStyle=spread._ThemeContext.getColor(sheet,sheet.selectionBorderColor());ctx.lineWidth=2;if(selectRect.width>0&&selectRect.height>0){if(eventHandler.isDraggingFill){switch(eventHandler._currentFillDirection){case 2:ctx.moveTo(selectRect.x+0.5,selectRect.y-0.5);ctx.lineTo(selectRect.x+selectRect.width-1,selectRect.y-0.5);break;case 3:ctx.moveTo(selectRect.x+0.5,selectRect.y+selectRect.height-0.5);ctx.lineTo(selectRect.x+selectRect.width-1,selectRect.y+selectRect.height-0.5);break;case 0:ctx.moveTo(selectRect.x-0.5,selectRect.y+0.5);ctx.lineTo(selectRect.x-0.5,selectRect.y+selectRect.height-1);break;case 1:ctx.moveTo(selectRect.x+selectRect.width-0.5,selectRect.y+0.5);ctx.lineTo(selectRect.x+selectRect.width-0.5,selectRect.y+selectRect.height-1);break;case 5:case 4:break;default:break}}else
{ctx.rect(selectRect.x-0.5,selectRect.y-0.5,selectRect.width,selectRect.height)}ctx.stroke();if(sheet.canUserDragFill()){this.paintDragFillIndicator(ctx,rowViewportIndex,colViewportIndex,selectRect,clipRect)}}else if(selectRect.width===0||selectRect.height===0){ctx.strokeRect(selectRect.x-1,selectRect.y-1,selectRect.width+1,selectRect.height+1)}ctx.beginPath();ctx.restore()}};_SheetRender.prototype._getClipRect=function(rowViewportIndex,colViewportIndex,clipRect){var sheet=this._sheet,layout=sheet._getSheetLayout(),paintRect=layout.viewportRect(rowViewportIndex,colViewportIndex);if(colViewportIndex===1){var colLayouts=sheet._getColumnLayout(colViewportIndex),lastColLayout=(colLayouts.length>0?colLayouts[colLayouts.length-1]:keyword_null);if(lastColLayout){paintRect.width=Math_min(paintRect.width,lastColLayout.x+lastColLayout.width-layout.viewportX)}}if(rowViewportIndex===1){var rowLayouts=sheet._getRowLayout(rowViewportIndex),lastRowLayout=(rowLayouts.length>0?rowLayouts[rowLayouts.length-1]:keyword_null);if(lastRowLayout){paintRect.height=Math_min(paintRect.height,lastRowLayout.y+lastRowLayout.height-layout.viewportY)}}if(clipRect){clipRect=clipRect.getIntersect(paintRect.x,paintRect.y,paintRect.width,paintRect.height)}else
{clipRect=paintRect}return clipRect};_SheetRender.prototype._getPaintingRects=function(rowViewportIndex,colViewportIndex,ranges,clipRect){var sheet=this._sheet,spans=sheet._spanModel,span,count=ranges.length,cr,rects=[],rect;for(var i=0;i<count;i++){cr=ranges[i];if(cr){span=spans.find(cr.row,cr.col);if(span&&span.containsRange(cr)){cr=span}rect=sheet._getRangeRect(rowViewportIndex,colViewportIndex,cr);if(rect&&rect.x<=clipRect.x+clipRect.width&&rect.y<=clipRect.y+clipRect.height&&clipRect.x<=rect.x+rect.width&&clipRect.y<=rect.y+rect.height){rects.push(rect)}}}return rects};_SheetRender.prototype.paintFormulaTextBox=function(){var self=this;var sheet=self._sheet;if(sheet._paintSuspended||sheet._layoutSuspended>0){return}var layout=sheet._getSheetLayout(),ctx=self._getCtx();self.copyDoubleBuffer(layout.x,layout.y,layout.width,layout.height);self.paintAdornment(ctx)};_SheetRender.prototype.paintFormulaTextBoxRange=function(ctx,rowViewportIndex,colViewportIndex){var self=this;var sheet=self._sheet,eventHandler=sheet._eventHandler,fbx=sheet._formulaTextBox,paramRanges=(fbx&&fbx.getRanges()),rangeCount=(paramRanges&¶mRanges.length);if(rangeCount<=0){return}var clipRect=self._getClipRect(rowViewportIndex,colViewportIndex);if(!clipRect){return}ctx.save();ctx.rect(clipRect.x,clipRect.y,clipRect.width,clipRect.height);ctx.clip();ctx.beginPath();var isHoving=eventHandler.isFormulaRangeHoving,hovingInfo=eventHandler._formulRangeHovingInfo,isMoving=eventHandler.isFormulaRangeMoving,movingInfo=eventHandler._formulaRangeMovingInfo,isResizing=eventHandler.isFormulaRangeResizing,resizingInfo=eventHandler._formulaRangeResizingInfo;var paramRange,rangeString,range,rect,color;for(var i=0;i<rangeCount;i++){paramRange=paramRanges[i];rangeString=paramRange.text;range=eventHandler.stringToRange(rangeString);if(!range){continue}rect=self._getPaintingRects(rowViewportIndex,colViewportIndex,[range],clipRect)[0];if(rect&&rect.width>0&&rect.height>0){color=fbx.getRangeColor(i);if(fbx.isAppendingRange(paramRange)){if(isHoving&&hovingInfo.paramRange.index===i){ctx.beginPath();ctx.lineWidth=2;ctx.strokeStyle=color;ctx.rect(rect.x+1,rect.y+1,rect.width-3,rect.height-3);ctx.stroke()}self.paintDashRect(ctx,rect,color)}else if((isHoving&&hovingInfo.paramRange.index===i)||(isMoving&&movingInfo.paramRange.index===i)||(isResizing&&resizingInfo.paramRange.index===i)){ctx.beginPath();ctx.lineWidth=2;ctx.strokeStyle=color;ctx.rect(rect.x+1,rect.y+1,rect.width-3,rect.height-3);ctx.stroke()}else
{ctx.beginPath();ctx.lineWidth=2;ctx.strokeStyle=color;ctx.rect(rect.x,rect.y,rect.width-1,rect.height-1);ctx.stroke()}if(fbx.isActiveRange(paramRange)){var a=0.1,r=0,g=0,b=0;var val=spread.util.parseColorString(color);if(val.length===3){r=val[0];g=val[1];b=val[2]}else if(val.length===4){r=val[1];g=val[2];b=val[3]}ctx.beginPath();ctx.fillStyle="rgba("+r+","+g+","+b+","+a+")";ctx.fillRect(rect.x+1,rect.y+1,rect.width-3,rect.height-3)}var size=5;var x1=rect.x-2,x2=rect.x+rect.width+1-size,y1=rect.y-2,y2=rect.y+rect.height+1-size;ctx.beginPath();ctx.fillStyle=color;ctx.fillRect(x1,y1,size,size);ctx.fillRect(x2,y1,size,size);ctx.fillRect(x1,y2,size,size);ctx.fillRect(x2,y2,size,size)}}ctx.beginPath();ctx.restore()};_SheetRender.prototype.paintDashRect=function(ctx,rect,color){ctx.save();var dashLines=[6,6];if(ctx.setLineDash&&!$.browser.qtMode){ctx.beginPath();ctx.lineWidth=2;ctx.strokeStyle=color;ctx.setLineDash(dashLines);ctx.rect(rect.x,rect.y,rect.width-1,rect.height-1);ctx.stroke()}else
{ctx.beginPath();ctx.lineWidth=2;ctx.strokeStyle=color;var dash1=dashLines[0],dash2=dashLines[1],x,y,remainderWidth,remainderHeight;x=rect.x,y=rect.y,remainderWidth=rect.width;while(remainderWidth>0){if(remainderWidth>=dash1+dash2){ctx.moveTo(x,y);ctx.lineTo(x+dash1,y);x=x+dash1+dash2;remainderWidth=remainderWidth-dash1-dash2}else if(remainderWidth>=dash1){ctx.moveTo(x,y);ctx.lineTo(x+dash1,y);remainderWidth=remainderWidth-dash1-dash2;break}else if(remainderWidth>0){ctx.moveTo(x,y);ctx.lineTo(x+remainderWidth,y);remainderWidth=remainderWidth-dash1-dash2;break}}x=rect.x+rect.width-1,y=rect.y+1,remainderHeight=rect.height-1;if(remainderWidth<0){remainderWidth=Math_abs(remainderWidth);if(remainderWidth>dash2){ctx.moveTo(x,y-2);ctx.lineTo(x,y+(remainderWidth-dash2))}y+=remainderWidth;remainderHeight-=remainderWidth}while(remainderHeight>0){if(remainderHeight>=dash1+dash2){ctx.moveTo(x,y);ctx.lineTo(x,y+dash1);y=y+dash1+dash2;remainderHeight=remainderHeight-dash1-dash2}else if(remainderHeight>=dash1){ctx.moveTo(x,y);ctx.lineTo(x,y+dash1);remainderHeight=remainderHeight-dash1-dash2}else if(remainderHeight>0){ctx.moveTo(x,y);ctx.lineTo(x,y+remainderHeight);remainderHeight=remainderHeight-dash1-dash2}}x=rect.x+rect.width-2,y=rect.y+rect.height-1,remainderWidth=rect.width-1;if(remainderHeight<0){remainderHeight=Math_abs(remainderHeight);if(remainderHeight>dash2){ctx.moveTo(x+2,y);ctx.lineTo(x-(remainderHeight-dash2),y)}x-=remainderHeight;remainderWidth-=remainderHeight}while(remainderWidth>0){if(remainderWidth>=dash1+dash2){ctx.moveTo(x,y);ctx.lineTo(x-dash1,y);x=x-dash1-dash2;remainderWidth=remainderWidth-dash1-dash2}else if(remainderWidth>=dash1){ctx.moveTo(x,y);ctx.lineTo(x-dash1,y);remainderWidth=remainderWidth-dash1-dash2;break}else if(remainderWidth>0){ctx.moveTo(x,y);ctx.lineTo(x-remainderWidth,y);remainderWidth=remainderWidth-dash1-dash2;break}}x=rect.x,y=rect.y+rect.height-2,remainderHeight=rect.height-1;if(remainderWidth<0){remainderWidth=Math_abs(remainderWidth);if(remainderWidth>dash2){ctx.moveTo(x,y+2);ctx.lineTo(x,y-(remainderWidth-dash2))}y-=remainderWidth;remainderHeight-=remainderWidth}while(remainderHeight>0){if(remainderHeight>=dash1+dash2){ctx.moveTo(x,y);ctx.lineTo(x,y-dash1);y=y-dash1-dash2;remainderHeight=remainderHeight-dash1-dash2}else if(remainderHeight>=dash1){ctx.moveTo(x,y);if(y-dash1===rect.y){ctx.lineTo(x,y-dash1-1)}else
{ctx.lineTo(x,y-dash1)}remainderHeight=remainderHeight-dash1-dash2}else if(remainderHeight>0){if(y>rect.y){ctx.moveTo(x,y);ctx.lineTo(x,y-remainderHeight)}remainderHeight=remainderHeight-dash1-dash2}}ctx.stroke()}ctx.beginPath();ctx.restore()};_SheetRender.prototype.getDragFillIndicatorRect=function(selectRect){var sheet=this._sheet;var range=sheet._getActiveSelectedRange();var layout=sheet._getSheetLayout();var rect=new spread.Rect(-4,-4,4,4);if(range.col===-1){rect.x=layout.frozenX;rect.y=selectRect.y+selectRect.height-0.5-2}else if(range.row===-1){rect.x=selectRect.x+selectRect.width-0.5-2;rect.y=layout.frozenY}else
{rect.x=selectRect.x+selectRect.width-0.5-2;rect.y=selectRect.y+selectRect.height-0.5-2}return rect};_SheetRender.prototype.paintDragFillIndicator=function(ctx,rowViewportIndex,colViewportIndex,selectRect,clipRect){var sheet=this._sheet;var layout=sheet._getSheetLayout();var indicatorRect=this.getDragFillIndicatorRect(selectRect);var viewportRect=layout.viewportRect(rowViewportIndex,colViewportIndex);if(!clipRect||indicatorRect.intersectRect(clipRect)){if(indicatorRect.intersectRect(viewportRect)){var copyRect=new spread.Rect(indicatorRect.x-1.5,indicatorRect.y-1.5,indicatorRect.width+2,indicatorRect.height+2);copyRect.x=Math_max(copyRect.x,viewportRect.x);copyRect.y=Math_max(copyRect.y,viewportRect.y);this.copyDoubleBufferRect(copyRect);ctx.save();if(clipRect&&!clipRect.containsRect(indicatorRect)){ctx.rect(clipRect.x,clipRect.y,clipRect.width,clipRect.height);ctx.clip()}ctx.beginPath();ctx.fillStyle=spread._ThemeContext.getColor(sheet,sheet.selectionBorderColor());ctx.fillRect(indicatorRect.x,indicatorRect.y,indicatorRect.width,indicatorRect.height);sheet._dragFillIndicatorRect=new spread.Rect(indicatorRect.x,indicatorRect.y,4,4);ctx.beginPath();ctx.restore()}}};_SheetRender.prototype._paintCommentFloatLayoutPanel=function(sheetArea){var self=this;if(sheetArea===3){var commentRender=self._sheet._commentRender;if(commentRender){commentRender.renderCommentFloatPanel(self._sheet)}}};_SheetRender.prototype._paintCommentCellAdorner=function(ctx,sheetArea,cell){var self=this,commentRender=self._sheet._commentRender;if(commentRender){commentRender.renderCommentCellAdorner(ctx,sheetArea,cell)}};_SheetRender.prototype._paintComment=function(clipRect){var self=this,sheet=self._sheet,commentRender=sheet._commentRender;if(!sheet._hoverCell){var layout=self._sheet._getSheetLayout(),rect;for(var r=0;r<=2;r++){for(var c=0;c<=2;c++){rect=layout.viewportRect(r,c);if(!rect||rect.width===0||rect.height===0){continue}if(!clipRect||rect.intersectRect(clipRect)){var commentManager=sheet._commentManager;if(commentRender&&commentManager){commentRender.renderComment(commentManager)}}}}}};_SheetRender.prototype.paintViewportImp=function(ctx,rowViewportIndex,colViewportIndex,sheetArea,clipRect){var self=this;if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var sheet=self._sheet,rowLayouts=sheet._getRowLayout(rowViewportIndex,sheetArea),colLayouts=sheet._getColumnLayout(colViewportIndex,sheetArea),rowLayoutCount=rowLayouts.length,colLayoutCount=colLayouts.length;if(rowLayoutCount<0||colLayoutCount<0){return}var spanLayouts=sheet._getCellLayout(rowViewportIndex,colViewportIndex,sheetArea),hasSpanLayout=(spanLayouts.length>0),rowLayout=keyword_null,colLayout=keyword_null,cellLayout=keyword_null,row,col,x=0,y=0,width=0,height=0,data,style,border=new spread._GcBorders(sheet,rowViewportIndex,colViewportIndex,sheetArea),tmpAddSpans=[],paintingCells=[],allowCellOverflow=(sheetArea===3&&sheet._allowCellOverflow),cachePool=sheet._cachePool,paintingFilterButtons=keyword_null,filterButtonModel=sheet._getFilterButtonModel(),validationUIModel=[],highlightInvalid=(sheetArea===3&&sheet.parent&&sheet.parent.highlightInvalidData());if(spread.features.comment){self._paintCommentFloatLayoutPanel(sheetArea)}ctx.save();if(clipRect){ctx.rect(clipRect.x,clipRect.y,clipRect.width,clipRect.height);ctx.clip()}ctx.beginPath();for(var i=0;i<rowLayoutCount;i++){rowLayout=rowLayouts[i];for(var j=0;j<colLayoutCount;j++){colLayout=colLayouts[j];cellLayout=(hasSpanLayout&&spanLayouts.findCell(rowLayout.row,colLayout.col));if(cellLayout){row=cellLayout.row;col=cellLayout.col;x=cellLayout.x;y=cellLayout.y;width=cellLayout.width;height=cellLayout.height}else
{row=rowLayout.row;col=colLayout.col;x=colLayout.x;y=rowLayout.y;width=colLayout.width;height=rowLayout.height}if(clipRect&&(x+width<=clipRect.x||x>=clipRect.x+clipRect.width||y+height<=clipRect.y||y>=clipRect.y+clipRect.height)){continue}if(width===0||height===0){continue}if(!cellLayout||!tmpAddSpans.contains(cellLayout)){data=sheet.getValue(row,col,sheetArea);style=sheet.getActualStyle(row,col,sheetArea);if(allowCellOverflow){cachePool.addCell(row,col,{data:data,style:style})}if(filterButtonModel&&width>0&&height>0){var btnInfo=filterButtonModel.find(row,col,sheetArea);if(btnInfo){if(!paintingFilterButtons){paintingFilterButtons=new spread._FilterButtonInfoModel}paintingFilterButtons.push(new spread._FilterButtonInfo(btnInfo.rowFilter,btnInfo.row,btnInfo.col,btnInfo.sheetArea,x,y,width,height))}}if(highlightInvalid&&!sheet.isValid(row,col,data)){validationUIModel.push({x:x,y:y,width:width,height:height})}border.addCellLines(row,col,x,y,width,height,style,cellLayout);paintingCells.push({data:data,row:row,col:col,x:x,y:y,width:width,height:height,style:style});if(cellLayout){tmpAddSpans.push(cellLayout)}}}}if(paintingCells.length>0){if(allowCellOverflow){var layoutBuilder=new _CellOverflowLayoutBuilder(sheet,rowViewportIndex,colViewportIndex);self.buildCellOverflowValueLayout(layoutBuilder,paintingCells,border)}self.paintCells(ctx,paintingCells,sheetArea)}if(paintingFilterButtons&&paintingFilterButtons.length>0){self._paintFilterButtons(ctx,paintingFilterButtons)}border.paint(ctx,clipRect);if(validationUIModel.length>0){self._paintValidationUI(ctx,validationUIModel)}ctx.restore()};_SheetRender.prototype._getFilterButtonRect=function(cellRect){var sheet=this._sheet,zoomFactor=sheet._zoomFactor;var filterButtonZoom=zoomFactor>1?1:zoomFactor,width=parseInt((Math_min(20,sheet.defaults.rowHeight)*filterButtonZoom).toString(),10);if(sheet.parent&&sheet.parent.useTouchLayout()){width=parseInt((sheet.defaults.rowHeight*zoomFactor).toString(),10)}var height=width,x=cellRect.x+cellRect.width-width,y=cellRect.y+cellRect.height-height;return{x:x,y:y,width:width,height:height}};_SheetRender.prototype._paintFilterButtons=function(ctx,filterHeaderModel){var sheet=this._sheet;ctx.save();ctx.beginPath();ctx.lineWidth=1;ctx.fillStyle="#FFFFFF";ctx.strokeStyle="#CCCCCC";var ctx2=this._getCtx();for(var i=0;i<filterHeaderModel.length;i++){var filterBtnInfo=filterHeaderModel[i];var filterButtonRect=this._getFilterButtonRect(new spread.Rect(filterBtnInfo.x,filterBtnInfo.y,filterBtnInfo.width,filterBtnInfo.height));var width=filterButtonRect.width;var height=filterButtonRect.height;var x=filterButtonRect.x;var y=filterButtonRect.y;ctx.save();ctx.rect(filterBtnInfo.x,filterBtnInfo.y,filterBtnInfo.width,filterBtnInfo.height);ctx.clip();ctx.beginPath();ctx.fillRect(x+1,y+1,width-3,height-3);ctx.strokeRect(x+1-0.5,y+2-0.5,width-3,height-4);var filterButtonState=filterBtnInfo.getState();var imgSrc=spread._GcFilterDialog.getImageSrc(filterButtonState);var imageLoader=sheet._getImageLoader();try
{if(imageLoader.getState(imgSrc)){ctx.drawImage(imageLoader.getImage(imgSrc),x,y+1,width-3,height-3)}else
{imageLoader.addImage(imgSrc)}}catch(ex){}ctx.beginPath();ctx.restore()}ctx.restore()};_SheetRender.prototype._paintValidationUI=function(ctx,validationUIModel){if(validationUIModel){var length=validationUIModel.length;for(var i=0;i<length;i++){var circle=validationUIModel[i];var x=circle.x-4,y=circle.y-4,w=circle.width+8,h=circle.height+8;var kappa=0.5522848,ox=(w/2)*kappa,oy=(h/2)*kappa,xe=x+w,ye=y+h,xm=x+w/2,ym=y+h/2;ctx.save();ctx.lineWidth=2;ctx.strokeStyle="red";ctx.beginPath();ctx.moveTo(x,ym);ctx.bezierCurveTo(x,ym-oy,xm-ox,y,xm,y);ctx.bezierCurveTo(xm+ox,y,xe,ym-oy,xe,ym);ctx.bezierCurveTo(xe,ym+oy,xm+ox,ye,xm,ye);ctx.bezierCurveTo(xm-ox,ye,x,ym+oy,x,ym);ctx.closePath();ctx.stroke();ctx.restore()}}};_SheetRender.prototype.paintCells=function(ctx,cells,sheetArea){var self=this;var sheet=self._sheet,isViewportArea=(sheetArea===3),scaleFont=spread.StyleHelper._scaleFont,zoomFactor=sheet._zoomFactor,defaultFontInfo=scaleFont(self._getDefaultFont(sheetArea),zoomFactor),defaultStyle=sheet.getDefaultStyle(sheetArea),defaultCellType=sheet.getDefaultCellType(sheetArea),useWijmoTheme=(sheet.parent&&sheet.parent.useWijmoTheme),conditionalFormats=sheet._conditionalFormats;var imageLoader=sheet._getImageLoader();ctx.save();ctx.beginPath();ctx.fillStyle=((defaultStyle&&defaultStyle.foreColor)||"#000000");ctx.font=defaultFontInfo.font;if(isViewportArea){ctx.textAlign="right"}else
{ctx.textAlign="center"}var count=cells.length,cell,cellType,data,row,col,x,y,width,height,style,cellOverflowLayout,visualState,fontInfo,lineHeight,sparkline,supportSparkline=spread.features.sparkline,m=sheet._getModel(sheetArea),overflowCells=[],overflowCell,options={sheet:sheet,row:-1,col:-1,fontInfo:keyword_null,lineHeight:-1,imageLoader:imageLoader,conditionalFormats:conditionalFormats,useWijmoTheme:useWijmoTheme,sheetArea:sheetArea};for(var i=0;i<count;i++){cell=cells[i];data=cell.data;row=cell.row;col=cell.col;x=cell.x;y=cell.y;width=cell.width;height=cell.height;style=cell.style;cellOverflowLayout=cell.cellOverflowLayout;if(style.font){fontInfo=scaleFont(style.font,zoomFactor)}else
{fontInfo=defaultFontInfo}var shrinkToFit=(!style.wordWrap&&style.shrinkToFit);if(shrinkToFit){var text=sheet.getText(row,col,sheetArea);if(text){var minFont={value:false};for(var j=0;j<3&&minFont.value===false;j++){var w=sheet._getStringWidthByCanvas(text,fontInfo.font);var space=Math_max(0,width-4);if(style.hAlign!==1&&style.textIndent){space=Math_max(0,space-style.textIndent*8)}if(space<w){fontInfo=scaleFont(fontInfo.font,space/w,minFont,true)}else
{break}}}}style.font=fontInfo.font;if(width>0&&height>0){cellType=(style.cellType||defaultCellType);x--;y--;width++;height++;if(isViewportArea){sparkline=(supportSparkline&&m.getSparkline(row,col));options.sparkline=sparkline}else
{visualState=self.getVisualState(row,col,sheetArea);options.visualState=visualState}lineHeight=sheet._getFontHeight(fontInfo.font,shrinkToFit);options.lineHeight=lineHeight;options.row=row;options.col=col;options.fontInfo=fontInfo;options.cellOverflowLayout=cellOverflowLayout;cellType.paint(ctx,data,x,y,width,height,style,options);if(cellOverflowLayout&&!options.showBarIconOnly){overflowCells.push({cellType:cellType,data:data,x:x,y:y,width:width,height:height,style:style,options:{sheet:sheet,row:row,col:col,fontInfo:fontInfo,lineHeight:lineHeight,cellOverflowLayout:cellOverflowLayout}})}}if(spread.features.comment){self._paintCommentCellAdorner(ctx,sheetArea,cell)}}count=overflowCells.length;if(count>0){var isEditing=sheet.isEditing(),activeRow=sheet._activeRowIndex,activeCol=sheet._activeColIndex,hasSparklineEx=spread.features.sparklineEx;for(var i=0;i<count;i++){overflowCell=overflowCells[i];cellType=overflowCell.cellType;data=overflowCell.data;x=overflowCell.x;y=overflowCell.y;width=overflowCell.width;height=overflowCell.height;style=overflowCell.style;options=overflowCell.options;if(isEditing&&options.row===activeRow&&options.col===activeCol){continue}if(hasSparklineEx&&data instanceof spread.SparklineExValue){continue}if(cellType.paintValue){cellType.paintValue(ctx,data,x,y,width,height,style,options)}}}ctx.restore()};_SheetRender.prototype.getVisualState=function(row,col,sheetArea){var sheet=this._sheet;var visualState=0;if(sheetArea===3||typeof(sheetArea)===const_undefined||sheetArea===keyword_null){if(!sheet.isEditing()&&sheet._isActiveCell(row,col)){visualState=3}else if(sheet._isSelected(row,col,sheetArea)){visualState=2}}else
{if(sheet._isSelected(row,col,sheetArea)){visualState=1;if(sheet._isAllSelected(row,col,sheetArea)){visualState=2}}if(sheet._isHover(row,col,sheetArea)){visualState=4}}return visualState};_SheetRender.prototype.paintLine=function(ctx,line,x1,y1,x2,y2){ctx.lineWidth=line.width();ctx.strokeStyle=line.color;ctx.moveTo(x1,y1);ctx.lineTo(x2,y2)};_SheetRender.prototype.paintGroup=function(ctx,clipRect){var sheet=this._sheet,groupLayout=sheet._getGroupLayout();if(groupLayout.width===0&&groupLayout.height===0){return}ctx.save();ctx.beginPath();var layout=sheet._getSheetLayout();if(groupLayout.width>0){if(!clipRect||clipRect.intersect(groupLayout.x,groupLayout.y,groupLayout.width,layout.height)){var rowMaxLevel=groupLayout.rowMaxLevel;var rowGroupHeader=new spread._RangeGroupHeaderPresenter(sheet,true,rowMaxLevel);rowGroupHeader.paintGroupHeader(ctx);var rowGroups=[new spread._RangeGroupPresenter(sheet,true,0,rowMaxLevel),new spread._RangeGroupPresenter(sheet,true,1,rowMaxLevel),new spread._RangeGroupPresenter(sheet,true,2,rowMaxLevel)];for(var i=0;i<=2;i++){var rowGroup=rowGroups[i];rowGroup.createGroupInfo();rowGroup.paintGroups(ctx)}}}if(groupLayout.height>0){if(!clipRect||clipRect.intersect(groupLayout.x,groupLayout.y,layout.width,groupLayout.height)){var colMaxLevel=groupLayout.colMaxLevel;var colGroupHeader=new spread._RangeGroupHeaderPresenter(sheet,false,colMaxLevel);colGroupHeader.paintGroupHeader(ctx);var colGroups=[new spread._RangeGroupPresenter(sheet,false,0,colMaxLevel),new spread._RangeGroupPresenter(sheet,false,1,colMaxLevel),new spread._RangeGroupPresenter(sheet,false,2,colMaxLevel)];for(var i=0;i<=2;i++){var colGroup=colGroups[i];colGroup.createGroupInfo();colGroup.paintGroups(ctx)}}}ctx.beginPath();ctx.restore()};_SheetRender.prototype.groupHitTest=function(x,y){if(!spread.features.group){return keyword_null}var sheet=this._sheet,groupLayout=sheet._getGroupLayout();if(groupLayout.width===0&&groupLayout.height===0){return keyword_null}var layout=sheet._getSheetLayout(),gRect=new spread.Rect(groupLayout.x,groupLayout.y,groupLayout.width,layout.height);if(!gRect.contains(x,y)){gRect=new spread.Rect(groupLayout.x,groupLayout.y,layout.width,groupLayout.height);if(!gRect.contains(x,y)){return keyword_null}}var t={what:"empty",info:keyword_null},i,k;if(groupLayout.width>0){var rowMaxLevel=groupLayout.rowMaxLevel;var rowGroupHeader=new spread._RangeGroupHeaderPresenter(sheet,true,rowMaxLevel);k=rowGroupHeader.getGroupButton(x,y);if(k){t={what:"rgh",info:k}}if(t.what==="empty"){var rowGroups=[new spread._RangeGroupPresenter(sheet,true,0,rowMaxLevel),new spread._RangeGroupPresenter(sheet,true,1,rowMaxLevel),new spread._RangeGroupPresenter(sheet,true,2,rowMaxLevel)];for(i=0;i<=2;i++){rowGroups[i].createGroupInfo();k=rowGroups[i].getRowGroupButton(x,y);if(k){t={what:"rg",info:k};break}}}}if(groupLayout.height>0){var colMaxLevel=groupLayout.colMaxLevel;if(t.what==="empty"){var colGroupHeader=new spread._RangeGroupHeaderPresenter(sheet,false,colMaxLevel);k=colGroupHeader.getGroupButton(x,y);if(k){t={what:"cgh",info:k}}}if(t.what==="empty"){var colGroups=[new spread._RangeGroupPresenter(sheet,false,0,colMaxLevel),new spread._RangeGroupPresenter(sheet,false,1,colMaxLevel),new spread._RangeGroupPresenter(sheet,false,2,colMaxLevel)];for(i=0;i<=2;i++){colGroups[i].createGroupInfo();k=colGroups[i].getColGroupButton(x,y);if(k){t={what:"cg",info:k};break}}}}return t};_SheetRender.prototype.buildCellOverflowValueLayout=function(layoutBuilder,paintingCells,border){var sheet=this._sheet,count=paintingCells.length,cell,data,style,row,col,x,y,width,height,backgroundWidth,textX,newX,newCell,overflowLayoutModel,headingOverflowLayout,trailingOverflowLayout,overflowLayout;for(var i=0;i<count;i++){cell=paintingCells[i];row=cell.row;col=cell.col;x=cell.x;y=cell.y;height=cell.height;overflowLayoutModel=layoutBuilder.getCellOverflowLayoutModel(row);headingOverflowLayout=overflowLayoutModel.headingOverflowlayout;trailingOverflowLayout=overflowLayoutModel.trailingOverflowLayout;overflowLayout=overflowLayoutModel.find(col);if(overflowLayout&&overflowLayout.column===col){width=cell.width;backgroundWidth=overflowLayout.backgroundWidth;if(overflowLayout.backgroundLeftWidth<0){textX=x}else if(overflowLayout.backgroundRightWidth<0){textX=x+width-backgroundWidth}else
{textX=x+width/2-overflowLayout.backgroundLeftWidth}cell.cellOverflowLayout=overflowLayout;overflowLayout.layout={x:textX,y:y,width:backgroundWidth,height:height};border.addCellOverlfowLayout(row,overflowLayout)}else if(headingOverflowLayout&&headingOverflowLayout.endColumn===col){col=headingOverflowLayout.column;style=sheet.getActualStyle(row,col);data=sheet.getValue(row,col);width=headingOverflowLayout.columnWidth;backgroundWidth=headingOverflowLayout.backgroundWidth;textX=x+cell.width-backgroundWidth;newCell={data:data,row:row,col:col,x:textX,y:cell.y,width:width,height:height,style:style,cellOverflowLayout:headingOverflowLayout};paintingCells.push(newCell);headingOverflowLayout.layout={x:textX,y:y,width:backgroundWidth,height:height};border.addCellOverlfowLayout(row,headingOverflowLayout)}else if(trailingOverflowLayout&&trailingOverflowLayout.startColumn===col){col=trailingOverflowLayout.column;style=sheet.getActualStyle(row,col);data=sheet.getValue(row,col);width=trailingOverflowLayout.columnWidth;backgroundWidth=trailingOverflowLayout.backgroundWidth;textX=x;newX=x+backgroundWidth-width;newCell={data:data,row:row,col:col,x:newX,y:y,width:width,height:height,style:style,cellOverflowLayout:trailingOverflowLayout};paintingCells.push(newCell);trailingOverflowLayout.layout={x:textX,y:y,width:backgroundWidth,height:height};border.addCellOverlfowLayout(row,trailingOverflowLayout)}}};return _SheetRender})();spread._SheetRender=_SheetRender;var _CellOverflowLayoutBuilder=(function(){function _CellOverflowLayoutBuilder(sheet,rowViewportIndex,colViewportIndex){this.TEXT_WIDTH_OFFSET=2;var self=this;self._sheet=sheet;self._rowViewportIndex=rowViewportIndex;self._colViewportIndex=colViewportIndex;self._colLayoutModel=sheet._getColumnLayout(colViewportIndex);self._cellLayoutModel=sheet._getCellLayout(rowViewportIndex,colViewportIndex),self.maxCellOverflowDistance=sheet.maxCellOverflowDistance;self.scaleFont=spread.StyleHelper._scaleFont;self.zoomFactor=sheet._zoomFactor;self.defaultFont=self.scaleFont(sheet._render._getDefaultFont(),self.zoomFactor).font;self.defaultCellType=sheet.getDefaultCellType();self.cachedCellOverflowModels={}}_CellOverflowLayoutBuilder.prototype.getCellOverflowLayoutModel=function(row){var self=this;var cache=self.cachedCellOverflowModels[row];if(cache){return cache}var sheet=self._sheet,colLayoutModel=self._colLayoutModel,count=colLayoutModel.length,vpLeft=colLayoutModel[0].col,vpRight=colLayoutModel[count-1].col,colLayout,col,cachePool=sheet._cachePool,cell,colInfo,style,data,width,hAlign;var cellOverflowLayoutModel=new spread._CellOverflowLayoutModel,cellOverflowLayout;cellOverflowLayoutModel.headingOverflowlayout=self._buildHeadingCellOverflowLayout(row);for(var i=0;i<count;i++){colLayout=colLayoutModel[i];if(colLayout.width<=0){continue}col=colLayout.col;cell=cachePool.getCachedCell(row,col);data=cell.data;if(data===keyword_null||typeof(data)===const_undefined){continue}style=cell.style;if(!style){style=cell.style=sheet.getActualStyle(row,col)}if(style.shrinkToFit||style.wordWrap){continue}colInfo=cachePool.getCachedColumn(col);width=colInfo.width;hAlign=style.hAlign;if(hAlign===3){hAlign=spread.util.getHAlignByValueType(hAlign,data)}if(hAlign===0){cellOverflowLayout=self._buildCellOverflowLayoutModelForLeft({data:data,style:style,width:width},row,col,vpRight);if(cellOverflowLayout){cellOverflowLayoutModel.push(cellOverflowLayout)}}else if(hAlign===2){cellOverflowLayout=self._buildCellOverflowLayoutModelForRight({data:data,style:style,width:width},row,col,vpLeft);if(cellOverflowLayout){cellOverflowLayoutModel.push(cellOverflowLayout)}}else if(hAlign===1){cellOverflowLayout=self._buildCellOverflowLayoutModelForCenter({data:data,style:style,width:width},row,col,vpLeft,vpRight);if(cellOverflowLayout){cellOverflowLayoutModel.push(cellOverflowLayout)}}}cellOverflowLayoutModel.trailingOverflowLayout=self._buildTrailingCellOverflowLayout(row);self.cachedCellOverflowModels[row]=cellOverflowLayoutModel;return cellOverflowLayoutModel};_CellOverflowLayoutBuilder.prototype._buildCellOverflowLayoutModelForLeft=function(cellContext,row,col,deadCol){var self=this;var sheet=self._sheet,cellLayoutModel=self._cellLayoutModel,cachePool=sheet._cachePool,colWidth=cellContext.width,backgroundWidth=cellContext.width,data=cellContext.data,style=cellContext.style,nextCol,nextCell,nextColInfo,text,textWidth;if(cellLayoutModel.findCell(row,col)!==keyword_null){return keyword_null}var cellType=(style.cellType||self.defaultCellType);if(!cellType.allowOverflow){return keyword_null}var formatter=(style.formatter||style._autoFormatter),context={sheet:sheet,row:row,col:col,sheetArea:sheet._getSheetArea(self._rowViewportIndex,self._colViewportIndex)};text=cellType.format(data,formatter,context);if(!text){return keyword_null}var font=style.font,textIndent=style.textIndent;if(font){font=self.scaleFont(font,self.zoomFactor).font}else
{font=self.defaultFont}textWidth=spread._WordWrapHelper._measureText(text,font)+(textIndent?textIndent*8:0)+self.TEXT_WIDTH_OFFSET;if(textWidth<=backgroundWidth){return keyword_null}var startCol=col,endCol=col;for(nextCol=col+1;nextCol<=deadCol;nextCol++){if(cellLayoutModel.findCell(row,nextCol)!==keyword_null){break}nextCell=cachePool.getCachedCell(row,nextCol);data=nextCell.data;if(data!==keyword_null&&typeof(data)!==const_undefined){break}endCol=nextCol;nextColInfo=cachePool.getCachedColumn(nextCol);backgroundWidth+=nextColInfo.width;if(textWidth<=backgroundWidth){break}}if(endCol==col){return keyword_null}return new spread._CellOverflowLayout(col,startCol,endCol,textWidth,colWidth,backgroundWidth,-1,backgroundWidth)};_CellOverflowLayoutBuilder.prototype._buildCellOverflowLayoutModelForRight=function(cellContext,row,col,deadColIndex){var self=this;var sheet=self._sheet,cellLayoutModel=self._cellLayoutModel,cachePool=sheet._cachePool,colWidth=cellContext.width,backgroundWidth=cellContext.width,data=cellContext.data,style=cellContext.style,width,nextCol,nextCell,nextColInfo,text,textWidth;if(cellLayoutModel.findCell(row,col)!==keyword_null){return keyword_null}var cellType=(style.cellType||self.defaultCellType);if(!cellType.allowOverflow){return keyword_null}var formatter=(style.formatter||style._autoFormatter),context={sheet:sheet,row:row,col:col,sheetArea:sheet._getSheetArea(self._rowViewportIndex,self._colViewportIndex)};text=cellType.format(data,formatter,context);if(!text){return keyword_null}var font=style.font,textIndent=style.textIndent;if(font){font=self.scaleFont(font,self.zoomFactor).font}else
{font=self.defaultFont}textWidth=spread._WordWrapHelper._measureText(text,font)+(textIndent?textIndent*8:0)+self.TEXT_WIDTH_OFFSET;if(textWidth<=backgroundWidth){return keyword_null}var startCol=col,endCol=col;for(nextCol=col-1;nextCol>=deadColIndex;nextCol--){if(cellLayoutModel.findCell(row,nextCol)!==keyword_null){break}nextCell=cachePool.getCachedCell(row,nextCol);data=nextCell.data;if(data!==keyword_null&&typeof(data)!==const_undefined){break}startCol=nextCol;nextColInfo=cachePool.getCachedColumn(nextCol);backgroundWidth+=nextColInfo.width;if(textWidth<=backgroundWidth){break}}if(startCol==col){return keyword_null}return new spread._CellOverflowLayout(col,startCol,endCol,textWidth,colWidth,backgroundWidth,backgroundWidth,-1)};_CellOverflowLayoutBuilder.prototype._buildCellOverflowLayoutModelForCenter=function(cellContext,row,col,leftDeadCol,rightDeadCol){var self=this;var sheet=self._sheet,cellLayoutModel=self._cellLayoutModel,cachePool=sheet._cachePool,colWidth=cellContext.width,backgroundWidth=cellContext.width,data=cellContext.data,style=cellContext.style,nextCol,nextCell,nextColInfo,text,textWidth;if(cellLayoutModel.findCell(row,col)!==keyword_null){return keyword_null}var cellType=(style.cellType||self.defaultCellType);if(!cellType.allowOverflow){return keyword_null}var formatter=(style.formatter||style._autoFormatter),context={sheet:sheet,row:row,col:col,sheetArea:sheet._getSheetArea(self._rowViewportIndex,self._colViewportIndex)};text=cellType.format(data,formatter,context);if(!text){return keyword_null}var font=style.font,textIndent=style.textIndent;if(font){font=self.scaleFont(font,self.zoomFactor).font}else
{font=self.defaultFont}textWidth=spread._WordWrapHelper._measureText(text,font)+(textIndent?textIndent*8:0)+self.TEXT_WIDTH_OFFSET;if(textWidth<=backgroundWidth){return keyword_null}var startCol=col,leftBackgroundWidth=backgroundWidth/2;for(nextCol=col-1;nextCol>=leftDeadCol;nextCol--){if(cellLayoutModel.findCell(row,nextCol)!==keyword_null){break}nextCell=cachePool.getCachedCell(row,nextCol);data=nextCell.data;if(data!==keyword_null&&typeof(data)!==const_undefined){break}startCol=nextCol;nextColInfo=cachePool.getCachedColumn(nextCol);leftBackgroundWidth+=nextColInfo.width;if(textWidth/2<=leftBackgroundWidth){break}}var endCol=col,rightBackgroundWidth=backgroundWidth/2;for(nextCol=col+1;nextCol<=rightDeadCol;nextCol++){if(cellLayoutModel.findCell(row,nextCol)!==keyword_null){break}nextCell=cachePool.getCachedCell(row,nextCol);data=nextCell.data;if(data!==keyword_null&&typeof(data)!==const_undefined){break}endCol=nextCol;nextColInfo=cachePool.getCachedColumn(nextCol);rightBackgroundWidth+=nextColInfo.width;if(textWidth/2<=rightBackgroundWidth){break}}if(startCol===endCol){return keyword_null}return new spread._CellOverflowLayout(col,startCol,endCol,textWidth,colWidth,leftBackgroundWidth+rightBackgroundWidth,leftBackgroundWidth,rightBackgroundWidth)};_CellOverflowLayoutBuilder.prototype._buildHeadingCellOverflowLayout=function(row){var self=this;var sheet=self._sheet,colLayoutModel=self._colLayoutModel,vpLeft=colLayoutModel[0].col,vpRight=colLayoutModel[colLayoutModel.length-1].col,spanModel=sheet._getSpanModel(),cachePool=sheet._cachePool,style,data,width,hAlign,maxFindCount=self.maxCellOverflowDistance,col=vpLeft,nextCol,nextCell,nextColInfo,ret;for(var i=1;i<maxFindCount;i++){nextCol=col-i;if(nextCol<0){return keyword_null}if(spanModel.find(row,nextCol)){return keyword_null}nextCell=cachePool.getCachedCell(row,nextCol);data=nextCell.data;nextColInfo=cachePool.getCachedColumn(nextCol);width=nextColInfo.width;if(width>0&&data!==keyword_null&&typeof(data)!==const_undefined){style=nextCell.style;if(!style){style=nextCell.style=sheet.getActualStyle(row,nextCol)}hAlign=style.hAlign;if(hAlign===3){hAlign=spread.util.getHAlignByValueType(hAlign,data)}if(hAlign===0){ret=self._buildCellOverflowLayoutModelForLeft({data:data,style:style,width:width},row,nextCol,vpRight);if(ret&&ret.endColumn>=vpLeft){return ret}}else if(1){ret=self._buildCellOverflowLayoutModelForCenter({data:data,style:style,width:width},row,nextCol,vpLeft,vpRight);if(ret&&ret.endColumn>=vpLeft){return ret}}return keyword_null}}};_CellOverflowLayoutBuilder.prototype._buildTrailingCellOverflowLayout=function(row){var self=this;var sheet=self._sheet,colLayoutModel=self._colLayoutModel,vpLeft=colLayoutModel[0].col,vpRight=colLayoutModel[colLayoutModel.length-1].col,spanModel=sheet._getSpanModel(),cachePool=sheet._cachePool,style,data,width,hAlign,maxFindCount=self.maxCellOverflowDistance,colCount=sheet.getColumnCount(),col=vpRight,nextCol,nextCell,nextColInfo,ret;for(var i=1;i<maxFindCount;i++){nextCol=col+i;if(nextCol>=colCount){return keyword_null}if(spanModel.find(row,nextCol)){return keyword_null}nextCell=cachePool.getCachedCell(row,nextCol);data=nextCell.data;nextColInfo=cachePool.getCachedColumn(nextCol);width=nextColInfo.width;if(width>0&&data!==keyword_null&&typeof(data)!==const_undefined){style=nextCell.style;if(!style){style=nextCell.style=sheet.getActualStyle(row,nextCol)}hAlign=style.hAlign;if(hAlign===3){hAlign=spread.util.getHAlignByValueType(hAlign,data)}if(hAlign===2){ret=self._buildCellOverflowLayoutModelForRight({data:data,style:style,width:width},row,nextCol,vpLeft);if(ret&&ret.startColumn<=vpRight){return ret}}else if(1){ret=self._buildCellOverflowLayoutModelForCenter({data:data,style:style,width:width},row,nextCol,vpLeft,vpRight);if(ret&&ret.startColumn<=vpRight){return ret}}return keyword_null}}};return _CellOverflowLayoutBuilder})();spread._CellOverflowLayoutBuilder=_CellOverflowLayoutBuilder;var CutCopyIndicatorManager=(function(){function CutCopyIndicatorManager(sheet){this._needPaintIndicator=false;this._eventNS='.cutCopyIndicator';this._ch=keyword_null;this._sheet=sheet;this._bindEvents()}CutCopyIndicatorManager.prototype.needPaintIndicator=function(value){var self=this;if(arguments.length===0){return self._needPaintIndicator}if(typeof value==='boolean'){if(self._needPaintIndicator===value&&value===false){return self}self._needPaintIndicator=value;var sheet=self._sheet;if(sheet){sheet.invalidate()}}return self};CutCopyIndicatorManager.prototype.getClipboardHelper=function(){var self=this;var sheet=self._sheet;if(sheet&&!self._ch){self._ch=sheet._getClipboardHelper()}return self._ch};CutCopyIndicatorManager.prototype._bindEvents=function(){var self=this,sheet=self._sheet,cacheNeedPaintIndicator=false;if(!sheet){return}sheet._bind(spread.Events.ClipboardChanged+self._eventNS,function(event,args){self.needPaintIndicator(true)});sheet._bind(spread.Events.ValueChanged+self._eventNS,function(event,args){self.needPaintIndicator(false)});sheet._eventHandler.bind(spread.Events.CellChanged+self._eventNS,function(event,args){self.needPaintIndicator(false)});sheet._bind(spread.Events.ColumnChanged+self._eventNS,function(event,data){if(data.propertyName!=='resizable'&&data.propertyName!=='width'&&data.propertyName!=='isVisible'){self.needPaintIndicator(false)}});sheet._bind(spread.Events.RowChanged+self._eventNS,function(event,data){if(data.propertyName!=='resizable'&&data.propertyName!=='height'&&data.propertyName!=='isVisible'){self.needPaintIndicator(false)}});sheet._bind(spread.Events.RangeChanged+self._eventNS,function(event,args){self.needPaintIndicator(false)});sheet._bind(spread.Events.ClipboardPasting+self._eventNS,function(event,args){cacheNeedPaintIndicator=self.needPaintIndicator()});sheet._bind(spread.Events.ClipboardPasted+self._eventNS,function(event,args){var cellRange=args.cellRange,sheet=args.sheet,ch=self.getClipboardHelper();if(cellRange&&ch&&ch.range&&ch.fromSheet&&sheet){if(ch.range.intersect(cellRange.row,cellRange.col,cellRange.rowCount,cellRange.colCount)||!sheet._isPastedInternal(ch.fromSheet,ch.range,sheet,sheet._eventHandler._getClipboardData())){self.needPaintIndicator(false)}else
{self.needPaintIndicator(cacheNeedPaintIndicator)}}})};CutCopyIndicatorManager.prototype.paintCutCopyIndicator=function(ctx,clipRect,rowViewportIndex,colViewportIndex){var sheet=this._sheet,render=sheet._render,ch=this.getClipboardHelper(),tempSpread=sheet.parent;var visible=(tempSpread&&tempSpread.cutCopyIndicatorVisible)?tempSpread.cutCopyIndicatorVisible():true;if(visible&&this._needPaintIndicator&&ch&&ch.fromSheet===sheet&&ch.range){var layout=sheet._getSheetLayout(),viewportRect=layout.viewportRect(rowViewportIndex,colViewportIndex),indicatorRect=render._getPaintingRects(rowViewportIndex,colViewportIndex,[ch.range],clipRect)[0];if(indicatorRect&&viewportRect){ctx.save();ctx.rect(viewportRect.x,viewportRect.y,viewportRect.width,viewportRect.height);ctx.clip();if(indicatorRect){var indicatorBorderColor=(tempSpread&&tempSpread.cutCopyIndicatorBorderColor)?tempSpread.cutCopyIndicatorBorderColor():'blue';var color=spread._ThemeContext.getColor(sheet,indicatorBorderColor);render.paintDashRect(ctx,indicatorRect,color)}ctx.beginPath();ctx.restore()}}};CutCopyIndicatorManager.prototype.addRows=function(){if(this._needPaintIndicator){this.needPaintIndicator(false)}};CutCopyIndicatorManager.prototype.deleteRows=function(){if(this._needPaintIndicator){this.needPaintIndicator(false)}};CutCopyIndicatorManager.prototype.addColumns=function(){if(this._needPaintIndicator){this.needPaintIndicator(false)}};CutCopyIndicatorManager.prototype.deleteColumns=function(){if(this._needPaintIndicator){this.needPaintIndicator(false)}};CutCopyIndicatorManager.prototype.cancelIndicator=function(){if(this._needPaintIndicator){this.needPaintIndicator(false)}};CutCopyIndicatorManager.prototype._dispose=function(){this._sheet._eventHandler.unbind(spread.Events.CellChanged+this._eventNS)};return CutCopyIndicatorManager})();spread.CutCopyIndicatorManager=CutCopyIndicatorManager})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("core.sheet_ui",["core.common"]);var keyword_undefined=undefined;var prop_backColor='backColor',prop_foreColor='foreColor',prop_hAlign='hAlign',prop_vAlign='vAlign',prop_themeFont='themeFont',prop_font='font',prop_formatter='formatter',prop_borderLeft='borderLeft',prop_borderTop='borderTop',prop_borderRight='borderRight',prop_borderBottom='borderBottom',prop_locked='locked',prop_textIndent='textIndent',prop_wordWrap='wordWrap',prop_shrinkToFit='shrinkToFit',prop_backgroundImage='backgroundImage',prop_backgroundImageLayout='backgroundImageLayout',prop_validator="validator",prop_cellType="cellType",prop_bindingPath="bindingPath",prop_tabStop="tabStop",prop_textDecoration="textDecoration",prop_imeMode="imeMode";var Cell=(function(){function Cell(sheet,row,col,sheetArea){var self=this;self.sheet=sheet;self.row=row;self.row2=row;self.col=col;self.col2=col;if(sheetArea===keyword_undefined||sheetArea===null){sheetArea=3}self.sheetArea=sheetArea}Cell.prototype.value=function(value){var self=this;if(arguments.length===0){return self.sheet.getValue(self.row,self.col,self.sheetArea)}else
{for(var r=self.row;r<=self.row2;r++){for(var c=self.col;c<=self.col2;c++){if(self._isValidIndex(r,c)){self.sheet.setValue(r,c,value,self.sheetArea)}}}return self}};Cell.prototype.text=function(value){var self=this;if(arguments.length===0){return self.sheet.getText(self.row,self.col,self.sheetArea)}else
{for(var r=self.row;r<=self.row2;r++){for(var c=self.col;c<=self.col2;c++){if(self._isValidIndex(r,c)){self.sheet.setText(r,c,value,self.sheetArea)}}}return self}};Cell.prototype.formula=function(value){var self=this;if(arguments.length===0){return self.sheet.getFormula(self.row,self.col,self.sheetArea)}else
{for(var r=self.row;r<=self.row2;r++){for(var c=self.col;c<=self.col2;c++){if(self._isValidIndex(r,c)){self.sheet.setFormula(r,c,value,self.sheetArea)}}}return self}};Cell.prototype.bindingPath=function(value){var self=this;if(arguments.length===0){return self.sheet.getBindingPath(self.row,self.col,self.sheetArea)}else
{for(var r=self.row;r<=self.row2;r++){for(var c=self.col;c<=self.col2;c++){if(self._isValidIndex(r,c)){self.sheet.setBindingPath(r,c,value,self.sheetArea)}}}return self}};Cell.prototype.comment=function(value){var self=this;if(arguments.length===0){return self.sheet.getComment(self.row,self.col)}else
{for(var r=self.row;r<=self.row2;r++){for(var c=self.col;c<=self.col2;c++){if(self._isValidIndex(r,c)){self.sheet.setComment(r,c,value)}}}return self}};Cell.prototype.dataValidator=function(value){return arguments.length==0?this._getStyleProperty(prop_validator):this._setStyleProperty(prop_validator,value)};Cell.prototype.cellType=function(value){return arguments.length==0?this._getStyleProperty(prop_cellType):this._setStyleProperty(prop_cellType,value)};Cell.prototype.backgroundImage=function(value){return arguments.length==0?this._getStyleProperty(prop_backgroundImage):this._setStyleProperty(prop_backgroundImage,value)};Cell.prototype.backgroundImageLayout=function(layout){return arguments.length==0?this._getStyleProperty(prop_backgroundImageLayout):this._setStyleProperty(prop_backgroundImageLayout,layout)};Cell.prototype.backColor=function(value){return arguments.length===0?this._getStyleProperty(prop_backColor):this._setStyleProperty(prop_backColor,value)};Cell.prototype.foreColor=function(value){return arguments.length===0?this._getStyleProperty(prop_foreColor):this._setStyleProperty(prop_foreColor,value)};Cell.prototype.hAlign=function(value){return arguments.length===0?this._getStyleProperty(prop_hAlign):this._setStyleProperty(prop_hAlign,value)};Cell.prototype.vAlign=function(value){return arguments.length===0?this._getStyleProperty(prop_vAlign):this._setStyleProperty(prop_vAlign,value)};Cell.prototype.themeFont=function(value){return arguments.length===0?this._getStyleProperty(prop_themeFont):this._setStyleProperty(prop_themeFont,value)};Cell.prototype.font=function(value){return arguments.length===0?this._getStyleProperty(prop_font):this._setStyleProperty(prop_font,value)};Cell.prototype.formatter=function(value){return arguments.length===0?this._getStyleProperty(prop_formatter):this._setStyleProperty(prop_formatter,value)};Cell.prototype.borderLeft=function(value){return arguments.length===0?this._getStyleProperty(prop_borderLeft):this._setStyleProperty(prop_borderLeft,value)};Cell.prototype.borderTop=function(value){return arguments.length===0?this._getStyleProperty(prop_borderTop):this._setStyleProperty(prop_borderTop,value)};Cell.prototype.borderRight=function(value){return arguments.length===0?this._getStyleProperty(prop_borderRight):this._setStyleProperty(prop_borderRight,value)};Cell.prototype.borderBottom=function(value){return arguments.length===0?this._getStyleProperty(prop_borderBottom):this._setStyleProperty(prop_borderBottom,value)};Cell.prototype.locked=function(value){return arguments.length===0?this._getStyleProperty(prop_locked):this._setStyleProperty(prop_locked,value)};Cell.prototype.textIndent=function(value){return arguments.length===0?this._getStyleProperty(prop_textIndent):this._setStyleProperty(prop_textIndent,value)};Cell.prototype.wordWrap=function(value){return arguments.length===0?this._getStyleProperty(prop_wordWrap):this._setStyleProperty(prop_wordWrap,value)};Cell.prototype.shrinkToFit=function(value){return arguments.length===0?this._getStyleProperty(prop_shrinkToFit):this._setStyleProperty(prop_shrinkToFit,value)};Cell.prototype.tabStop=function(value){return arguments.length===0?this._getStyleProperty(prop_tabStop):this._setStyleProperty(prop_tabStop,value)};Cell.prototype.textDecoration=function(value){return arguments.length===0?this._getStyleProperty(prop_textDecoration):this._setStyleProperty(prop_textDecoration,value)};Cell.prototype.imeMode=function(value){return arguments.length===0?this._getStyleProperty(prop_imeMode):this._setStyleProperty(prop_imeMode,value)};Cell.prototype.clearStyleProperty=function(propertyName){var self=this;for(var r=self.row;r<=self.row2;r++){for(var c=self.col;c<=self.col2;c++){if(self._isValidIndex(r,c)){var style=self.sheet.getStyle(r,c,self.sheetArea);if(style){style.clear(propertyName)}}}}};Cell.prototype._getStyleProperty=function(propertyName){var self=this;return self.sheet.getStyleProperty(self.row,self.col,propertyName,self.sheetArea)};Cell.prototype._setStyleProperty=function(propertyName,value){var self=this;for(var r=self.row;r<=self.row2;r++){for(var c=self.col;c<=self.col2;c++){if(self._isValidIndex(r,c)){var style=self.sheet.getStyle(r,c,self.sheetArea);if(!style){style=new spread.Style}style[propertyName]=value;self.sheet.setStyle(r,c,style,self.sheetArea)}}}return self};Cell.prototype._isValidIndex=function(row,col){var self=this,sheet=self.sheet,sheetArea=self.sheetArea;if(sheet){var rowCount=sheet.getRowCount(sheetArea);var colCount=sheet.getColumnCount(sheetArea);if((((0<=row)&&(row<rowCount))&&(0<=col))&&(col<colCount)){return true}}return false};return Cell})();spread.Cell=Cell;var Row=(function(){function Row(sheet,index,sheetArea){var self=this;self.sheet=sheet;self.index=index;self.index2=index;if(sheetArea===keyword_undefined||sheetArea===null){sheetArea=3}self.sheetArea=sheetArea}Row.prototype.height=function(value){var self=this;if(arguments.length===0){return self.sheet.getRowHeight(self.index,self.sheetArea)}else
{for(var r=self.index;r<=self.index2;r++){if(self._isValidIndex(r)){self.sheet.setRowHeight(r,value,self.sheetArea)}}return self}};Row.prototype.visible=function(value){var self=this;if(arguments.length===0){return self.sheet.getRowVisible(self.index,self.sheetArea)}else
{for(var r=self.index;r<=self.index2;r++){if(self._isValidIndex(r)){self.sheet.setRowVisible(r,value,self.sheetArea)}}return self}};Row.prototype.resizable=function(value){var self=this;if(arguments.length===0){return self.sheet.getRowResizable(self.index,self.sheetArea)}else
{for(var r=self.index;r<=self.index2;r++){if(self._isValidIndex(r)){self.sheet.setRowResizable(r,value,self.sheetArea)}}return self}};Row.prototype.dataValidator=function(value){return arguments.length==0?this._getStyleProperty(prop_validator):this._setStyleProperty(prop_validator,value)};Row.prototype.cellType=function(value){return arguments.length==0?this._getStyleProperty(prop_cellType):this._setStyleProperty(prop_cellType,value)};Row.prototype.backgroundImage=function(value){return arguments.length==0?this._getStyleProperty(prop_backgroundImage):this._setStyleProperty(prop_backgroundImage,value)};Row.prototype.backgroundImageLayout=function(layout){return arguments.length==0?this._getStyleProperty(prop_backgroundImageLayout):this._setStyleProperty(prop_backgroundImageLayout,layout)};Row.prototype.backColor=function(value){return arguments.length===0?this._getStyleProperty(prop_backColor):this._setStyleProperty(prop_backColor,value)};Row.prototype.foreColor=function(value){return arguments.length===0?this._getStyleProperty(prop_foreColor):this._setStyleProperty(prop_foreColor,value)};Row.prototype.hAlign=function(value){return arguments.length===0?this._getStyleProperty(prop_hAlign):this._setStyleProperty(prop_hAlign,value)};Row.prototype.vAlign=function(value){return arguments.length===0?this._getStyleProperty(prop_vAlign):this._setStyleProperty(prop_vAlign,value)};Row.prototype.themeFont=function(value){return arguments.length===0?this._getStyleProperty(prop_themeFont):this._setStyleProperty(prop_themeFont,value)};Row.prototype.font=function(value){return arguments.length===0?this._getStyleProperty(prop_font):this._setStyleProperty(prop_font,value)};Row.prototype.formatter=function(value){return arguments.length===0?this._getStyleProperty(prop_formatter):this._setStyleProperty(prop_formatter,value)};Row.prototype.borderLeft=function(value){return arguments.length===0?this._getStyleProperty(prop_borderLeft):this._setStyleProperty(prop_borderLeft,value)};Row.prototype.borderTop=function(value){return arguments.length===0?this._getStyleProperty(prop_borderTop):this._setStyleProperty(prop_borderTop,value)};Row.prototype.borderRight=function(value){return arguments.length===0?this._getStyleProperty(prop_borderRight):this._setStyleProperty(prop_borderRight,value)};Row.prototype.borderBottom=function(value){return arguments.length===0?this._getStyleProperty(prop_borderBottom):this._setStyleProperty(prop_borderBottom,value)};Row.prototype.locked=function(value){return arguments.length===0?this._getStyleProperty(prop_locked):this._setStyleProperty(prop_locked,value)};Row.prototype.textIndent=function(value){return arguments.length===0?this._getStyleProperty(prop_textIndent):this._setStyleProperty(prop_textIndent,value)};Row.prototype.wordWrap=function(value){return arguments.length===0?this._getStyleProperty(prop_wordWrap):this._setStyleProperty(prop_wordWrap,value)};Row.prototype.shrinkToFit=function(value){return arguments.length===0?this._getStyleProperty(prop_shrinkToFit):this._setStyleProperty(prop_shrinkToFit,value)};Row.prototype.tabStop=function(value){return arguments.length===0?this._getStyleProperty(prop_tabStop):this._setStyleProperty(prop_tabStop,value)};Row.prototype.textDecoration=function(value){return arguments.length===0?this._getStyleProperty(prop_textDecoration):this._setStyleProperty(prop_textDecoration,value)};Row.prototype.imeMode=function(value){return arguments.length===0?this._getStyleProperty(prop_imeMode):this._setStyleProperty(prop_imeMode,value)};Row.prototype.clearStyleProperty=function(propertyName){var self=this,sheet=self.sheet;for(var r=self.index;r<=self.index2;r++){if(self._isValidIndex(r)){var style=sheet.getStyle(r,-1,self.sheetArea);if(style){style.clear(propertyName);sheet._trigger(spread.Events.RowChanged,{sheet:sheet,sheetName:sheet._name,row:r,sheetArea:self.sheetArea,propertyName:propertyName})}}}};Row.prototype._getStyleProperty=function(propertyName){var style=this.sheet.getStyle(this.index,-1,this.sheetArea);return style?style[propertyName]:keyword_undefined};Row.prototype._setStyleProperty=function(propertyName,value){var self=this;for(var r=self.index;r<=self.index2;r++){if(self._isValidIndex(r)){var style=self.sheet.getStyle(r,-1,self.sheetArea);if(!style){style=new spread.Style}style[propertyName]=value;self.sheet.setStyle(r,-1,style,self.sheetArea)}}return self};Row.prototype._isValidIndex=function(row){if(this.sheet){var rowCount=this.sheet.getRowCount(this.sheetArea);if((0<=row)&&(row<rowCount)){return true}}return false};return Row})();spread.Row=Row;var Column=(function(){function Column(sheet,index,sheetArea){var self=this;self.sheet=sheet;self.index=index;self.index2=index;if(sheetArea===keyword_undefined||sheetArea===null){sheetArea=3}self.sheetArea=sheetArea}Column.prototype.width=function(value){var self=this;if(arguments.length===0){return self.sheet.getColumnWidth(self.index,self.sheetArea)}else
{for(var c=self.index;c<=self.index2;c++){if(self._isValidIndex(c)){self.sheet.setColumnWidth(c,value,self.sheetArea)}}return self}};Column.prototype.visible=function(value){var self=this;if(arguments.length===0){return self.sheet.getColumnVisible(self.index,self.sheetArea)}else
{for(var c=self.index;c<=self.index2;c++){if(self._isValidIndex(c)){self.sheet.setColumnVisible(c,value,self.sheetArea)}}return self}};Column.prototype.resizable=function(value){var self=this;if(arguments.length===0){return self.sheet.getColumnResizable(self.index,self.sheetArea)}else
{for(var c=self.index;c<=self.index2;c++){if(self._isValidIndex(c)){self.sheet.setColumnResizable(c,value,self.sheetArea)}}return self}};Column.prototype.dataValidator=function(value){return arguments.length==0?this._getStyleProperty(prop_validator):this._setStyleProperty(prop_validator,value)};Column.prototype.cellType=function(value){return arguments.length==0?this._getStyleProperty(prop_cellType):this._setStyleProperty(prop_cellType,value)};Column.prototype.backgroundImage=function(value){return arguments.length==0?this._getStyleProperty(prop_backgroundImage):this._setStyleProperty(prop_backgroundImage,value)};Column.prototype.backgroundImageLayout=function(layout){return arguments.length==0?this._getStyleProperty(prop_backgroundImageLayout):this._setStyleProperty(prop_backgroundImageLayout,layout)};Column.prototype.backColor=function(value){return arguments.length===0?this._getStyleProperty(prop_backColor):this._setStyleProperty(prop_backColor,value)};Column.prototype.foreColor=function(value){return arguments.length===0?this._getStyleProperty(prop_foreColor):this._setStyleProperty(prop_foreColor,value)};Column.prototype.hAlign=function(value){return arguments.length===0?this._getStyleProperty(prop_hAlign):this._setStyleProperty(prop_hAlign,value)};Column.prototype.vAlign=function(value){return arguments.length===0?this._getStyleProperty(prop_vAlign):this._setStyleProperty(prop_vAlign,value)};Column.prototype.themeFont=function(value){return arguments.length===0?this._getStyleProperty(prop_themeFont):this._setStyleProperty(prop_themeFont,value)};Column.prototype.font=function(value){return arguments.length===0?this._getStyleProperty(prop_font):this._setStyleProperty(prop_font,value)};Column.prototype.formatter=function(value){return arguments.length===0?this._getStyleProperty(prop_formatter):this._setStyleProperty(prop_formatter,value)};Column.prototype.borderLeft=function(value){return arguments.length===0?this._getStyleProperty(prop_borderLeft):this._setStyleProperty(prop_borderLeft,value)};Column.prototype.borderTop=function(value){return arguments.length===0?this._getStyleProperty(prop_borderTop):this._setStyleProperty(prop_borderTop,value)};Column.prototype.borderRight=function(value){return arguments.length===0?this._getStyleProperty(prop_borderRight):this._setStyleProperty(prop_borderRight,value)};Column.prototype.borderBottom=function(value){return arguments.length===0?this._getStyleProperty(prop_borderBottom):this._setStyleProperty(prop_borderBottom,value)};Column.prototype.locked=function(value){return arguments.length===0?this._getStyleProperty(prop_locked):this._setStyleProperty(prop_locked,value)};Column.prototype.textIndent=function(value){return arguments.length===0?this._getStyleProperty(prop_textIndent):this._setStyleProperty(prop_textIndent,value)};Column.prototype.wordWrap=function(value){return arguments.length===0?this._getStyleProperty(prop_wordWrap):this._setStyleProperty(prop_wordWrap,value)};Column.prototype.shrinkToFit=function(value){return arguments.length===0?this._getStyleProperty(prop_shrinkToFit):this._setStyleProperty(prop_shrinkToFit,value)};Column.prototype.tabStop=function(value){return arguments.length===0?this._getStyleProperty(prop_tabStop):this._setStyleProperty(prop_tabStop,value)};Column.prototype.textDecoration=function(value){return arguments.length===0?this._getStyleProperty(prop_textDecoration):this._setStyleProperty(prop_textDecoration,value)};Column.prototype.imeMode=function(value){return arguments.length===0?this._getStyleProperty(prop_imeMode):this._setStyleProperty(prop_imeMode,value)};Column.prototype.clearStyleProperty=function(propertyName){var self=this,sheet=self.sheet;for(var c=self.index;c<=self.index2;c++){if(self._isValidIndex(c)){var style=sheet.getStyle(-1,c,self.sheetArea);if(style){style.clear(propertyName);sheet._trigger(spread.Events.ColumnChanged,{sheet:sheet,sheetName:sheet._name,col:c,sheetArea:self.sheetArea,propertyName:propertyName})}}}};Column.prototype._getStyleProperty=function(propertyName){var style=this.sheet.getStyle(-1,this.index,this.sheetArea);return style?style[propertyName]:keyword_undefined};Column.prototype._setStyleProperty=function(propertyName,value){var self=this;for(var c=self.index;c<=self.index2;c++){if(self._isValidIndex(c)){var style=self.sheet.getStyle(-1,c,self.sheetArea);if(!style){style=new spread.Style}style[propertyName]=value;self.sheet.setStyle(-1,c,style,self.sheetArea)}}return self};Column.prototype._isValidIndex=function(col){if(this.sheet){var colCount=this.sheet.getColumnCount(this.sheetArea);if((0<=col)&&(col<colCount)){return true}}return false};return Column})();spread.Column=Column})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("core.sheet",["core.common","core.stringResource","core.sheet_event","core.sheet_render","core.basecelltype","core.sheet_ui","core.sheet_model","core.sheet_action","core.sheet_border"]);var keyword_null=null,keyword_undefined=undefined,Math_min=Math.min,Math_max=Math.max,Math_floor=Math.floor,const_undefined="undefined",const_function="function",const_number="number",const_string="string",const_boolean="boolean";var document=window.document;var ko=window.ko;var ImportExportOptions=(function(){function ImportExportOptions(flags){var IncludeRowHeader=1,IncludeColumnHeader=2,UnFormatted=8,ImportFormula=16,self=this;self.rowHeader=((flags&IncludeRowHeader)===IncludeRowHeader);self.columnHeader=((flags&IncludeColumnHeader)===IncludeColumnHeader);self.unFormatted=((flags&UnFormatted)===UnFormatted);self.formula=((flags&ImportFormula)===ImportFormula);self.expandRows=true;self.expandColumns=true}ImportExportOptions.prototype.fixOptions=function(sheet){if(!sheet){return}if(sheet.getColumnCount(2)<=0){this.rowHeader=false}if(sheet.getRowCount(1)<=0){this.columnHeader=false}};return ImportExportOptions})();function raiseInvalidRangeException(item,value,start,end){throw new Error(spread.SR.Exp_InvalidAndSpace+item+spread.SR.ColonSpace+value+spread.SR.MustBeBetween+start+spread.SR.SpaceAndSpace+end+spread.SR.RightBracketFullStop);}var staticMembers=(function(){function staticMembers(){}staticMembers.copyTo=function(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount,option,ignoreFilteredOutRow,istyle){staticMembers.checkArguments(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount);src.suspendCalcService();dest.suspendCalcService();var savedValues=keyword_null;if((option&256)>0){savedValues=staticMembers.copyBindingPath(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount,ignoreFilteredOutRow)}try
{if((option&1)>0){if(!istyle)staticMembers.copyValue(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount,ignoreFilteredOutRow);if((option&2)===0){staticMembers.clearFormula(dest,destRow,destColumn,copyRowCount,copyColumnCount,ignoreFilteredOutRow)}if((option&256)>0){var count=savedValues.length;var baseRow=destRow<0?0:destRow;var baseCol=destColumn<0?0:destColumn;for(var i=0;i<count;i++){var cv=savedValues[i];if(ignoreFilteredOutRow&&dest.isRowFilterOut(baseRow+cv.row)){continue}dest.setValue(baseRow+cv.row,baseCol+cv.col,cv.value)}}}if((option&2)>0){staticMembers.copyFormula(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount,ignoreFilteredOutRow)}}finally
{src.resumeCalcService();dest.resumeCalcService()}if((option&64)>0){staticMembers.copyStyle(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount,ignoreFilteredOutRow,istyle)}if((option&512)>0){staticMembers.copyConditionalFormatRules(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount)}if((option&4)>0){staticMembers.copyComment(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount,ignoreFilteredOutRow)}if((option&16)>0){staticMembers.copySparkline(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount)}if((option&8)>0){if(srcRow<0){staticMembers.copyColumnRangeGroup(src,srcColumn,dest,destColumn,copyColumnCount)}if(srcColumn<0){staticMembers.copyRowRangeGroup(src,srcRow,dest,destRow,copyRowCount)}}if((option&32)>0){staticMembers.copySpan(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount)}if(srcRow<0){staticMembers.copyColumnAxis(src,srcColumn,dest,destColumn,copyColumnCount,option)}if(srcColumn<0){staticMembers.copyRowAxis(src,srcRow,dest,destRow,copyRowCount,option,ignoreFilteredOutRow)}if(srcRow<0&&destRow<0&&srcColumn<0&&destColumn<0){staticMembers.copySheetInfo(src,dest,option)}};staticMembers.checkArguments=function(src,fromRow,fromColumn,dest,toRow,toColumn,rowCount,columnCount){if(!src){throw new Error(spread.SR.Exp_SrcIsNull);}if(!dest){throw new Error(spread.SR.Exp_DestIsNull);}if(fromRow<-1||fromRow>=src.getRowCount()){raiseInvalidRangeException("from row index",fromRow,"-1",(src.getRowCount()-1))}if(fromColumn<-1||fromColumn>=src.getColumnCount()){raiseInvalidRangeException("from column index",fromColumn,"-1",(src.getColumnCount()-1))}if(toRow<-1||toRow>=dest.getRowCount()){raiseInvalidRangeException("to row index",toRow,"-1",(dest.getRowCount()-1))}if(toColumn<-1||toColumn>=dest.getColumnCount()){raiseInvalidRangeException("to column index",toColumn,"-1",(dest.getColumnCount()-1))}var fromColumn2=fromColumn;if(fromColumn<0){fromColumn2=0;columnCount=src.getColumnCount()}var toColumn2=toColumn<0?0:toColumn;if(columnCount<1||fromColumn2+columnCount>src.getColumnCount()||toColumn2+columnCount>dest.getColumnCount()){raiseInvalidRangeException("column count",columnCount,"1",Math_min(src.getColumnCount()-fromColumn2,dest.getColumnCount()-toColumn2))}var fromRow2=fromRow;if(fromRow<0){fromRow2=0;rowCount=src.getRowCount()}var toRow2=toRow<0?0:toRow;if(rowCount<1||fromRow2+rowCount>src.getRowCount()||toRow2+rowCount>dest.getRowCount()){raiseInvalidRangeException("row count",rowCount,"1",Math_min(src.getRowCount()-fromRow2,dest.getRowCount()-toRow2))}};staticMembers.copyValue=function(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount,ignoreFilteredOutRow){var crossSheet=!(src===dest&&src._name===dest._name);var hRowCount,hColumnCount,r,c,value;if(srcRow<0){var colHeader=1;var fColumn=srcColumn;var tColumn=destColumn;hRowCount=Math_min(src.getRowCount(colHeader),dest.getRowCount(colHeader));hColumnCount=copyColumnCount;if(srcColumn<0){fColumn=0;hColumnCount=src.getColumnCount()}if(destColumn<0){tColumn=0}if(crossSheet){for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){value=src.getValue(r,fColumn+c,colHeader);if(typeof(value)===const_undefined||value===keyword_null){if(src.isColumnBound(fColumn+c)&&(r===src.colHeaderAutoTextIndex||(r===hRowCount-1&&src.colHeaderAutoTextIndex===-1))){value=src.getDataColumnName(fColumn+c)}}if(typeof(value)===const_undefined||value===keyword_null){dest._setValueInternal(r,tColumn+c,keyword_null,colHeader,false)}else
{dest._setValueInternal(r,tColumn+c,staticMembers.cloneObject(value),colHeader,false)}}}}else
{var savedColumnHeaderValues=new spread._GcSheetModel(hRowCount,hColumnCount,keyword_null);for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){value=src._getModel(colHeader).getValue(r,fColumn+c);if(typeof(value)===const_undefined||value===keyword_null){if(src.isColumnBound(fColumn+c)&&(r===src.colHeaderAutoTextIndex||(r===hRowCount-1&&src.colHeaderAutoTextIndex===-1))){value=src.getDataColumnName(fColumn+c)}}if(typeof(value)!==const_undefined&&value!==keyword_null){savedColumnHeaderValues.setValue(r,c,staticMembers.cloneObject(value))}}}for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){dest._setValueInternal(r,tColumn+c,savedColumnHeaderValues.getValue(r,c),colHeader,false)}}}}if(srcColumn<0){var rowHeader=2;var fRow=srcRow;var tRow=destRow;hRowCount=copyRowCount;hColumnCount=Math_min(src.getColumnCount(rowHeader),dest.getColumnCount(rowHeader));if(srcRow<0){fRow=0;hRowCount=src.getRowCount()}if(destRow<0){tRow=0}if(crossSheet){for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){value=src.getValue(fRow+r,c,rowHeader);if(typeof(value)===const_undefined||value===keyword_null){dest._setValueInternal(tRow+r,c,keyword_null,rowHeader,false)}else
{dest._setValueInternal(tRow+r,c,staticMembers.cloneObject(value),rowHeader,false)}}}}else
{var savedRowHeaderValues=new spread._GcSheetModel(hRowCount,hColumnCount,keyword_null);for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){value=src._getModel(rowHeader).getValue(fRow+r,c);if(typeof(value)!==const_undefined&&value!==keyword_null){savedRowHeaderValues.setValue(r,c,staticMembers.cloneObject(value))}}}for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){dest._setValueInternal(tRow+r,c,savedRowHeaderValues.getValue(r,c),rowHeader,false)}}}}var viewport=3;var fromRow=srcRow;var fromColumn=srcColumn;var toRow=destRow;var toColumn=destColumn;var rowCount=copyRowCount;var columnCount=copyColumnCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(srcColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destRow<0){toRow=0}if(destColumn<0){toColumn=0}if(crossSheet){for(r=0;r<rowCount;r++){if(ignoreFilteredOutRow&&dest.isRowFilterOut(toRow+r)){continue}for(c=0;c<columnCount;c++){value=src.getValue(fromRow+r,fromColumn+c,viewport);if(typeof(value)===const_undefined||value===keyword_null){dest._setValueInternal(toRow+r,toColumn+c,keyword_null,viewport,false)}else
{dest._setValueInternal(toRow+r,toColumn+c,staticMembers.cloneObject(value),viewport,false)}}}}else
{var savedValues=new spread._GcSheetModel(rowCount,columnCount,keyword_null);for(r=0;r<rowCount;r++){for(c=0;c<columnCount;c++){value=src.getValue(fromRow+r,fromColumn+c,viewport);if(typeof(value)!==const_undefined&&value!==keyword_null){savedValues.setValue(r,c,staticMembers.cloneObject(value))}}}for(r=0;r<rowCount;r++){if(ignoreFilteredOutRow&&dest.isRowFilterOut(toRow+r)){continue}for(c=0;c<columnCount;c++){dest._setValueInternal(toRow+r,toColumn+c,savedValues.getValue(r,c),viewport,false)}}}};staticMembers._copyMoveBindingPath=function(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount,isMove,ignoreFilteredOutRow){var fromRow=srcRow;var fromColumn=srcColumn;var toRow=destRow;var toColumn=destColumn;var rowCount=copyRowCount;var columnCount=copyColumnCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(srcColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destRow<0){toRow=0}if(destColumn<0){toColumn=0}var savedValues=[];var crossSheet=!(src===dest&&src._name===dest._name);if(crossSheet){var path;for(var r=0;r<rowCount;r++){for(var c=0;c<columnCount;c++){path=src.getBindingPath(fromRow+r,fromColumn+c);dest.setBindingPath(toRow+r,toColumn+c,path);if(path){savedValues.push({row:r,col:c,value:src.getValue(fromRow+r,fromColumn+c)})}if(isMove){src.setBindingPath(fromRow+r,fromColumn+c,keyword_null)}}}}else
{var savedPaths=new spread._GcSheetModel(rowCount,columnCount,keyword_null);var path;for(var r=0;r<rowCount;r++){for(var c=0;c<columnCount;c++){path=src.getBindingPath(fromRow+r,fromColumn+c);savedPaths.setBindingPath(r,c,path);if(path){savedValues.push({row:r,col:c,value:src.getValue(fromRow+r,fromColumn+c)})}if(isMove){src.setBindingPath(fromRow+r,fromColumn+c,keyword_null)}}}for(var r=0;r<rowCount;r++){if(ignoreFilteredOutRow&&dest.isRowFilterOut(toRow+r)){continue}for(var c=0;c<columnCount;c++){dest.setBindingPath(toRow+r,toColumn+c,savedPaths.getBindingPath(r,c))}}}return savedValues};staticMembers.copyBindingPath=function(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount,ignoreFilteredOutRow){return staticMembers._copyMoveBindingPath(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount,false,ignoreFilteredOutRow)};staticMembers.cloneObject=function(obj){var objClone;if(typeof(obj)===const_number||typeof(obj)===const_string||typeof(obj)===const_boolean||typeof(obj)===const_undefined){objClone=obj;return objClone}else if(obj instanceof Date){objClone=new Date(obj);return objClone}else if(obj instanceof Object){objClone=new obj.constructor}else
{objClone=new obj.constructor(obj.valueOf())}for(var key in obj){if(obj.hasOwnProperty(key)&&objClone[key]!==obj[key]){if(typeof(this[key])==='object'){objClone[key]=staticMembers.cloneObject(obj[key])}else
{objClone[key]=obj[key]}}}objClone.toString=obj.toString;objClone.valueOf=obj.valueOf;return objClone};staticMembers.clearFormula=function(sheet,row,column,rowCount,columnCount,ignoreFilteredOutRow){if(row<0){row=0;rowCount=sheet.getRowCount()}if(column<0){column=0;columnCount=sheet.getColumnCount()}for(var r=row;r<rowCount;r++){if(ignoreFilteredOutRow&&sheet.isRowFilterOut(r)){continue}for(var c=column;c<columnCount;c++){sheet.setFormula(r,c,keyword_null)}}};staticMembers._copyExpression=function(expr,row,column,offsetRow,offsetColumn){var newExpr=expr;if(!spread.util.hasCalc()){return newExpr}var Expressions=spread.Calc.Expressions;var Functions=spread.Calc.Functions;var Parser=spread.Calc.Parser;var Reference=spread.Calc.Errors.Reference;var ErrorExpression=Expressions.ErrorExpression,ExternalErrorExpression=Expressions.ExternalErrorExpression;if(expr instanceof Expressions.ParenthesesExpression){newExpr=new Expressions.ParenthesesExpression;newExpr.argument=staticMembers._copyExpression(expr.argument,row,column,offsetRow,offsetColumn)}else if(expr instanceof Expressions.CellExpression){if(expr.rowRelative&&((expr.row+row<0)||(expr.row+row>Parser.maxRowCount))){return new ErrorExpression(Reference)}if(expr.columnRelative&&((expr.column+column<0)||(expr.column+column>Parser.maxColumnCount))){return new ErrorExpression(Reference)}newExpr=new Expressions.CellExpression(expr.row,expr.column,expr.rowRelative,expr.columnRelative)}else if(expr instanceof Expressions.ExternalCellExpression){if(expr.rowRelative&&((expr.row+row<0)||(expr.row+row>Parser.maxRowCount))){return new ExternalErrorExpression(expr.source,Reference)}if(expr.columnRelative&&((expr.column+column<0)||(expr.column+column>Parser.maxColumnCount))){return new ExternalErrorExpression(expr.source,Reference)}newExpr=new Expressions.ExternalCellExpression(expr.source,expr.row,expr.column,expr.rowRelative,expr.columnRelative)}else if(expr instanceof Expressions.RangeExpression){var rangeExpr=expr;if(rangeExpr.startRowRelative&&((rangeExpr.startRow+row<0)||(rangeExpr.startRow+row>Parser.maxRowCount))){return new ErrorExpression(Reference)}if(rangeExpr.startColumnRelative&&((rangeExpr.startColumn+column<0)||(rangeExpr.startColumn+column>Parser.maxColumnCount))){return new ErrorExpression(Reference)}if(rangeExpr.endRowRelative&&((rangeExpr.endRow+row<0)||(rangeExpr.endRow+row>Parser.maxRowCount))){return new ErrorExpression(Reference)}if(rangeExpr.endColumnRelative&&((rangeExpr.endColumn+column<0)||(rangeExpr.endColumn+column>Parser.maxColumnCount))){return new ErrorExpression(Reference)}newExpr=new Expressions.RangeExpression(rangeExpr.startRow,rangeExpr.startColumn,rangeExpr.endRow,rangeExpr.endColumn,rangeExpr.startRowRelative,rangeExpr.startColumnRelative,rangeExpr.endRowRelative,rangeExpr.endColumnRelative);newExpr.isFullRow=rangeExpr.isFullRow;newExpr.isFullColumn=rangeExpr.isFullColumn}else if(expr instanceof Expressions.ExternalRangeExpression){var eRangeExpr=expr;if(eRangeExpr.startRowRelative&&((eRangeExpr.startRow+row<0)||(eRangeExpr.startRow+row>Parser.maxRowCount))){return new ExternalErrorExpression(eRangeExpr.source,Reference)}if(eRangeExpr.startColumnRelative&&((eRangeExpr.startColumn+column<0)||(eRangeExpr.startColumn+column>Parser.maxColumnCount))){return new ExternalErrorExpression(eRangeExpr.source,Reference)}if(eRangeExpr.endRowRelative&&((eRangeExpr.endRow+row<0)||(eRangeExpr.endRow+row>Parser.maxRowCount))){return new ExternalErrorExpression(eRangeExpr.source,Reference)}if(eRangeExpr.endColumnRelative&&((eRangeExpr.endColumn+column<0)||(eRangeExpr.endColumn+column>Parser.maxColumnCount))){return new ExternalErrorExpression(eRangeExpr.source,Reference)}newExpr=new Expressions.ExternalRangeExpression(eRangeExpr.source,eRangeExpr.startRow,eRangeExpr.startColumn,eRangeExpr.endRow,eRangeExpr.endColumn,eRangeExpr.startRowRelative,eRangeExpr.startColumnRelative,eRangeExpr.endRowRelative,eRangeExpr.endColumnRelative);newExpr.isFullRow=eRangeExpr.isFullRow;newExpr.isFullColumn=eRangeExpr.isFullColumn}else if(expr instanceof Expressions.SheetRangeExpression){var sRangeExpr=expr;if(sRangeExpr.startRowRelative&&((sRangeExpr.startRow+row<0)||(sRangeExpr.startRow+row>Parser.maxRowCount))){return new Expressions.SheetRangeErrorExpression(sRangeExpr.startSource,sRangeExpr.endSource,Reference)}if(sRangeExpr.startColumnRelative&&((sRangeExpr.startColumn+column<0)||(sRangeExpr.startColumn+column>Parser.maxColumnCount))){return new Expressions.SheetRangeErrorExpression(sRangeExpr.startSource,sRangeExpr.endSource,Reference)}if(sRangeExpr.endRowRelative&&((sRangeExpr.endRow+row<0)||(sRangeExpr.endRow+row>Parser.maxRowCount))){return new Expressions.SheetRangeErrorExpression(sRangeExpr.startSource,sRangeExpr.endSource,Reference)}if(sRangeExpr.endColumnRelative&&((sRangeExpr.endColumn+column<0)||(sRangeExpr.endColumn+column>Parser.maxColumnCount))){return new Expressions.SheetRangeErrorExpression(sRangeExpr.startSource,sRangeExpr.endSource,Reference)}newExpr=new Expressions.SheetRangeExpression(sRangeExpr.startSource,sRangeExpr.endSource,sRangeExpr.startRow,sRangeExpr.startColumn,sRangeExpr.endRow,sRangeExpr.endColumn,sRangeExpr.startRowRelative,sRangeExpr.startColumnRelative,sRangeExpr.endRowRelative,sRangeExpr.endColumnRelative);newExpr.isFullRow=sRangeExpr.isFullRow;newExpr.isFullColumn=sRangeExpr.isFullColumn}else if(expr instanceof Expressions.UnaryOperatorExpression){newExpr=new Expressions.UnaryOperatorExpression(expr.operator,staticMembers._copyExpression(expr.operand,row,column,offsetRow,offsetColumn))}else if(expr instanceof Expressions.BinaryOperatorExpression){newExpr=new Expressions.BinaryOperatorExpression(expr.operator,staticMembers._copyExpression(expr.left,row,column,offsetRow,offsetColumn),staticMembers._copyExpression(expr.right,row,column,offsetRow,offsetColumn))}else if(expr instanceof Expressions.FunctionExpression){newExpr=new Expressions.FunctionExpression(expr.fn,[]);if(expr.args&&expr.args.length>0){for(var i=0;i<expr.args.length;i++){newExpr.args[i]=staticMembers._copyExpression(expr.args[i],row,column,offsetRow,offsetColumn)}}}else if(expr instanceof Expressions.StructReferenceExpression){newExpr=expr.offsetWhenCopy(offsetRow,offsetColumn)}return newExpr};staticMembers.copyFormula=function(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount,ignoreFilteredOutRow){var srcCalcModel=src._getCalcModel(),destCalcModel=dest._getCalcModel(),srcSheetSource=src._getSheetSource(),destSheetSource=dest._getSheetSource();if(!srcCalcModel||!destCalcModel){return}var fromRow=srcRow;var fromColumn=srcColumn;var toRow=destRow;var toColumn=destColumn;var rowCount=copyRowCount;var columnCount=copyColumnCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(srcColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destRow<0){toRow=0}if(destColumn<0){toColumn=0}var crossSheet=!(src===dest&&src._name===dest._name);var destSource=dest._getSheetSource();if(destSource){destSource.unlinkCellExpression(toRow,toColumn,rowCount,columnCount)}var mc=new spread._CalcModel(rowCount,columnCount,keyword_null);var r,c;for(r=0;r<rowCount;r++){for(c=0;c<columnCount;c++){srcCalcModel.CopyExpr(mc,r+fromRow,c+fromColumn,r,c)}}var exprSettedObj={};var calcSvc=dest.getCalcService();for(r=0;r<rowCount;r++){if(ignoreFilteredOutRow&&dest.isRowFilterOut(r+toRow)){continue}var toR=r+toRow;for(c=0;c<columnCount;c++){var node=mc.getNode(r,c,false);var expr=node&&node.expr;var toC=c+toColumn;if(expr){if(expr===exprSettedObj){continue}expr=staticMembers._copyExpression(expr,toR,toC,destRow-srcRow,destColumn-srcColumn);var arrayInfo=node.arrayInfo;if(destSource){if(arrayInfo){var arrayRowCount=rowCount-r<arrayInfo.rowCount?rowCount-r:arrayInfo.rowCount;var arrayColCount=columnCount-c<arrayInfo.colCount?columnCount-c:arrayInfo.colCount;for(var i=0;i<arrayRowCount;i++){for(var j=0;j<arrayColCount;j++){mc.getNode(r+i,c+j).expr=exprSettedObj}}dest._setArrayFormulaCore(toR,toC,arrayRowCount,arrayColCount,calcSvc.unparse(expr,toR,toC),false,3)}else
{var formula=expr?calcSvc.unparse(expr,toR,toC):keyword_undefined;dest._getModel().setFormula(toR,toC,formula);var workIngExpr=node.workingExpr;if(workIngExpr){workIngExpr=staticMembers._copyExpression(workIngExpr,toR,toC,destRow-srcRow,destColumn-srcColumn)}destSheetSource._setCellExpression(toR,toC,expr,workIngExpr,arrayInfo)}}else
{destSheetSource.setExpression(toR,toC,expr,arrayInfo,true)}}else if(destSource&&destSource.getExpression(toR,toC)){destCalcModel.setExpr(toR,toC,keyword_undefined,keyword_undefined,keyword_undefined)}}}};staticMembers.copyStyle=function(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount,ignoreFilteredOutRow,istyle){var crossSheet=!(src===dest&&src._name===dest._name);var hRowCount,hColumnCount,r,c,style;if(srcRow<0){var fColumn=srcColumn;var tColumn=destColumn;hRowCount=Math_min(src.getRowCount(1),dest.getRowCount(1));hColumnCount=copyColumnCount;if(srcColumn<0){fColumn=0;hColumnCount=src.getColumnCount()}if(destColumn<0){tColumn=0}if(crossSheet){for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){style=src.getCompositeStyle(r,fColumn+c,1);if(!style){dest.setStyle(r,tColumn+c,keyword_null,1)}else
{dest.setStyle(r,tColumn+c,style.clone(),1)}}}}else
{var savedColumnHeaderStyles=new spread._GcSheetModel(hRowCount,hColumnCount,keyword_null);for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){style=src.getCompositeStyle(r,fColumn+c,1);if(style){savedColumnHeaderStyles.setValue(r,c,style.clone())}}}for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){dest.setStyle(r,tColumn+c,savedColumnHeaderStyles.getValue(r,c),1)}}}}if(srcColumn<0){var fRow=srcRow;var tRow=destRow;hRowCount=copyRowCount;hColumnCount=Math_min(src.getColumnCount(2),dest.getColumnCount(2));if(srcRow<0){fRow=0;hRowCount=src.getRowCount()}if(destRow<0){tRow=0}if(crossSheet){for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){style=src.getCompositeStyle(fRow+r,c,2);if(!style){dest.setStyle(tRow+r,c,keyword_null,2)}else
{dest.setStyle(tRow+r,c,style.clone(),2)}}}}else
{var savedRowHeaderStyles=new spread._GcSheetModel(hRowCount,hColumnCount,keyword_null);for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){style=src.getCompositeStyle(fRow+r,c,2);if(style){savedRowHeaderStyles.setValue(r,c,style.clone())}}}for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){dest.setStyle(tRow+r,c,savedRowHeaderStyles.getValue(r,c),2)}}}}var fromRow=srcRow;var fromColumn=srcColumn;var toRow=destRow;var toColumn=destColumn;var rowCount=copyRowCount;var columnCount=copyColumnCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(srcColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destRow<0){toRow=0}if(destColumn<0){toColumn=0}if(crossSheet){for(r=0;r<rowCount;r++){if(ignoreFilteredOutRow&&dest.isRowFilterOut(toRow+r)){continue}for(c=0;c<columnCount;c++){style=src.getCompositeStyle(fromRow+r,fromColumn+c,3);if(!style){dest.setStyle(toRow+r,toColumn+c,keyword_null,3)}else
{dest.setStyle(toRow+r,toColumn+c,style.clone(),3)}}}}else
{var savedStyles=new spread._GcSheetModel(rowCount,columnCount,keyword_null);for(r=0;r<rowCount;r++){for(c=0;c<columnCount;c++){style=src.getCompositeStyle(fromRow+r,fromColumn+c,3);if(style){if(!!istyle){if(!src.getCompositeStyle(toRow+r,toColumn+c,3).backgroundImage){style.backgroundImage=const_undefined;style.backgroundImageLayout=const_undefined;}else
{style.backgroundImage=src.getCompositeStyle(toRow+r,toColumn+c,3).backgroundImage;style.backgroundImageLayout=src.getCompositeStyle(toRow+r,toColumn+c,3).backgroundImageLayout;}}savedStyles.setValue(r,c,style.clone())}}}for(r=0;r<rowCount;r++){if(ignoreFilteredOutRow&&dest.isRowFilterOut(toRow+r)){continue}for(c=0;c<columnCount;c++){dest.setStyle(toRow+r,toColumn+c,savedStyles.getValue(r,c),3)}}}};staticMembers.copyConditionalFormatRules=function(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount){var dealedRanges=new Array;var conditionalFormats=src.getConditionalFormats();if(!conditionalFormats){return}for(var rowOffset=0;rowOffset<copyRowCount;rowOffset++){for(var colOffset=0;colOffset<copyColumnCount;colOffset++){var srcRules=conditionalFormats.getRules(srcRow+rowOffset,srcColumn+colOffset);for(var ruleIndex=0;ruleIndex<srcRules.length;ruleIndex++){var rule=srcRules[ruleIndex];var tempRanges=new Array;for(var rangeIndex=0;rangeIndex<rule.ranges.length;rangeIndex++){var range=rule.ranges[rangeIndex];if(dealedRanges.indexOf(range)>-1||!range.contains(srcRow+rowOffset,srcColumn+colOffset)){continue;;}else
{dealedRanges.push(range)}var newRange=new spread.Range(-1,-1,-1,-1);newRange.row=destRow+rowOffset;newRange.col=destColumn+colOffset;if(range.row+range.rowCount>=copyRowCount+srcRow){newRange.rowCount=copyRowCount-rowOffset}else
{if(srcRow<range.row){newRange.rowCount=range.rowCount}else
{newRange.rowCount=range.row+range.rowCount-srcRow}}if(range.col+range.colCount>=copyColumnCount+srcColumn){newRange.colCount=copyColumnCount-colOffset}else
{if(srcColumn<range.col){newRange.colCount=range.colCount}else
{newRange.colCount=range.col+range.colCount-srcColumn}}tempRanges.push(newRange)}rule.ranges=rule.ranges.concat(tempRanges)}}}};staticMembers.copyComment=function(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount,ignoreFilteredOutRow){var fromRow=srcRow;var fromColumn=srcColumn;var toRow=destRow;var toColumn=destColumn;var rowCount=copyRowCount;var columnCount=copyColumnCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(srcColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destRow<0){toRow=0}if(destColumn<0){toColumn=0}var destComments=[];for(var r=0;r<rowCount;r++){if(ignoreFilteredOutRow&&dest.isRowFilterOut(toRow+r)){continue}for(var c=0;c<columnCount;c++){var comment=src.getComment(fromRow+r,fromColumn+c);if(comment){var clonedComment=comment.clone();clonedComment._sheet=dest;clonedComment._rowIndex=toRow+r;clonedComment._colIndex=toColumn+c;clonedComment._location=clonedComment._defaultLocation;destComments.push(clonedComment)}}}for(var i=0,length=destComments.length;i<length;i++){var comment=destComments[i];dest.setComment(comment._rowIndex,comment._colIndex,comment)}};staticMembers.copyColumnRangeGroup=function(src,srcColumn,dest,destColumn,copyColumnCount){var fromColumn=srcColumn;var toColumn=destColumn;var columnCount=copyColumnCount;if(fromColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destColumn<0){toColumn=0}var crossSheet=!(src===dest&&src._name===dest._name);if(crossSheet){if(src.colRangeGroup&&dest.colRangeGroup){staticMembers.crossSheetCopyRangeGroup(src.colRangeGroup,fromColumn,dest.colRangeGroup,toColumn,columnCount)}}else
{var columnGroup=src.colRangeGroup;if(columnGroup){columnGroup._copy(fromColumn,toColumn,columnCount)}}};staticMembers.crossSheetCopyRangeGroup=function(srcGroup,from,destGroup,to,count){if(from<0){from=0}if(to<0){to=0}var clonedItems=[];if(srcGroup){var index=srcGroup.items.nextNonEmptyIndex(from-1);while(index>=0&&index<(from+count)){clonedItems[index-from]=new spread.RangeGroupItemInfo(srcGroup.items[index]);index=srcGroup.items.nextNonEmptyIndex(index)}}if(destGroup){destGroup.items.clear(to,count);if(clonedItems.length>0){for(var key in clonedItems){if(clonedItems.hasOwnProperty(key)){var value=clonedItems[key];destGroup.items[to+key]=value}}}}};staticMembers.copySparkline=function(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount,ignoreFilteredOutRow){var fromRow=srcRow;var fromColumn=srcColumn;var toRow=destRow;var toColumn=destColumn;var rowCount=copyRowCount;var columnCount=copyColumnCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(srcColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destRow<0){toRow=0}if(destColumn<0){toColumn=0}var crossSheet=!(src===dest&&src._name===dest._name);var sparkline;if(crossSheet){sparkline=dest._sparklineGroupManager;if(sparkline){sparkline._exCopy(src,fromRow,fromColumn,toRow,toColumn,rowCount,columnCount,ignoreFilteredOutRow)}}else
{sparkline=src._sparklineGroupManager;if(sparkline){sparkline._copy(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount,ignoreFilteredOutRow)}}};staticMembers.copyRowRangeGroup=function(src,srcRow,dest,destRow,copyRowCount){var fromRow=srcRow;var toRow=destRow;var rowCount=copyRowCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(destRow<0){toRow=0}var crossSheet=!(src===dest&&src._name===dest._name);if(crossSheet){if(src.rowRangeGroup&&dest.rowRangeGroup){staticMembers.crossSheetCopyRangeGroup(src.rowRangeGroup,fromRow,dest.rowRangeGroup,toRow,rowCount)}}else
{var rowGroup=src.rowRangeGroup;if(rowGroup){rowGroup._copy(fromRow,toRow,rowCount)}}};staticMembers.copySpan=function(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount){var fromRow=srcRow;var fromColumn=srcColumn;var toRow=destRow;var toColumn=destColumn;var rowCount=copyRowCount;var columnCount=copyColumnCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(fromColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destRow<0){toRow=0}if(destColumn<0){toColumn=0}var crossSheet=!(src===dest&&src._name===dest._name);if(srcRow<0){if(crossSheet){staticMembers.crossSheetCopySpans(src._colHeaderSpanModel,-1,fromColumn,dest._colHeaderSpanModel,-1,toColumn,-1,columnCount)}else
{var csm=src._getSpanModel(1);if(csm){csm.copy(-1,fromColumn,-1,toColumn,-1,columnCount)}}}if(srcColumn<0){if(crossSheet){staticMembers.crossSheetCopySpans(src._rowHeaderSpanModel,fromRow,-1,dest._rowHeaderSpanModel,toRow,-1,rowCount,-1)}else
{var rsm=src._getSpanModel(2);if(rsm){rsm.copy(fromRow,-1,toRow,-1,rowCount,-1)}}}if(crossSheet){staticMembers.crossSheetCopySpans(src._spanModel,fromRow,fromColumn,dest._spanModel,toRow,toColumn,rowCount,columnCount)}else
{var sm=src._getSpanModel(3);if(sm){sm.copy(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount)}}};staticMembers.crossSheetCopySpans=function(srcSpanModel,fromRow,fromColumn,destSpanModel,toRow,toColumn,rowCount,columnCount){var srcSpans=staticMembers.getSpans(srcSpanModel);var destSpans=staticMembers.getSpans(destSpanModel);var addList=[],i,j,cs,span;if(fromRow===-1){if(srcSpans&&srcSpans.length>0){for(i=0;i<srcSpans.length;i++){cs=srcSpans[i];if(cs.col>=fromColumn&&cs.col+cs.colCount<=fromColumn+columnCount){addList.push(new spread.Range(cs.row,toColumn+cs.col-fromColumn,cs.rowCount,cs.colCount))}}}if(destSpans&&destSpans.length>0){for(i=0;i<destSpans.length;i++){cs=destSpans[i];if(cs.col>=toColumn&&cs.col<toColumn+columnCount){for(j=0;j<destSpanModel.length;j++){span=destSpanModel[j];if(span.row===cs.row&&span.col===cs.col){destSpanModel.splice(j,1);break}}}}}}else if(fromColumn===-1){if(srcSpans&&srcSpans.length>0){for(i=0;i<srcSpans.length;i++){cs=srcSpans[i];if(fromRow<=cs.row&&cs.row+cs.rowCount<=fromRow+rowCount){addList.push(new spread.Range(toRow+cs.row-fromRow,cs.col,cs.rowCount,cs.colCount))}}}if(destSpans&&destSpans.length>0){for(i=0;i<destSpans.length;i++){cs=destSpans[i];if(cs.row>=toRow&&cs.row<toRow+rowCount){for(j=0;j<destSpanModel.length;j++){span=destSpanModel[j];if(span.row===cs.row&&span.col===cs.col){destSpanModel.splice(j,1);break}}}}}}else
{if(srcSpans&&srcSpans.length>0){for(i=0;i<srcSpans.length;i++){cs=srcSpans[i];if(fromRow<=cs.row&&cs.row<fromRow+rowCount&&fromColumn<=cs.col&&cs.col<fromColumn+columnCount){addList.push(new spread.Range(toRow+cs.row-fromRow,toColumn+cs.col-fromColumn,cs.rowCount,cs.colCount))}}}if(destSpans&&destSpans.length>0){for(i=0;i<destSpans.length;i++){cs=destSpans[i];if(cs.row>=toRow&&cs.row<toRow+rowCount&&cs.col>=toColumn&&cs.col<toColumn+columnCount){for(j=0;j<destSpanModel.length;j++){span=destSpanModel[j];if(span.row===cs.row&&span.col===cs.col){destSpanModel.splice(j,1);break}}}}}}if(addList.length>0&&destSpanModel){for(i=0;i<addList.length;i++){var cr=addList[i];destSpanModel.push(cr)}}};staticMembers.getSpans=function(spanModel){if(spanModel&&spanModel.length>0){return spanModel.slice(0)}return keyword_null};staticMembers.copyColumnAxis=function(src,srcColumn,dest,destColumn,copyColumnCount,option){var fromColumn=srcColumn;var toColumn=destColumn;var columnCount=copyColumnCount;if(srcColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destColumn<0){toColumn=0}var colHeader=1;for(var c=0;c<columnCount;c++){var width=src._getActualColumnWidth(c+fromColumn);if(width!==keyword_undefined&&width!==keyword_null){dest.setColumnWidth(c+toColumn,width)}var visible=src.getColumnVisible(c+fromColumn);if(visible!==keyword_undefined&&visible!==keyword_null){dest.setColumnVisible(c+toColumn,visible)}if((option&64)>0){var style=src.getActualStyle(-1,c+fromColumn);if(!style){dest.setStyle(-1,c+toColumn,keyword_null)}else
{dest.setStyle(-1,c+toColumn,style.clone())}style=src.getActualStyle(-1,c+fromColumn,colHeader);if(!style){dest.setStyle(-1,c+toColumn,keyword_null,colHeader)}else
{dest.setStyle(-1,c+toColumn,style.clone(),colHeader)}}}var colHeaderRowCount=Math_min(src.getRowCount(colHeader),dest.getRowCount(colHeader));for(var r=0;r<colHeaderRowCount;r++){var height=src._getActualRowHeight(r,colHeader);if(height!==keyword_undefined&&height!==keyword_null){dest.setRowHeight(r,height,colHeader)}}};staticMembers.cloneAxisInfo=function(srcInfo,fromIndex,count){var ret=[];for(var index=0;index<count;index++){var axisInfo=srcInfo[fromIndex+index];if(!axisInfo){ret.push(keyword_null)}else
{var vColumn={};for(var key in axisInfo){if(axisInfo.hasOwnProperty(key)){vColumn[key]=axisInfo[key]}}ret.push(vColumn)}}return ret};staticMembers.getAxisInfo=function(srcInfo,fromIndex,count){var ret=[];for(var index=0;index<count;index++){ret.push(srcInfo[fromIndex+index])}return ret};staticMembers.setAxisInfo=function(infos,destAxis,toIndex){if(destAxis){for(var index=0;index<infos.length;index++){destAxis[toIndex+index]=infos[index]}}};staticMembers.copyRowAxis=function(src,srcRow,dest,destRow,copyRowCount,option,ignoreFilteredOutRow){var fromRow=srcRow;var toRow=destRow;var rowCount=copyRowCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(destRow<0){toRow=0}var rowHeader=2;for(var r=0;r<rowCount;r++){if(ignoreFilteredOutRow&&dest.isRowFilterOut(r+toRow)){continue}var height=src._getActualRowHeight(r+fromRow);if(height!==keyword_undefined&&height!==keyword_null){dest.setRowHeight(r+toRow,height)}var visible=src.getRowVisible(r+fromRow);if(visible!==keyword_undefined&&visible!==keyword_null){dest.setRowVisible(r+toRow,visible)}if((option&64)>0){var style=src.getActualStyle(r+fromRow,-1);if(!style){dest.setStyle(r+toRow,-1,keyword_null)}else
{dest.setStyle(r+toRow,-1,style.clone())}style=src.getActualStyle(r+fromRow,-1,rowHeader);if(!style){dest.setStyle(r+toRow,-1,keyword_null,rowHeader)}else
{dest.setStyle(r+toRow,-1,style.clone(),rowHeader)}}}var rowHeaderColCount=Math_min(src.getColumnCount(rowHeader),dest.getColumnCount(rowHeader));for(var c=0;c<rowHeaderColCount;c++){var width=src._getActualColumnWidth(c,rowHeader);if(width!==keyword_undefined&&width!==keyword_null){dest.setColumnWidth(c,width,rowHeader)}}};staticMembers.copySheetInfo=function(src,dest,option){if(!(src===dest&&src._name===dest._name)){if((option&64)>0){var colHeader=1;var rowHeader=2;dest.setDefaultStyle(src.getDefaultStyle().clone());dest.setDefaultStyle(src.getDefaultStyle(colHeader).clone(),colHeader);dest.setDefaultStyle(src.getDefaultStyle(rowHeader).clone(),rowHeader)}dest.defaults.colWidth=src.defaults.colWidth;dest.defaults.rowHeight=src.defaults.rowHeight;dest.defaults.rowHeaderColWidth=src.defaults.rowHeaderColWidth}};staticMembers.moveTo=function(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount,option){staticMembers.checkArguments(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount);src.suspendCalcService();dest.suspendCalcService();var savedValues=keyword_null;if((option&256)>0){savedValues=staticMembers.moveBindingPath(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount)}try
{if((option&1)>0){staticMembers.moveValue(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount);if((option&2)===0){staticMembers.clearFormula(dest,destRow,destColumn,moveRowCount,moveColumnCount)}if((option&256)>0){var count=savedValues.length;var baseRow=destRow<0?0:destRow;var baseCol=destColumn<0?0:destColumn;for(var i=0;i<count;i++){var cv=savedValues[i];dest.setValue(baseRow+cv.row,baseCol+cv.col,cv.value)}}}if((option&2)>0){staticMembers.moveFormula(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount)}}finally
{src.resumeCalcService();dest.resumeCalcService()}if((option&64)>0){staticMembers.moveStyle(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount)}if((option&512)>0){staticMembers.moveConditionalFormatRules(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount)}if((option&4)>0){staticMembers.moveComment(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount)}if((option&16)>0){staticMembers.moveSparkline(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount)}if((option&8)>0){if(srcRow<0){staticMembers.moveColumnRangeGroup(src,srcColumn,dest,destColumn,moveColumnCount)}if(srcColumn<0){staticMembers.moveRowRangeGroup(src,srcRow,dest,destRow,moveRowCount)}}if((option&32)>0){staticMembers.moveSpan(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount)}if(srcRow<0){staticMembers.moveColumnAxis(src,srcColumn,dest,destColumn,moveColumnCount,option)}if(srcColumn<0){staticMembers.moveRowAxis(src,srcRow,dest,destRow,moveRowCount,option)}if(srcRow<0&&destRow<0&&srcColumn<0&&destColumn<0){staticMembers.moveSheetInfo(src,dest,option)}if(srcRow<0){var fColumn=srcColumn;var hColumnCount=moveColumnCount;if(srcColumn<0){fColumn=0;hColumnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}for(var c=0;c<hColumnCount;c++){if(src.isColumnBound(fColumn+c)){src._colInfos[fColumn+c]=keyword_null}}}};staticMembers.moveValue=function(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount){var crossSheet=!(src===dest&&src._name===dest._name);var hRowCount,hColumnCount,r,c,value;if(srcRow<0){var colHeader=1;var fColumn=srcColumn;var tColumn=destColumn;hRowCount=Math_min(src.getRowCount(colHeader),dest.getRowCount(colHeader));hColumnCount=moveColumnCount;if(srcColumn<0){fColumn=0;hColumnCount=src.getColumnCount()}if(destColumn<0){tColumn=0}if(crossSheet){for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){value=src._getModel(colHeader).getValue(r,fColumn+c);if(typeof(value)===const_undefined||value===keyword_null){if(src.isColumnBound(fColumn+c)&&(r===src.colHeaderAutoTextIndex||(r===hRowCount-1&&src.colHeaderAutoTextIndex===-1))){value=src.getDataColumnName(fColumn+c)}}if(typeof(value)===const_undefined||value===keyword_null){dest._setValueInternal(r,tColumn+c,keyword_null,colHeader,false)}else
{dest._setValueInternal(r,tColumn+c,value,colHeader,false);src._setValueInternal(r,fColumn+c,keyword_null,colHeader,false)}}}}else
{var savedColumnHeaderValues=new spread._GcSheetModel(hRowCount,hColumnCount,keyword_null);for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){value=src._getModel(colHeader).getValue(r,fColumn+c);if(typeof(value)===const_undefined||value===keyword_null){if(src.isColumnBound(fColumn+c)&&(r===src.colHeaderAutoTextIndex||(r===hRowCount-1&&src.colHeaderAutoTextIndex===-1))){value=src.getDataColumnName(fColumn+c)}}if(typeof(value)!==const_undefined&&value!==keyword_null){savedColumnHeaderValues.setValue(r,c,value)}src._setValueInternal(r,fColumn+c,keyword_null,colHeader,false)}}for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){dest._setValueInternal(r,tColumn+c,savedColumnHeaderValues.getValue(r,c),colHeader,false)}}}}var rowHeader=2;if(srcColumn<0){var fRow=srcRow;var tRow=destRow;hRowCount=moveRowCount;hColumnCount=Math_min(src.getColumnCount(rowHeader),dest.getColumnCount(rowHeader));if(srcRow<0){fRow=0;hRowCount=src.getRowCount()}if(destRow<0){tRow=0}if(crossSheet){for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){value=src.getValue(fRow+r,c,rowHeader);if(typeof(value)===const_undefined||value===keyword_null){dest._setValueInternal(tRow+r,c,keyword_null,rowHeader,false)}else
{dest._setValueInternal(tRow+r,c,value,rowHeader,false);src._setValueInternal(fRow+r,c,keyword_null,rowHeader,false)}}}}else
{var savedRowHeaderValues=new spread._GcSheetModel(hRowCount,hColumnCount,keyword_null);for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){value=src._getModel(rowHeader).getValue(fRow+r,c);if(typeof(value)!==const_undefined&&value!==keyword_null){savedRowHeaderValues.setValue(r,c,value)}src._setValueInternal(fRow+r,c,keyword_null,rowHeader,false)}}for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){dest._setValueInternal(tRow+r,c,savedRowHeaderValues.getValue(r,c),rowHeader,false)}}}}var viewport=3;var fromRow=srcRow;var fromColumn=srcColumn;var toRow=destRow;var toColumn=destColumn;var rowCount=moveRowCount;var columnCount=moveColumnCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(srcColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destRow<0){toRow=0}if(destColumn<0){toColumn=0}if(crossSheet){for(r=0;r<rowCount;r++){for(c=0;c<columnCount;c++){value=src.getValue(fromRow+r,fromColumn+c);if(typeof(value)===const_undefined||value===keyword_null){dest._setValueInternal(toRow+r,toColumn+c,keyword_null,viewport,false)}else
{dest._setValueInternal(toRow+r,toColumn+c,value,viewport,false);src._setValueInternal(fromRow+r,fromColumn+c,keyword_null,viewport,false)}}}}else
{var savedValues=new spread._GcSheetModel(rowCount,columnCount,keyword_null);for(r=0;r<rowCount;r++){for(c=0;c<columnCount;c++){value=src.getValue(fromRow+r,fromColumn+c);if(typeof(value)!==const_undefined&&value!==keyword_null){savedValues.setValue(r,c,value)}}}for(r=0;r<rowCount;r++){for(c=0;c<columnCount;c++){src._setValueInternal(fromRow+r,fromColumn+c,keyword_null,viewport,false)}}for(r=0;r<rowCount;r++){for(c=0;c<columnCount;c++){dest._setValueInternal(toRow+r,toColumn+c,savedValues.getValue(r,c),viewport,false)}}}};staticMembers.moveFormula=function(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount){var srcCalcModel=src._getCalcModel(),destCalcModel=dest._getCalcModel();if(!srcCalcModel||!destCalcModel){return}var fromRow=srcRow;var fromColumn=srcColumn;var toRow=destRow;var toColumn=destColumn;var rowCount=moveRowCount;var columnCount=moveColumnCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(srcColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destRow<0){toRow=0}if(destColumn<0){toColumn=0}var crossSheet=!(src===dest&&src._name===dest._name);var srcSource=src._getSheetSource();var destSource=dest._getSheetSource();if(srcSource){srcSource.unlinkCellExpression(fromRow,fromColumn,rowCount,columnCount);srcSource._addDependentsToAdjust(fromRow,fromColumn,rowCount,columnCount)}if(destSource){destSource.unlinkCellExpression(toRow,toColumn,rowCount,columnCount);destSource._addDependentsToAdjust(toRow,toColumn,rowCount,columnCount)}var srcModel=src._getModel();var destModel=dest._getModel();var nodes=[],r,c;for(r=0;r<rowCount;r++){for(c=0;c<columnCount;c++){var node=srcCalcModel.getNode(r+fromRow,c+fromColumn);if(node){nodes.push({expr:node.expr,workingExpr:node.workingExpr,arrayInfo:node.arrayInfo});srcModel.setFormula(r+fromRow,c+fromColumn,keyword_null);srcCalcModel.clearExpr(r+fromRow,c+fromColumn)}else
{nodes.push(keyword_null)}}}var calcSvc=dest.getCalcService();var toArrayInfo;for(r=0;r<rowCount;r++){for(c=0;c<columnCount;c++){var exprInfo=nodes.shift();if(exprInfo){var expr=exprInfo.expr;var arrayInfo=exprInfo.arrayInfo;if(calcSvc&&arrayInfo&&arrayInfo.row===fromRow+r&&arrayInfo.col===fromColumn+c){toArrayInfo=new spread.Range(r+toRow,c+toColumn,arrayInfo.rowCount,arrayInfo.colCount);destModel.setFormula(r+toRow,c+toColumn,calcSvc.unparse(expr,r+toRow,c+toColumn),toArrayInfo)}if(arrayInfo){arrayInfo.row=r+toRow;arrayInfo.col=c+toColumn}destCalcModel.setExpr(r+toRow,c+toColumn,expr,arrayInfo?toArrayInfo:keyword_undefined,exprInfo.workingExpr)}else
{if(calcSvc){destModel.setFormula(r+toRow,c+toColumn,keyword_undefined)}destCalcModel.setExpr(r+toRow,c+toColumn,keyword_undefined,keyword_undefined,keyword_undefined)}}}if(srcSource){srcSource._addCellsToAdjust(fromRow,fromColumn,rowCount,columnCount)}if(destSource){destSource._addCellsToAdjust(toRow,toColumn,rowCount,columnCount)}if(srcSource&&srcSource._controller){srcSource._controller.adjustFormulasOnMove(srcSource,fromRow,fromColumn,destSource,toRow,toColumn,rowCount,columnCount)}if(crossSheet===true&&destSource&&destSource._controller){destSource._controller.adjustFormulasOnMove(srcSource,fromRow,fromColumn,destSource,toRow,toColumn,rowCount,columnCount)}};staticMembers.moveStyle=function(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount){var crossSheet=!(src===dest&&src._name===dest._name);var colHeader=1,hRowCount,hColumnCount,r,c,style;if(srcRow<0){var fColumn=srcColumn;var tColumn=destColumn;hRowCount=Math_min(src.getRowCount(colHeader),dest.getRowCount(colHeader));hColumnCount=moveColumnCount;if(srcColumn<0){fColumn=0;hColumnCount=src.getColumnCount()}if(destColumn<0){tColumn=0}if(crossSheet){for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){style=src.getCompositeStyle(r,fColumn+c,colHeader);if(!style){dest.setStyle(r,tColumn+c,keyword_null,colHeader)}else
{dest.setStyle(r,tColumn+c,style.clone(),colHeader);src.setStyle(r,fColumn+c,keyword_null,colHeader)}}}}else
{var savedColumnHeaderStyles=new spread._GcSheetModel(hRowCount,hColumnCount,keyword_null);for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){style=src.getCompositeStyle(r,fColumn+c,colHeader);if(style){savedColumnHeaderStyles.setValue(r,c,style.clone())}src.setStyle(r,fColumn+c,keyword_null,colHeader)}}for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){dest.setStyle(r,tColumn+c,savedColumnHeaderStyles.getValue(r,c),colHeader)}}}}var rowHeader=2;if(srcColumn<0){var fRow=srcRow;var tRow=destRow;hRowCount=moveRowCount;hColumnCount=Math_min(src.getColumnCount(rowHeader),dest.getColumnCount(rowHeader));if(srcRow<0){fRow=0;hRowCount=src.getRowCount()}if(destRow<0){tRow=0}if(crossSheet){for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){style=src.getCompositeStyle(fRow+r,c,rowHeader);if(!style){dest.setStyle(tRow+r,c,keyword_null,rowHeader)}else
{dest.setStyle(tRow+r,c,style.clone(),rowHeader);src.setStyle(fRow+r,c,keyword_null,rowHeader)}}}}else
{var savedRowHeaderStyles=new spread._GcSheetModel(hRowCount,hColumnCount,keyword_null);for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){style=src.getCompositeStyle(fRow+r,c,rowHeader);if(style){savedRowHeaderStyles.setValue(r,c,style.clone())}src.setStyle(fRow+r,c,keyword_null,rowHeader)}}for(r=0;r<hRowCount;r++){for(c=0;c<hColumnCount;c++){dest.setStyle(tRow+r,c,savedRowHeaderStyles.getValue(r,c),rowHeader)}}}}var fromRow=srcRow;var fromColumn=srcColumn;var toRow=destRow;var toColumn=destColumn;var rowCount=moveRowCount;var columnCount=moveColumnCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(srcColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destRow<0){toRow=0}if(destColumn<0){toColumn=0}if(crossSheet){for(r=0;r<rowCount;r++){for(c=0;c<columnCount;c++){style=src.getCompositeStyle(fromRow+r,fromColumn+c);if(!style){dest.setStyle(toRow+r,toColumn+c,keyword_null)}else
{dest.setStyle(toRow+r,toColumn+c,style.clone());src.setStyle(fromRow+r,fromColumn+c,keyword_null)}}}}else
{var savedStyles=new spread._GcSheetModel(rowCount,columnCount,keyword_null);for(r=0;r<rowCount;r++){for(c=0;c<columnCount;c++){style=src.getCompositeStyle(fromRow+r,fromColumn+c);if(style){savedStyles.setValue(r,c,style.clone())}src.setStyle(fromRow+r,fromColumn+c,keyword_null)}}for(r=0;r<rowCount;r++){for(c=0;c<columnCount;c++){dest.setStyle(toRow+r,toColumn+c,savedStyles.getValue(r,c))}}}};staticMembers.moveConditionalFormatRules=function(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount){this.copyConditionalFormatRules(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount);this._deleteConditionalFormatRange(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount)};staticMembers._deleteConditionalFormatRange=function(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount){var dealedRanges=new Array;var conditionalFormats=src.getConditionalFormats();if(!conditionalFormats){return}for(var rowOffset=0;rowOffset<moveRowCount;rowOffset++){for(var colOffset=0;colOffset<moveColumnCount;colOffset++){var srcRules=conditionalFormats.getRules(srcRow+rowOffset,srcColumn+colOffset);for(var ruleIndex=0;ruleIndex<srcRules.length;ruleIndex++){var rule=srcRules[ruleIndex];var newRanges=new Array;for(var rangeIndex=0;rangeIndex<rule.ranges.length;rangeIndex++){var range=rule.ranges[rangeIndex];if(dealedRanges.indexOf(range)>-1||!range.contains(srcRow+rowOffset,srcColumn+colOffset)){continue;;}else
{dealedRanges.push(range)}if(srcRow>range.row){var newTopRange=new spread.Range(-1,-1,-1,-1);newTopRange.row=range.row;newTopRange.col=range.col;newTopRange.rowCount=srcRow-range.row;newTopRange.colCount=range.colCount;newRanges.push(newTopRange)}if(srcColumn>range.col){var newLeftRange=new spread.Range(-1,-1,-1,-1);newLeftRange.row=Math_max(srcRow,range.row);newLeftRange.col=range.col;newLeftRange.rowCount=Math_min(srcRow+moveRowCount,range.row+range.rowCount)-newLeftRange.row;newLeftRange.colCount=srcColumn-range.col;newRanges.push(newLeftRange)}if(srcColumn+moveColumnCount<range.col+range.colCount){var newRightRange=new spread.Range(-1,-1,-1,-1);newRightRange.row=Math_max(srcRow,range.row);newRightRange.col=srcColumn+moveColumnCount;newRightRange.rowCount=Math_min(srcRow+moveRowCount,range.row+range.rowCount)-newRightRange.row;newRightRange.colCount=range.col+range.colCount-(srcColumn+moveColumnCount);newRanges.push(newRightRange)}if(srcRow+moveRowCount<range.row+range.rowCount){var newBottomRange=new spread.Range(-1,-1,-1,-1);newBottomRange.row=srcRow+moveRowCount;newBottomRange.col=range.col;newBottomRange.rowCount=range.row+range.rowCount-(srcRow+moveRowCount);newBottomRange.colCount=range.colCount;newRanges.push(newBottomRange)}}for(var delIndex=0;delIndex<dealedRanges.length;delIndex++){rule.ranges.remove(dealedRanges[delIndex])}rule.ranges=rule.ranges.concat(newRanges)}}}};staticMembers.moveComment=function(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount){var fromRow=srcRow;var fromColumn=srcColumn;var toRow=destRow;var toColumn=destColumn;var rowCount=moveRowCount;var columnCount=moveColumnCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(srcColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destRow<0){toRow=0}if(destColumn<0){toColumn=0}var destComments=[];for(var r=0;r<rowCount;r++){for(var c=0;c<columnCount;c++){var comment=src.getComment(fromRow+r,fromColumn+c);if(comment){var clonedComment=comment.clone();clonedComment._sheet=dest;clonedComment._rowIndex=toRow+r;clonedComment._colIndex=toColumn+c;destComments.push(clonedComment);src.setComment(fromRow+r,fromColumn+c,keyword_null)}}}for(var i=0,length=destComments.length;i<length;i++){var comment=destComments[i];dest.setComment(comment._rowIndex,comment._colIndex,comment)}};staticMembers.moveSparkline=function(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount){var fromRow=srcRow;var fromColumn=srcColumn;var toRow=destRow;var toColumn=destColumn;var rowCount=moveRowCount;var columnCount=moveColumnCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(srcColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destRow<0){toRow=0}if(destColumn<0){toColumn=0}var crossSheet=!(src===dest&&src._name===dest._name);var sparkline;if(crossSheet){sparkline=dest._sparklineGroupManager;if(sparkline){sparkline._exMove(src,fromRow,fromColumn,toRow,toColumn,rowCount,columnCount)}}else
{sparkline=src._sparklineGroupManager;if(sparkline){sparkline._move(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount)}}};staticMembers.moveColumnRangeGroup=function(src,srcColumn,dest,destColumn,moveColumnCount){var fromColumn=srcColumn;var toColumn=destColumn;var columnCount=moveColumnCount;if(fromColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destColumn<0){toColumn=0}var crossSheet=!(src===dest&&src._name===dest._name);if(crossSheet){if(src.colRangeGroup&&dest.colRangeGroup){staticMembers.crossSheetCopyRangeGroup(src.colRangeGroup,fromColumn,dest.colRangeGroup,toColumn,columnCount);src.colRangeGroup.items.clear(fromColumn,columnCount)}}else
{var columnGroup=src.colRangeGroup;if(columnGroup){columnGroup._move(fromColumn,toColumn,columnCount)}}};staticMembers.moveRowRangeGroup=function(src,srcRow,dest,destRow,moveRowCount){var fromRow=srcRow;var toRow=destRow;var rowCount=moveRowCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(destRow<0){toRow=0}var crossSheet=!(src===dest&&src._name===dest._name);if(crossSheet){if(src.rowRangeGroup&&dest.rowRangeGroup){staticMembers.crossSheetCopyRangeGroup(src.rowRangeGroup,fromRow,dest.rowRangeGroup,toRow,rowCount);src.rowRangeGroup.items.clear(fromRow,rowCount)}}else
{var rowGroup=src.rowRangeGroup;if(rowGroup){rowGroup._move(fromRow,toRow,rowCount)}}};staticMembers.moveSpan=function(src,srcRow,srcColumn,dest,destRow,destColumn,moveRowCount,moveColumnCount){var fromRow=srcRow;var fromColumn=srcColumn;var toRow=destRow;var toColumn=destColumn;var rowCount=moveRowCount;var columnCount=moveColumnCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(fromColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destRow<0){toRow=0}if(destColumn<0){toColumn=0}var crossSheet=!(src===dest&&src._name===dest._name);if(srcRow<0){if(crossSheet){staticMembers.crossSheetCopySpans(src._colHeaderSpanModel,-1,fromColumn,dest._colHeaderSpanModel,-1,toColumn,-1,columnCount);if(src._colHeaderSpanModel){src._colHeaderSpanModel.clear(-1,fromColumn,-1,columnCount)}}else
{var csm=src._getSpanModel(1);if(csm){csm.move(-1,fromColumn,-1,toColumn,-1,columnCount)}}}if(srcColumn<0){if(crossSheet){staticMembers.crossSheetCopySpans(src._rowHeaderSpanModel,fromRow,-1,dest._rowHeaderSpanModel,toRow,-1,rowCount,-1);if(src._rowHeaderSpanModel){src._rowHeaderSpanModel.clear(fromRow,-1,rowCount,-1)}}else
{var rsm=src._getSpanModel(2);if(rsm){rsm.move(fromRow,-1,toRow,-1,rowCount,-1)}}}if(crossSheet){staticMembers.crossSheetCopySpans(src._spanModel,fromRow,fromColumn,dest._spanModel,toRow,toColumn,rowCount,columnCount);if(src._spanModel){src._spanModel.clear(fromRow,fromColumn,rowCount,columnCount)}}else
{var sm=src._getSpanModel();if(sm){sm.move(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount)}}};staticMembers.moveColumnAxis=function(src,srcColumn,dest,destColumn,moveColumnCount,option){var fromColumn=srcColumn;var toColumn=destColumn;var columnCount=moveColumnCount;if(srcColumn<0){fromColumn=0;columnCount=Math_min(src.getColumnCount(),dest.getColumnCount())}if(destColumn<0){toColumn=0}var colHeader=1;for(var c=0;c<columnCount;c++){var width=src._getActualColumnWidth(c+fromColumn);if(width!==keyword_undefined&&width!==keyword_null){src.setColumnWidth(c+fromColumn,src.defaults.colWidth);dest.setColumnWidth(c+toColumn,width)}var visible=src.getColumnVisible(c+fromColumn);if(visible!==keyword_undefined&&visible!==keyword_null){src.setColumnVisible(c+fromColumn,true);dest.setColumnVisible(c+toColumn,visible)}if((option&64)>0){var style=src.getActualStyle(-1,c+fromColumn);if(!style){dest.setStyle(-1,c+toColumn,keyword_null)}else
{dest.setStyle(-1,c+toColumn,style.clone());src.setStyle(-1,c+fromColumn,keyword_null)}style=src.getActualStyle(-1,c+fromColumn,colHeader);if(!style){dest.setStyle(-1,c+toColumn,keyword_null,colHeader)}else
{dest.setStyle(-1,c+toColumn,style.clone(),colHeader);src.setStyle(-1,c+fromColumn,keyword_null,colHeader)}}}var colHeaderRowCount=Math_min(src.getRowCount(colHeader),dest.getRowCount(colHeader));for(var r=0;r<colHeaderRowCount;r++){var height=src._getActualRowHeight(r,colHeader);if(height!==keyword_undefined&&height!==keyword_null){src.setRowHeight(r,src.defaults.colHeaderRowHeight,colHeader);dest.setRowHeight(r,height,colHeader)}}};staticMembers.moveRowAxis=function(src,srcRow,dest,destRow,moveRowCount,option){var fromRow=srcRow;var toRow=destRow;var rowCount=moveRowCount;if(srcRow<0){fromRow=0;rowCount=Math_min(src.getRowCount(),dest.getRowCount())}if(destRow<0){toRow=0}var rowHeader=2;for(var r=0;r<rowCount;r++){var height=src._getActualRowHeight(r+fromRow);if(height!==keyword_undefined&&height!==keyword_null){src.setRowHeight(r+fromRow,src.defaults.rowHeight);dest.setRowHeight(r+toRow,height)}var visible=src.getRowVisible(r+fromRow);if(visible!==keyword_undefined&&visible!==keyword_null){src.setRowVisible(r+fromRow,true);dest.setRowVisible(r+toRow,visible)}if((option&64)>0){var style=src.getActualStyle(r+fromRow,-1);if(!style){dest.setStyle(r+toRow,-1,keyword_null)}else
{dest.setStyle(r+toRow,-1,style.clone());src.setStyle(r+fromRow,-1,keyword_null)}style=src.getActualStyle(r+fromRow,-1,rowHeader);if(!style){dest.setStyle(r+toRow,-1,keyword_null,rowHeader)}else
{dest.setStyle(r+toRow,-1,style.clone(),rowHeader);src.setStyle(r+fromRow,-1,keyword_null,rowHeader)}}}var rowHeaderColCount=Math_min(src.getColumnCount(rowHeader),dest.getColumnCount(rowHeader));for(var c=0;c<rowHeaderColCount;c++){var width=src._getActualColumnWidth(c,rowHeader);if(width!==keyword_undefined&&width!==keyword_null){src.setColumnWidth(c,src.defaults.rowHeaderColWidth,rowHeader);dest.setColumnWidth(c,width,rowHeader)}}};staticMembers.moveSheetInfo=function(src,dest,option){if((src!==dest)||(src._name!==dest._name)){if((option&64)>0){var colHeader=1;var rowHeader=2;dest.setDefaultStyle(src.getDefaultStyle());dest.setDefaultStyle(src.getDefaultStyle(colHeader),colHeader);dest.setDefaultStyle(src.getDefaultStyle(rowHeader),rowHeader);src.setDefaultStyle(keyword_null);src.setDefaultStyle(keyword_null,colHeader);src.setDefaultStyle(keyword_null,rowHeader)}dest.defaults.colWidth=src.defaults.colWidth;dest.defaults.rowHeight=src.defaults.rowHeight;dest.defaults.rowHeaderColWidth=src.defaults.rowHeaderColWidth;src.defaults.colWidth=62;src.defaults.rowHeight=20;src.defaults.rowHeaderColWidth=40}};staticMembers.moveBindingPath=function(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount){return staticMembers._copyMoveBindingPath(src,srcRow,srcColumn,dest,destRow,destColumn,copyRowCount,copyColumnCount,true)};staticMembers.setRangeText=function(sheet,row,column,data,rowDelimiter,columnDelimiter,cellDelimiter,flags){if(!sheet){throw new Error(spread.SR.Exp_SheetIsNull);}if(row<-1||row>=sheet.getRowCount()){raiseInvalidRangeException("row",row,"-1",sheet.getRowCount()-1)}if(column<-1||column>=sheet.getColumnCount()){raiseInvalidRangeException("column",column,"-1",sheet.getColumnCount()-1)}if(data===keyword_undefined||data===keyword_null||data===""){return}if(row===-1){row=0}if(column===-1){column=0}var sheetData=staticMembers.parseText(data,rowDelimiter,columnDelimiter,cellDelimiter);if(sheetData&&sheetData.length>0){staticMembers.setSheetData(sheet,row,column,sheetData,flags)}};staticMembers.getRangeText=function(sheet,row,rowCount,column,columnCount,rowDelimiter,columnDelimiter,cellDelimiter,forceCellDelimiter,flags){if(!sheet){throw new Error(spread.SR.Exp_SheetIsNull);}if(row<-1||row>=sheet.getRowCount()){raiseInvalidRangeException("row",row,"-1",sheet.getRowCount()-1)}if(rowCount<-1||row+rowCount>sheet.getRowCount()){raiseInvalidRangeException("rowCount",row,"-1",sheet.getRowCount()-row)}if(column<-1||column>=sheet.getColumnCount()){raiseInvalidRangeException("column",column,"-1",sheet.getColumnCount()-1)}if(columnCount<-1||column+columnCount>sheet.getColumnCount()){raiseInvalidRangeException("columnCount",column,"-1",sheet.getColumnCount()-column)}var endRow=-1;var endColumn=-1;if(row===-1&&column===-1&&rowCount===-1&&columnCount===-1){row=0;column=0;endRow=sheet.getRowCount()-1;endColumn=sheet.getColumnCount()-1}else
{if(row===-1){row=0}if(column===-1){column=0}if(rowCount===-1){rowCount=sheet.getRowCount()-row}if(columnCount===-1){columnCount=sheet.getColumnCount()-column}endRow=row+rowCount-1;endColumn=column+columnCount-1}if(rowDelimiter===keyword_undefined||rowDelimiter===keyword_null||rowDelimiter===""){rowDelimiter="\r\n"}if(columnDelimiter===keyword_undefined||columnDelimiter===keyword_null||columnDelimiter===""){columnDelimiter="\t"}if(cellDelimiter===keyword_undefined||cellDelimiter===keyword_null||cellDelimiter===""){cellDelimiter="\""}var sbr="";for(var r=row;r<=endRow;r++){var newLine=true;for(var c=column;c<=endColumn;c++){if(!newLine){sbr+=columnDelimiter}newLine=false;var cellStr="";var cellData=sheet.getText(r,c);if(cellData!==keyword_undefined&&cellData!==keyword_null){cellStr=cellData;cellStr=cellStr.replace(new RegExp(cellDelimiter,"g"),cellDelimiter+cellDelimiter)}if(forceCellDelimiter||cellStr.indexOf(cellDelimiter)!==-1||cellStr.indexOf(columnDelimiter)!==-1||cellStr.indexOf(rowDelimiter)!==-1||cellStr.indexOf("\n")!==-1){sbr+=cellDelimiter+cellStr+cellDelimiter}else
{sbr+=cellStr}}sbr+=rowDelimiter}return sbr.toString()};staticMembers.parseText=function(data,rowDelimiter,columnDelimiter,cellDelimiter){if(data===keyword_undefined||data===keyword_null||data===""){return keyword_null}if(rowDelimiter===keyword_undefined||rowDelimiter===keyword_null||rowDelimiter===""){rowDelimiter="\r\n"}if(columnDelimiter===keyword_undefined||columnDelimiter===keyword_null||columnDelimiter===""){columnDelimiter="\t"}if(cellDelimiter===keyword_undefined||cellDelimiter===keyword_null||cellDelimiter===""){cellDelimiter="\""}if(!spread.StringHelper.EndsWith(data,rowDelimiter)){data+=rowDelimiter}var sheetData=[],rowData=[];var sbr=new spread.StringBuilder;var inCell=false;var dl=cellDelimiter.length;var rdl=rowDelimiter.length;var cdl=columnDelimiter.length;for(var index=0;index<data.length;index++){sbr.Append(data[index]);if(sbr.Length()>=dl&&cellDelimiter===sbr.ToString(sbr.Length()-dl,dl)){if(inCell&&data.length>=index+1+dl&&cellDelimiter===data.substr(index+1,dl)){index+=dl}else
{if(!inCell){var temp=sbr.ToString();if(temp.indexOf(cellDelimiter)===0){sbr.Remove(sbr.Length()-dl,dl);inCell=true}}else
{sbr.Remove(sbr.Length()-dl,dl);inCell=false}}}else if(!inCell&&sbr.Length()>=cdl&&columnDelimiter===sbr.ToString(sbr.Length()-cdl,cdl)){sbr.Remove(sbr.Length()-cdl,cdl);rowData.push(sbr.toString());sbr.Remove(0,sbr.Length())}else if(!inCell&&sbr.Length()>=rdl&&rowDelimiter===sbr.ToString(sbr.Length()-rdl,rdl)){sbr.Remove(sbr.Length()-rdl,rdl);rowData.push(sbr.toString());sheetData.push(rowData);rowData=[];sbr.Remove(0,sbr.Length())}else if(inCell){if(data.length>=index+1+cdl&&columnDelimiter===data.substr(index+1,cdl)&&columnDelimiter!=','){index+=dl}}}if(inCell){if(rowData.length>0){for(var i=0;i<sheetData.length;i++){if(sheetData[i]===rowData){break}}if(i>=sheetData.length){sheetData.push(rowData)}}var inCellStr=sbr.toString();if(inCellStr){inCellStr=inCellStr.replace(new RegExp(columnDelimiter,"g"),"");if(spread.StringHelper.EndsWith(inCellStr,rowDelimiter)){inCellStr=inCellStr.substr(0,inCellStr.length-rdl)}if(sheetData.length==0){sheetData.push([inCellStr])}}}if(sheetData.length==0&&data){var text=data;if(spread.StringHelper.EndsWith(data,rowDelimiter)){text=text.substr(0,text.length-rdl)}sheetData.push([text])}return sheetData};staticMembers.setSheetData=function(sheet,rowIndex,columnIndex,data,flags){var dataRowCount=data.length;var dataColumnCount=staticMembers.getMaxLength(data);if(dataRowCount===0||dataColumnCount===0){return}var opt=new ImportExportOptions(flags);opt.fixOptions(sheet);var rowHeaderColumnCount=opt.rowHeader?sheet.getColumnCount(2):0;var columnHeaderRowCount=opt.columnHeader?sheet.getRowCount(1):0;var columnFooterRowCount=0;dataColumnCount-=rowHeaderColumnCount;if(dataColumnCount<=0){dataColumnCount=0}dataRowCount-=columnHeaderRowCount;if(dataRowCount<=0){columnFooterRowCount=0}dataRowCount-=columnFooterRowCount;if(dataRowCount<=0){dataRowCount=0}if(opt.expandRows&&rowIndex+dataRowCount>sheet.getRowCount()){sheet.setRowCount(rowIndex+dataRowCount)}if(opt.expandColumns&&columnIndex+dataColumnCount>sheet.getColumnCount()){sheet.setColumnCount(columnIndex+dataColumnCount)}for(var r=0,sheetRowIndex=0;r<data.length;r++,sheetRowIndex++){var rowData=data[r];if(rowData.length<=0){continue}if(columnHeaderRowCount>0&&r<columnHeaderRowCount){staticMembers.setRowData(sheet,rowData,sheetRowIndex,columnIndex,dataColumnCount,1,opt)}else if(dataRowCount>0&&sheetRowIndex<sheet.getRowCount()){if(r===columnHeaderRowCount){sheetRowIndex=rowIndex}staticMembers.setRowData(sheet,rowData,sheetRowIndex,0,rowHeaderColumnCount,2,opt);rowData.splice(0,rowHeaderColumnCount);staticMembers.setRowData(sheet,rowData,sheetRowIndex,columnIndex,dataColumnCount,3,opt)}}};staticMembers.setRowData=function(sheet,rowData,sheetRowIndex,columnIndex,columnCount,area,opt){for(var c=0,sheetColumnIndex=columnIndex;c<rowData.length;c++,sheetColumnIndex++){if(columnCount>0&&sheetColumnIndex<sheet.getColumnCount(area)){staticMembers.setCellData(sheet,area,sheetRowIndex,sheetColumnIndex,rowData[c],opt)}}};staticMembers.setCellData=function(sheet,area,rowIndex,columnIndex,value,opt){var setvalue=value;var autodisplayformatter=keyword_null;if(opt.unFormatted===false&&spread.features.formatter){var outPara={value:value};autodisplayformatter=(new spread.GeneralFormatter).GetPreferredDisplayFormatter(value,outPara);setvalue=outPara.value}if(setvalue===keyword_undefined||setvalue===keyword_null){sheet.setValue(rowIndex,columnIndex,setvalue,area)}else
{if(value!==""){if(opt.formula&&value[0]==="="){try
{sheet.setFormula(rowIndex,columnIndex,value.substr(1),area)}catch(ex){sheet.setText(rowIndex,columnIndex,value,area)}}else
{var style=sheet.getActualStyle(rowIndex,columnIndex,area);if(style){if(opt.unFormatted===false&&spread.features.formatter){if(!style.formatter){var autoFormatter=new spread.AutoFormatter(autodisplayformatter);sheet.getCell(rowIndex,columnIndex,area)._setStyleProperty("_autoFormatter",autoFormatter)}else
{if(style.formatter.toString()==="@"){setvalue=value.toString()}}}else
{if(style.formatter){sheet.getCell(rowIndex,columnIndex,area).formatter(keyword_null)}}}sheet.setValue(rowIndex,columnIndex,setvalue,area)}}else
{sheet.setValue(rowIndex,columnIndex,keyword_null,area)}}};staticMembers.getMaxLength=function(data){if(data===keyword_undefined||data===keyword_null){return 0}var len=0;for(var i=0;i<data.length;i++){var list=data[i];len=Math_max(list.length,len)}return len};staticMembers.parseCsv=function(text,rowDelimiter,columnDelimiter,cellDelimiter){var ret=keyword_null;var parsedText=staticMembers.parseText(text,rowDelimiter,columnDelimiter,cellDelimiter);if(parsedText){var rowCount=parsedText.length;var columnCount=staticMembers.getMaxLength(parsedText);var textArray=[];for(var r=0;r<rowCount;r++){textArray[r]=[];for(var c=0;c<columnCount;c++){if(c<parsedText[r].length){textArray[r][c]=parsedText[r][c]}else
{textArray[r][c]=keyword_null}}}ret=textArray}return ret};return staticMembers})();var regExpKeyPattern=[/\\/g,/\(/g,/\[/g,/\{/g,/\^/g,/\$/g,/\|/g,/\)/g,/\+/g,/\./g];var questionMarkHolder=new RegExp("{113E2532-EAF5-444c-A5CB-3D7446971C4D}","g"),asteriskHolder=new RegExp("{E21523B3-0F1F-458f-B547-23D25713D0EC}","g");function fixFormulaKeyword(searchString,useWildCards,exactMatch){for(var i in regExpKeyPattern){if(regExpKeyPattern[i]){searchString=searchString.replace(regExpKeyPattern[i],regExpKeyPattern[i].source)}}if(useWildCards===true){searchString=searchString.replace(/~\?/g,questionMarkHolder.source);searchString=searchString.replace(/~\*/g,asteriskHolder.source);searchString=searchString.replace(/\?/g,".");if(exactMatch){searchString=searchString.replace(/\*/g,"((.|\\n)+)")}else
{searchString=searchString.replace(/\*/g,"((.|\\n)*)")}searchString=searchString.replace(questionMarkHolder,"\\?");searchString=searchString.replace(asteriskHolder,"\\*")}else
{searchString=searchString.replace(/\?/g,"\\?");searchString=searchString.replace(/\*/g,"\\*")}return searchString}var DataContext=(function(){function DataContext(read,create,update,remove){var self=this;self.read=read;self.create=create;self.update=update;self.remove=remove}return DataContext})();spread.DataContext=DataContext;var _gcSheet=".gcSheet";var _gcSheetInternal=".gcSheetInternal";var _mouseDown_gcSheet="mousedown"+_gcSheet;var _mouseMove_gcSheet="mousemove"+_gcSheet;var _mouseUp_gcSheet="mouseup"+_gcSheet;var _mouseOut_gcSheet="mouseout"+_gcSheet;var _dblclick_gcSheet="dblclick"+_gcSheet;var _mouseWheel_gcSheet="gcmousewheel"+_gcSheet;var _resize_gcSheet="resize"+_gcSheet;var _value="value";var _cssLeft="left",_cssTop="top",_cssWidth="width",_cssHeight="height",_cssHidden="hidden",cssVisibility="visibility";var ajax_Type="POST",ajax_DataType="json",ajax_MIME="application/json;charset=UTF-8";var _jsonDateRegExp=new RegExp("^/Date\\((-?\\d+)([-+]{1}\\d+)?\\)/\\s*$");var _jsonOADateRegExp=new RegExp("^/OADate\\(([-+]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)\\)/\\s*$");var Sheet=(function(){function Sheet(name){var self=this;self._name="";self._visible=true;self.defaults=keyword_null;self.gridline=keyword_null;self.borderColor="black";self.borderWidth=0;self._zoomFactor=1;self.frozenRowCount=0;self.frozenColCount=0;self.rowHeaderVisible=true;self.colHeaderVisible=true;self.rowHeaderAutoText=1;self.colHeaderAutoText=2;self.rowHeaderAutoTextIndex=-1;self.colHeaderAutoTextIndex=-1;self.rowRangeGroup=keyword_null;self.colRangeGroup=keyword_null;self._activeRowIndex=0;self._activeColIndex=0;self.activeRowViewportIndex=0;self.activeColViewportIndex=0;self._allowCellOverflow=false;self.maxCellOverflowDistance=100;self.showEditingLocator=true;self.keyMap=keyword_null;self.isProtected=false;self._allowUndo=true;self._paintSuspended=false;self._layoutSuspended=0;self.checkingChanges=false;self.autoGenerateColumns=true;self._allowEditorReservedLocations=true;self._sheetTabColor=keyword_null;self._frozenlineColor="black";self._frozenTrailingRowCount=0;self._frozenTrailingColCount=0;self._rowLayoutCache=keyword_null;self._colLayoutCache=keyword_null;self._dragRect=keyword_null;self._scrollTopRow=0;self._scrollLeftCol=0;self._activeRowDirty=false;self.floatingObjectKeyMap=keyword_null;self._commentKeyMap=keyword_null;self._cachePool=new spread._CachePool(this);self._composedDefaultStyle={};self._defaultRowCount=200;self._defaultColCount=20;self._defaultRowHeight=20;self._defaultColWidth=62;self._defaultRowHeaderColWidth=40;self._defaultColHeaderRowHeight=20;self._defaultGridLineColor="#d0d7e5";self._defaultShowVerticalGridline=true;self._defaultShowHorizontalGridline=true;self.fontHeightCache=keyword_null;self._init(name)}Sheet.prototype._addFloatingOjectInternal=function(item){var self=this,floatingObjectArray=self._floatingObjectArray;if(!floatingObjectArray||!spread.features.floatingObject){return}try
{var oldState=self.isPaintSuspended();self.isPaintSuspended(true);floatingObjectArray.add(item)}finally
{self.isPaintSuspended(oldState)}};Sheet.prototype._findFloatingObjectInternal=function(name){var floatingObjectArray=this._floatingObjectArray;if(spread.features.floatingObject&&floatingObjectArray&&floatingObjectArray.length>0){return floatingObjectArray.find(name)}return keyword_null};Sheet.prototype._removeFloatingObjectInternal=function(name){var floatingObjectArray=this._floatingObjectArray;if(spread.features.floatingObject&&floatingObjectArray&&floatingObjectArray.length){var item=floatingObjectArray.find(name);if(item){floatingObjectArray.remove(item)}}};Sheet.prototype._saveAndClearSheetSelections=function(){var self=this;var selection=self._selectionModel;if(selection&&selection.length>0){var selectionModelCache=new spread._SelectionModel;self._selectionModelCache=selectionModelCache;selectionModelCache.selectionPolicy=selection.selectionPolicy;selectionModelCache.selectionUnit=selection.selectionUnit;selectionModelCache.activeSelectedRangeIndex=selection.activeSelectedRangeIndex;for(var index=0,len=selection.length;index<len;index++){selectionModelCache.push(selection[index])}self._clearSelectionImp();for(var index=0,len=selectionModelCache.length;index<len;index++){self._render.repaintSelection(selectionModelCache[index])}}};Sheet.prototype._loadAndSetSheetSelections=function(){var selection=this._selectionModelCache;if(selection){var selectionModel=new spread._SelectionModel;this._selectionModel=selectionModel;selectionModel.selectionPolicy=selection.selectionPolicy;selectionModel.selectionUnit=selection.selectionUnit;selectionModel.activeSelectedRangeIndex=selection.activeSelectedRangeIndex;for(var index=0,len=selection.length;index<len;index++){selectionModel.push(selection[index])}}};Sheet.prototype._updateFloatingObjectsLayout=function(){var self=this,floatingObjectArray=self._floatingObjectArray,render=self._render;if(spread.features.floatingObject&&floatingObjectArray&&floatingObjectArray.length>0){floatingObjectArray._updateFloatingsObjectlayoutOnColumnRowChanged();if(render){render._paintFloatingObject(self._bounds)}}};Sheet.prototype.unSelectAllFloatingObjects=function(){var floatingObjectArray=this._floatingObjectArray;if(spread.features.floatingObject&&floatingObjectArray&&floatingObjectArray.length>0){for(var i=0;i<floatingObjectArray.length;i++){floatingObjectArray[i].isSelected(false)}}};Sheet.prototype.addFloatingObject=function(item){if(!this._floatingObjectArray||!spread.features.floatingObject||!(item instanceof spread.CustomFloatingObject)){return}this._addFloatingOjectInternal(item)};Sheet.prototype.findFloatingObject=function(name){var floatingObject=this._findFloatingObjectInternal(name);if(floatingObject instanceof spread.CustomFloatingObject){return floatingObject}return keyword_null};Sheet.prototype.removeFloatingObject=function(name){var floatingObject=this._findFloatingObjectInternal(name);if(floatingObject instanceof spread.CustomFloatingObject){this._floatingObjectArray.remove(floatingObject)}};Sheet.prototype.getFloatingObjects=function(){var floatingObjects=[];if(!spread.features.floatingObject){return floatingObjects}var floatingObjectArray=this._floatingObjectArray;for(var index=0,len=floatingObjectArray.length;index<len;index++){var floatingObject=floatingObjectArray[index];if(floatingObject instanceof spread.CustomFloatingObject){floatingObjects.push(floatingObject)}}return floatingObjects};Sheet.prototype.addPicture=function(name,src,startRow,startColumn,endRow,endColumn,startRowOffset,startColumnOffset,endRowOffset,endColumnOffset){var self=this,floatingObjectArray=self._floatingObjectArray;if(!floatingObjectArray||!spread.features.floatingObject){return keyword_null}try
{var oldState=self.isPaintSuspended();self.isPaintSuspended(true);var picture=new spread.Picture(name);picture.owner(self);picture.src(src);picture.startRow(startRow);picture.startColumn(startColumn);picture.endRow(endRow);picture.endColumn(endColumn);if(typeof endRow===const_undefined||typeof endColumn===const_undefined){picture._isTakeOriginalSize=true}if(typeof startRowOffset==='number'){picture.startRowOffset(startRowOffset)}if(typeof startColumnOffset==='number'){picture.startColumnOffset(startColumnOffset)}if(typeof endRowOffset==='number'){picture.endRowOffset(endRowOffset)}if(typeof endColumnOffset==='number'){picture.endColumnOffset(endColumnOffset)}floatingObjectArray.add(picture);return picture}finally
{self.isPaintSuspended(oldState)}};Sheet.prototype.findPicture=function(name){var floatingObject=this._findFloatingObjectInternal(name);if(floatingObject instanceof spread.Picture){return floatingObject}return keyword_null};Sheet.prototype.removePicture=function(name){var floatingObject=this._findFloatingObjectInternal(name);if(floatingObject instanceof spread.Picture){this._floatingObjectArray.remove(floatingObject)}};Sheet.prototype.getPictures=function(){var floatingObjects=[];if(!spread.features.floatingObject){return floatingObjects}var floatingObjectArray=this._floatingObjectArray;for(var index=0,len=floatingObjectArray.length;index<len;index++){var floatingObject=floatingObjectArray[index];if(floatingObject instanceof spread.Picture){floatingObjects.push(floatingObject)}}return floatingObjects};Sheet.prototype.setFloatingObjectZIndex=function(name,zIndex){if(isNaN(zIndex)||!spread.features.floatingObject){return}var render=this._render,floatingObjectRenderManager=render&&render._floatingObjectRenderManager;if(floatingObjectRenderManager){var i,j,rowCount,colCount;for(i=0,rowCount=floatingObjectRenderManager.length;i<rowCount;i++){var rowRenderManagers=floatingObjectRenderManager[i];if(rowRenderManagers){for(j=0,colCount=rowRenderManagers.length;j<colCount;j++){var renderManager=rowRenderManagers[j];if(renderManager){renderManager.setFloatingObjectZIndex(name,zIndex)}}}}}};Sheet.prototype.getFloatingObjectZIndex=function(name){var render=this._render,floatingObjectRenderManager=render&&render._floatingObjectRenderManager;if(spread.features.floatingObject&&floatingObjectRenderManager){var i,j,rowCount,colCount;for(i=0,rowCount=floatingObjectRenderManager.length;i<rowCount;i++){var rowRenderManagers=floatingObjectRenderManager[i];if(rowRenderManagers){for(j=0,colCount=rowRenderManagers.length;j<colCount;j++){var renderManager=rowRenderManagers[j];if(renderManager){return renderManager.getFloatingObjectZIndex(name)}}}}}return-1};Sheet.prototype.getDataSource=function(){var bindingManager=this._bindingManager;if(bindingManager){return bindingManager.getSource()}return keyword_null};Sheet.prototype.getBindingPath=function(row,col,sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}if(sheetArea===3){var m=this._getModel(sheetArea);if(m){return m.getBindingPath(row,col)}}return keyword_null};Sheet.prototype.setBindingPath=function(row,col,path,sheetArea){var self=this;return self._bindToAutoRefresh(function(row,col,path,sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}if(sheetArea===3){var m=self._getModel(sheetArea);if(m){m.setBindingPath(row,col,path)}}return self})(row,col,path,sheetArea)};Sheet.prototype._autoGenerateColumnCellType=function(col){var self=this,bindingManager=self._bindingManager,colInfos=self._colInfos;if(bindingManager&&colInfos&&colInfos[col]){var item=bindingManager.getDataItem(0);if(item){var value=item[colInfos[col].name];if(typeof value===const_boolean){self.setCellType(-1,col,new spread.CheckBoxCellType)}}}};Sheet.prototype.setDataSource=function(data,reset){var self=this,bm=self._bindingManager;if(!bm||bm.getSource()===data){return}self._bindToAutoRefresh(function(data,reset){if(!data||reset){self.reset()}bm=self._bindingManager;if(data){bm.bind(data);if(spread._BindingManager.isCellBindingSource(data)){return}self.setRowCount(bm.getRowCount());if(self.autoGenerateColumns){self.setColumnCount(bm.getColumnCount());self._colInfos={};var fields=bm.getFields();if(fields){for(var i in fields){self._colInfos[i]={name:fields[i]}}}}else if(!self._colInfos){self._colInfos={}}if(!self.calcService.IsSuspended()){self.recalcAll()}}})(data,reset)};Sheet.prototype.bindColumn=function(index,column){var self=this;var oldState=self.isPaintSuspended();self.isPaintSuspended(true);try
{if(typeof column===const_string){column={name:column}}var colInfos=self._colInfos;if(!colInfos){self._colInfos=colInfos={}}colInfos[index]=column;if(column&&column.formatter){self.setFormatter(-1,index,column.formatter)}if(column&&column.cellType){self.setCellType(-1,index,column.cellType)}}finally
{self.isPaintSuspended(oldState)}};Sheet.prototype.bindColumns=function(columns){var self=this;var oldState=self.isPaintSuspended();self.isPaintSuspended(true);try
{self._colInfos={};if(columns){if(!isNaN(columns.length)){self.setColumnCount(columns.length)}for(var i=0;i<columns.length;i++){var colInfo=columns[i];if(typeof colInfo===const_string){colInfo={name:colInfo}}self._colInfos[i]=colInfo;if(colInfo&&colInfo.formatter){self.setFormatter(-1,i,colInfo.formatter)}if(colInfo&&colInfo.cellType){self.setCellType(-1,i,colInfo.cellType)}}}}finally
{self.isPaintSuspended(oldState)}};Sheet.prototype.getDataContext=function(){return this.dataContext};Sheet.prototype.setDataContext=function(dataContext){this.dataContext=dataContext;this.load()};Sheet.prototype.getDataItem=function(row){var self=this,bm=self._bindingManager,colInfos=self._colInfos;if(!bm||bm.getRowCount()===0){return keyword_null}var cc=self.getColumnCount();var t={};var rowItem=bm.getDataItem(row);if(rowItem){for(var x in rowItem){if(rowItem.hasOwnProperty(x)&&typeof(x)!==const_function){t[x]=rowItem[x]}}}if(colInfos){for(var i=0;i<cc;i++){var ci=colInfos[i];if(ci&&ci.name&&ci.name.length>0){t[ci.name]=self.getValue(row,i)}}}return t};Sheet.prototype.getDirtyRows=function(){var self=this;var rows=[];var dirtyNodes=self._dataModel.dirtyNodes;if(dirtyNodes){var bm=self._bindingManager,ds=self.getDataSource();for(var t in dirtyNodes){if(dirtyNodes.hasOwnProperty(t)&&dirtyNodes[t]&&dirtyNodes[t].rs==="e"){rows.push({row:t,item:self.getDataItem(t),originalItem:!ds?keyword_null:bm.getDataItem(t)})}}}return rows};Sheet.prototype.getInsertRows=function(){var rows=[];var dirtyNodes=this._dataModel.dirtyNodes;if(dirtyNodes){for(var t in dirtyNodes){if(dirtyNodes.hasOwnProperty(t)&&dirtyNodes[t]&&dirtyNodes[t].rs==="n"){rows.push({row:t,item:this.getDataItem(t)})}}}return rows};Sheet.prototype._getDeleteRows=function(){var rows=[];if(this.deletedRows){$.each(this.deletedRows,function(i,v){if(typeof(v)!==const_function){if(v&&v.data!==keyword_undefined&&v.data!==keyword_null){rows.push({row:i,originalItem:v.data})}}})}return rows};Sheet.prototype.hasPendingChanges=function(){var self=this;var dirtyNodes=self._dataModel.dirtyNodes,t;if(dirtyNodes){for(t in dirtyNodes){if(dirtyNodes[t]&&(dirtyNodes[t].rs==="e"||dirtyNodes[t].rs==="n")){return true}}}var deletedRows=self.deletedRows;if(deletedRows){for(t in deletedRows){var item=deletedRows[t];if(item){if(typeof(item)!==const_function){return true}}}}return false};Sheet.prototype.clearPendingChanges=function(){var self=this;var dirtyNodes=self._dataModel.dirtyNodes;for(var r in dirtyNodes){var row=dirtyNodes[r];if(row&&row.rs){delete row.rs}}self._dataModel.dirtyNodes={};self.deletedRows=[];function clearDirty(items){$.each(items,function(i,v){if(typeof(i)!==const_function&&v&&v.dirty){v.dirty=keyword_null}})}clearDirty(self._rowInfos);clearDirty(self._colInfos)};Sheet.prototype.load=function(){var self=this,dataContext=self.dataContext;if(!dataContext||!dataContext.read){return}self._dataReceivedDelegate=function(event){return self._onDataReceived(event)};$.getJSON(dataContext.read,self._dataReceivedDelegate)};Sheet.prototype.updateRecord=function(){var self=this,dataContext=self.dataContext;if(!self.autoUpdate||!dataContext||!dataContext.update||dataContext.update===""){return}var bm=self._bindingManager,ds=self.getDataSource();if(!ds||bm.getRowCount()===0){return}self._dataUpdatedDelegate=function(event){return self._onDataUpdated(event)};var n=self._activeRowIndex;if(n>=0){var item=self.getDataItem(n);var url=dataContext.update;if(self._dataModel.dataTable&&self._dataModel.dataTable[n]&&self._dataModel.dataTable[n].rs==="n"){url=dataContext.create}$.ajax({url:url,type:ajax_Type,data:JSON.stringify(item),dataType:ajax_DataType,contentType:ajax_MIME,success:self._dataUpdatedDelegate})}};Sheet.prototype._onDataUpdated=function(event){};Sheet.prototype._onDataReceived=function(event){if(!event){return}var data=event.data;if(!data){return}var self=this;self.setDataSource(data);if(!isNaN(event.total)){self.setRowCount(event.total)}if(window.localStorage){var cc=self.getColumnCount();for(var i=0;i<cc;i++){if(window.localStorage["col,"+i]){self.setColumnWidth(i,parseInt(window.localStorage["col,"+i],10))}}}if(self.parent){self.parent._doResize()}self.invalidateLayout();self.repaint()};Sheet.prototype._getProperties=function(t){var r=[];if(t){for(var n in t){if(typeof(t[n])!==const_function){r.push(n)}else
{if(typeof(ko)!==const_undefined&&ko.isObservable(t[n])){r.push(n)}}}}return r};Sheet.prototype.referenceStyle=function(value){var rs=spread.ReferenceStyle,calcService=this.getCalcService();if(arguments.length===0){return(calcService&&calcService.useR1C1)?1:0}if(calcService){calcService.useR1C1=(value===1)}return this};Sheet.prototype.recalcAll=function(){var calcService=this.getCalcService();if(calcService){calcService.recalculateAll(true)}};Sheet.prototype._recalcCell=function(model,row,col){var calcService=this.getCalcService();if(calcService&&!calcService.ignoreDirty()){calcService.recalculate({target:this,model:model},row,col)}};Sheet.prototype.getCalcService=function(){var self=this;if(!self.calcService&&spread.util.hasCalc()){self.calcService=new spread.Calc.Service(self)}return self.calcService};Sheet.prototype._getCalcContexts=function(){var self=this;var t=[];var vpModel=self._getModel();t.push({name:self._name,target:self,refModel:vpModel});return t};Sheet.prototype.updateCalcContexts=function(){var calcService=this.getCalcService();if(calcService){calcService.contextChanged()}};Sheet.prototype.suspendCalcService=function(ignoreDirty){if(this.calcService){this.calcService.suspend(ignoreDirty)}};Sheet.prototype.resumeCalcService=function(recalcAll){if(this.calcService){this.calcService.resume(recalcAll)}};Sheet.prototype._getSheetSource=function(sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null||sheetArea===3){return this._vpSheetSource}return keyword_null};Sheet.prototype.getCustomFunction=function(name){if(this._functions&&name&&name!==''){return this._functions[name.toUpperCase()]}return keyword_null};Sheet.prototype.addCustomFunction=function(fn){if(!spread.util.hasCalc()){return}if(!fn||!(fn instanceof spread.Calc.Functions.Function)){throw new Error(spread.SR.Exp_InvalidCustomFunction);}var self=this;var fnName=fn.name.toUpperCase();if(!self._functions){self._functions={}}self._functions[fnName]=fn;self.recalcAll()};Sheet.prototype.removeCustomFunction=function(name){var self=this;if(self._functions&&name&&name!==''){name=name.toUpperCase();if(self._functions.hasOwnProperty(name)){delete self._functions[name];self.recalcAll()}}};Sheet.prototype.clearCustomFunctions=function(){if(this._functions){delete this._functions;this.recalcAll()}};Sheet.prototype._findCustomFunction=function(name){if(!name||name===''){return keyword_null}var self=this,parent=self.parent;var fn=self.getCustomFunction(name);if(!fn&&parent&&parent.getCustomFunction){fn=parent.getCustomFunction(name)}return fn};Sheet.prototype.addCustomFunctionDescription=function(fnd){if(!fnd||!fnd.name||this.getCustomFunctionDescription(fnd.name)){return}var fnds=this._functionDescriptions;if(!fnds){fnds=this._functionDescriptions=[]}fnds.push(fnd)};Sheet.prototype.getCustomFunctionDescription=function(name){var fnds=this._functionDescriptions;if(fnds&&name){name=name.toUpperCase();var count=fnds.length,fnd;for(var i=0;i<count;i++){fnd=fnds[i];if(fnd.name&&fnd.name.toUpperCase()===name){return fnd}}}return keyword_null};Sheet.prototype.removeCustomFunctionDescription=function(name){var fnds=this._functionDescriptions;if(!fnds||!name){return}name=name.toUpperCase();var count=fnds.length,fnd;for(var i=0;i<count;i++){fnd=fnds[i];if(fnd.name&&fnd.name.toUpperCase()===name){fnds.splice(i,1);break}}};Sheet.prototype.clearCustomFunctionDescriptions=function(){if(this._functionDescriptions){this._functionDescriptions=keyword_null}};Sheet.prototype.getCustomName=function(name){var names=this._names;return names?names[name]:keyword_null};Sheet.prototype.getCustomNames=function(){var result=[],names=this._names;if(names){$.each(names,function(p,v){result.push(v)})}return result};Sheet.prototype.addCustomName=function(name,formula,baseRow,baseCol){this._addCustomNameCore(name,formula,baseRow,baseCol,false)};Sheet.prototype._addCustomNameCore=function(name,formula,baseRow,baseCol,ignoreError){if(!name||name===''||!formula||formula===''){throw new Error(spread.SR.Exp_InvalidCustomName);}var self=this;if(!self._names){self._names={}}var calcService=self.getCalcService();var sheetSource=self._getSheetSource();if(calcService&&sheetSource){var expr;if(ignoreError){try
{expr=calcService.parse(formula,baseRow,baseCol)}catch(ex){}}else
{expr=calcService.parse(formula,baseRow,baseCol)}self._names[name]=new spread.NameInfo(name,expr,baseRow,baseCol);var nameCalc=sheetSource._getNameCalc(name,true);if(nameCalc){nameCalc.updateListening(true,true);nameCalc.addToDirty()}self.recalcAll()}};Sheet.prototype.removeCustomName=function(name){var self=this;if(self._names&&name&&name!==''&&self._names.hasOwnProperty(name)){delete self._names[name];var sheetSource=self._getSheetSource();if(sheetSource){var nameCalc=sheetSource._getNameCalc(name);if(nameCalc){nameCalc.updateListening(true,false);nameCalc.addToDirty()}}self.recalcAll()}};Sheet.prototype.clearCustomNames=function(){var self=this;if(self._names){var names=self._names;delete self._names;var sheetSource=self._getSheetSource();if(sheetSource){var len=names.length;for(var i=0;i<len;i++){var nameCalc=sheetSource._getNameCalc(names[i]);if(nameCalc){nameCalc.updateListening(true,false);nameCalc.addToDirty()}}}self.recalcAll()}};Sheet.prototype._findCustomName=function(name){if(!name||name===''){return keyword_null}var self=this,parent=self.parent;var cn=self.getCustomName(name);if(!cn&&parent&&parent.getCustomName){cn=parent.getCustomName(name)}return cn};Sheet.prototype.setFormula=function(row,col,value,sheetArea){this._setFormulaCore(row,col,value,false,sheetArea)};Sheet.prototype._setFormulaCore=function(row,col,value,ignoreError,sheetArea){var self=this;if(sheetArea===1||sheetArea===2){return}if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}var E=spread.Events;if(row<0||row>=self.getRowCount()||col<0||col>=self.getColumnCount()){self._raiseInvalidOperation(0,spread.SR.Exp_IndexOutOfRange);return}var tableManager=self._tableManager;if(sheetArea===3&&row>=0&&col>=0&&tableManager){var table=tableManager.find(row,col);if(table){if(table.showHeader()&&row===table.headerIndex()&&value){return}if(table.showFooter()&&row===table.footerIndex()){table._setFooterFormula(row,col,value)}}}var sheetSource=self._getSheetSource(),conditionalFormats=self._conditionalFormats;if(sheetSource){sheetSource.setFormula(row,col,value,ignoreError);if(conditionalFormats){conditionalFormats._clearCache()}if(self._eventHandler._eventSuspended<1){self._trigger(E.CellChanged,{sheet:self,sheetName:self._name,row:row,col:col,sheetArea:sheetArea,propertyName:"formula"})}}if(!self._paintSuspended){self.invalidateLayout();self.repaint()}};Sheet.prototype.setArrayFormula=function(row,col,rowCount,colCount,value,sheetArea){this._setArrayFormulaCore(row,col,rowCount,colCount,value,false,sheetArea)};Sheet.prototype._setArrayFormulaCore=function(row,col,rowCount,colCount,value,ignoreError,sheetArea){var self=this;self._bindToAutoRefresh(function(row,col,rowCount,colCount,value,sheetArea){if(sheetArea===1||sheetArea===2){return}if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}var E=spread.Events;if(row<0||row+rowCount>self.getRowCount()||col<0||col+colCount>self.getColumnCount()){self._raiseInvalidOperation(0,spread.SR.Exp_IndexOutOfRange);return}var tableManager=self._tableManager;if(sheetArea===3&&row>=0&&col>=0&&tableManager){var table=tableManager.find(row,col);if(table){if(rowCount>1||colCount>1){self._raiseInvalidOperation(0,spread.SR.Exp_ArrayFormulaTable);return}if(table.showHeader()&&row===table.headerIndex()&&value){return}if(table.showFooter()&&row===table.footerIndex()){table._setFooterFormula(row,col,value)}}}var sheetSource=self._getSheetSource(),conditionalFormats=self._conditionalFormats;if(sheetSource){sheetSource.setArrayFormula(row,col,rowCount,colCount,value,ignoreError);if(conditionalFormats){conditionalFormats._clearCache()}if(self._eventHandler._eventSuspended<1){self._trigger(E.RangeChanged,{sheet:self,sheetName:self._name,row:row,col:col,rowCount:rowCount,colCount:colCount,sheetArea:sheetArea,propertyName:"formula"})}}})(row,col,rowCount,colCount,value,sheetArea)};Sheet.prototype.getFormula=function(row,col,sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null||sheetArea===3){var sheetSource=this._getSheetSource();if(sheetSource){return sheetSource.getFormula(row,col)}}return keyword_null};Sheet.prototype.getFormulaInformation=function(row,col,sheetArea){var info=new spread.FormulaInformation;if(sheetArea===keyword_undefined||sheetArea===keyword_null||sheetArea===3){var calcModule=this._getCalcModel(sheetArea);if(calcModule){var node=calcModule.getNode(row,col);if(node&&node.expr){info.hasFormula=true;var arrayInfo=node.arrayInfo;if(arrayInfo){info.baseRange=new spread.Range(arrayInfo.row,arrayInfo.col,arrayInfo.rowCount,arrayInfo.colCount)}info.isArrayFormula=!!node.arrayInfo}}var sheetSource=this._getSheetSource();if(sheetSource){info.formula=sheetSource.getFormula(row,col);info.hasFormula=!!info.formula}}return info};Sheet.prototype.hasFormula=function(row,col,sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null||sheetArea===3){var sheetSource=this._getSheetSource();if(sheetSource){return sheetSource.hasFormula(row,col)}}return false};Sheet.prototype._findFormulas=function(row,column,rowCount,columnCount){};Sheet.prototype._rebuildCalcNodes=function(){var calcModel=this._getCalcModel();if(!calcModel){return}var sheetSource=this._getSheetSource();if(!sheetSource){return}var row=calcModel.nextNonNullRow(-1);var rowCount=calcModel.getRowCount();var colCount=calcModel.getColumnCount();while(0<=row&&row<rowCount){var col=calcModel.nextNonNullColumn(row,-1);while(0<=col&&col<colCount){var cellCalc=sheetSource._getCellCalc(row,col);if(cellCalc){cellCalc.stopListening();cellCalc.startListening()}col++}row++}};Sheet.prototype.toJSON=function(){var sheet=this,bindingManager=sheet._bindingManager,sparklineGroupManager=sheet._sparklineGroupManager,commentManager=sheet._commentManager,cfs=sheet.getConditionalFormats(),tableManager=sheet._tableManager,floatingObjectArray=sheet._floatingObjectArray,rowFilter=sheet._rowFilter;var dataDic={defaults:sheet.defaults,columns:sheet._toArray(sheet._colInfos,sheet.getColumnCount()),rows:sheet._toArray(sheet._rowInfos,sheet.getRowCount()),autoGenerateColumns:sheet.autoGenerateColumns,dataBinding:(bindingManager?bindingManager.toJSON():keyword_null),frozenRowCount:sheet.frozenRowCount,frozenColCount:sheet.frozenColCount,frozenTrailingRowCount:sheet._frozenTrailingRowCount,frozenTrailingColCount:sheet._frozenTrailingColCount,rowCount:sheet.getRowCount(),columnCount:sheet.getColumnCount(),sparklineGroupManager:(sparklineGroupManager?sparklineGroupManager.toJSON():keyword_null),commentManager:(commentManager?commentManager.toJSON():keyword_null),spans:sheet._spanModel.toJSON(),selectionBackColor:sheet._selectionBackColor,selectionBorderColor:sheet._selectionBorderColor,activeRow:sheet._activeRowIndex,activeCol:sheet._activeColIndex,gridline:sheet.gridline,allowCellOverflow:sheet._allowCellOverflow,referenceStyle:sheet.referenceStyle(),zoomFactor:sheet._zoomFactor,theme:sheet.currentTheme(),showRowRangeGroup:sheet._showRowRangeGroup,showColumnRangeGroup:sheet._showColumnRangeGroup,conditionalFormats:(cfs?cfs.toJSON():keyword_null),sheetTabColor:sheet._sheetTabColor,frozenlineColor:sheet._frozenlineColor,rowHeaderAutoText:sheet.rowHeaderAutoText,colHeaderAutoText:sheet.colHeaderAutoText,rowHeaderAutoTextIndex:sheet.rowHeaderAutoTextIndex,colHeaderAutoTextIndex:sheet.colHeaderAutoTextIndex,rowHeaderVisible:sheet.rowHeaderVisible,colHeaderVisible:sheet.colHeaderVisible,rowHeaderColCount:sheet.getColumnCount(2),colHeaderRowCount:sheet.getRowCount(1),rowHeaderSpan:sheet._rowHeaderSpanModel.toJSON(),colHeaderSpan:sheet._colHeaderSpanModel.toJSON(),rowHeaderColInfos:sheet._toArray(sheet._rowHeaderColInfos,sheet.getColumnCount(2)),colHeaderRowInfos:sheet._toArray(sheet._colHeaderRowInfos,sheet.getRowCount(1)),clipBoardOptions:sheet._clipBoardOptions,isProtected:sheet.isProtected,borderColor:sheet.borderColor,borderWidth:sheet.borderWidth,allowDragDrop:sheet._allowDragDrop,allowDragFill:sheet._allowDragFill,allowUndo:sheet._allowUndo,allowEditorReservedLocations:sheet._allowEditorReservedLocations,tableManager:(tableManager?tableManager.toJSON():keyword_null),floatingObjectArray:(floatingObjectArray?floatingObjectArray.toJSON():keyword_null),visible:sheet._visible,rowHeaderData:sheet._rowHeaderModel.toJSON(2),colHeaderData:sheet._colHeaderModel.toJSON(1),data:sheet._dataModel.toJSON(),rowRangeGroup:sheet.rowRangeGroup.toJSONCore(true),colRangeGroup:sheet.colRangeGroup.toJSONCore(false)};var sdata={name:sheet._name,selections:sheet._selectionModel.toJSON(),rowFilter:rowFilter?rowFilter.toJSON():keyword_undefined};for(var item in dataDic){var value=dataDic[item];if(!sheet._isDefaultValue(item,value)){sdata[item]=value}}var namedStyles=[],sheetNamedStyles=sheet._namedStyles;if(sheetNamedStyles){for(var item in sheetNamedStyles){namedStyles.push(sheetNamedStyles[item])}}if(namedStyles.length>0){sdata["namedStyles"]=namedStyles}var names=[],sheetNames=sheet._names;if(sheetNames&&sheet.calcService){for(var n in sheetNames){if(sheet._names.hasOwnProperty(n)){var ni=sheetNames[n];var name=ni.getName(),row=ni.getRow(),col=ni.getColumn(),expr=ni.getExpression();var f=sheet.calcService.unparse(expr,row,col);names.push({name:name,formula:f,row:row,col:col})}}}if(names.length>0){sdata["names"]=names}return sdata};Sheet.prototype._isDefaultTheme=function(value){if(!value){return false}if(value._name==="Office"){var themeColor=JSON.stringify(value._themeColor);var defaultThemeColor=JSON.stringify(spread.ThemeColors.Office);if(value._bodyFont==="Calibri"&&value._headingFont==="Cambria"&&themeColor===defaultThemeColor){return true}}return false};Sheet.prototype._isDefaultValue=function(propertyName,value){var sheet=this;switch(propertyName){case"defaults":return value.rowHeight===sheet._defaultRowHeight&&value.colWidth===sheet._defaultColWidth&&value.rowHeaderColWidth===sheet._defaultRowHeaderColWidth&&value.colHeaderRowHeight===sheet._defaultColHeaderRowHeight;case"columns":return!value||value.length===0;case"rows":return!value||value.length===0;case"autoGenerateColumns":return value===true;case"dataBinding":return value===keyword_null;case"sparklineGroupManager":return value===keyword_null;case"commentManager":return value===keyword_null;case"frozenRowCount":return value===0;case"frozenColCount":return value===0;case"frozenTrailingRowCount":return value===0;case"frozenTrailingColCount":return value===0;case"rowCount":return value===200;case"columnCount":return value===20;case"selectionBackColor":return value==="rgba(180,180,200,0.2)";case"selectionBorderColor":return value==="black";case"activeRow":return value===0;case"activeCol":return value===0;case"gridline":return value.color===sheet._defaultGridLineColor&&value.showHorizontalGridline===sheet._defaultShowHorizontalGridline&&value.showVerticalGridline===sheet._defaultShowVerticalGridline;case"allowCellOverflow":return value===false;case"referenceStyle":return value===0;case"zoomFactor":return value===1.0;case"theme":return sheet._isDefaultTheme(value);case"showRowRangeGroup":return value===true;case"showColumnRangeGroup":return value===true;case"conditionalFormats":return value===keyword_null;case"sheetTabColor":return value===keyword_null;case"frozenlineColor":return value==="black";case"rowHeaderAutoText":return value===1;case"colHeaderAutoText":return value===2;case"rowHeaderAutoTextIndex":return value===-1;case"colHeaderAutoTextIndex":return value===-1;case"rowHeaderVisible":return value===true;case"colHeaderVisible":return value===true;case"rowHeaderColCount":return value===1;case"colHeaderRowCount":return value===1;case"rowHeaderColInfos":return!value||value.length===0;case"colHeaderRowInfos":return!value||value.length===0;case"clipBoardOptions":return value===0;case"isProtected":return value===false;case"borderColor":return value==="black";case"borderWidth":return value===0;case"allowDragDrop":return value===true;case"allowDragFill":return value===true;case"allowUndo":return value===true;case"allowEditorReservedLocations":return value===true;case"tableManager":return value===keyword_null;case"floatingObjectArray":return value===keyword_null;case"visible":return value===true;case"data":return $.isEmptyObject(value);case"rowHeaderData":return $.isEmptyObject(value);case"colHeaderData":return $.isEmptyObject(value);default:return false}};Sheet.prototype.fromJSON=function(sheetSettings,setFormulaDirectly){if(!sheetSettings){return}if(arguments.length==1){setFormulaDirectly=true}var sheet=this;var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);var rowCount=sheetSettings.rowCount;var columnCount=sheetSettings.columnCount;try
{sheet._name=sheetSettings.name;if(sheetSettings.defaults){sheet.defaults=sheetSettings.defaults}if(typeof rowCount===const_undefined){rowCount=sheet._defaultRowCount}sheet.setRowCount(rowCount);if(typeof columnCount===const_undefined){columnCount=sheet._defaultColCount}sheet.setColumnCount(columnCount);if(typeof sheetSettings.activeRow!==const_undefined){sheet._activeRowIndex=sheetSettings.activeRow}if(typeof sheetSettings.activeCol!==const_undefined){sheet._activeColIndex=sheetSettings.activeCol}if(typeof sheetSettings.frozenRowCount!==const_undefined){sheet.setFrozenRowCount(sheetSettings.frozenRowCount)}if(typeof sheetSettings.frozenColCount!==const_undefined){sheet.setFrozenColumnCount(sheetSettings.frozenColCount)}if(typeof sheetSettings.frozenTrailingRowCount!==const_undefined){sheet.setFrozenTrailingRowCount(sheetSettings.frozenTrailingRowCount)}if(typeof sheetSettings.frozenTrailingColCount!==const_undefined){sheet.setFrozenTrailingColumnCount(sheetSettings.frozenTrailingColCount)}if(typeof sheetSettings.gridline!==const_undefined){sheet.gridline=sheetSettings.gridline}if(typeof sheetSettings.allowCellOverflow!==const_undefined){sheet._allowCellOverflow=sheetSettings.allowCellOverflow}if(typeof sheetSettings.autoGenerateColumns!==const_undefined){sheet.autoGenerateColumns=sheetSettings.autoGenerateColumns}if(sheetSettings.dataSource){var bm=sheet._bindingManager;if(bm){bm.bind(sheetSettings.dataSource)}}if(sheetSettings.dataBinding){var bm=sheet._bindingManager;if(bm){bm.fromJSON(sheetSettings.dataBinding)}}if(sheetSettings.rows){sheet._rowInfos=sheetSettings.rows;sheet._rowInfos.length=rowCount}if(sheetSettings.columns){sheet._colInfos=sheetSettings.columns;sheet._colInfos.length=columnCount}if(sheetSettings.colStyles){for(var t in sheetSettings.colStyles){if(!isNaN(t)){var c=parseInt(t,10);sheet.setStyle(-1,c,sheetSettings.colStyles[t],3)}}}if(sheetSettings.rowStyles){for(var t in sheetSettings.rowStyles){if(!isNaN(t)){var r=parseInt(t,10);sheet.setStyle(r,-1,sheetSettings.rowStyles[t],3)}}}if(typeof(sheetSettings.rowHeaderAutoText)!==const_undefined){sheet.rowHeaderAutoText=sheetSettings.rowHeaderAutoText}if(typeof(sheetSettings.colHeaderAutoText)!==const_undefined){sheet.colHeaderAutoText=sheetSettings.colHeaderAutoText}if(typeof(sheetSettings.rowHeaderAutoTextIndex)!==const_undefined){sheet.rowHeaderAutoTextIndex=sheetSettings.rowHeaderAutoTextIndex}if(typeof(sheetSettings.colHeaderAutoTextIndex)!==const_undefined){sheet.colHeaderAutoTextIndex=sheetSettings.colHeaderAutoTextIndex}if(typeof(sheetSettings.rowHeaderVisible)!==const_undefined){sheet.rowHeaderVisible=sheetSettings.rowHeaderVisible}if(typeof(sheetSettings.colHeaderVisible)!==const_undefined){sheet.colHeaderVisible=sheetSettings.colHeaderVisible}if(typeof(sheetSettings.rowHeaderColCount)!==const_undefined){sheet.setColumnCount(sheetSettings.rowHeaderColCount,2)}if(typeof(sheetSettings.colHeaderRowCount)!==const_undefined){sheet.setRowCount(sheetSettings.colHeaderRowCount,1)}if(sheetSettings.rowHeaderData){sheet._rowHeaderModel.fromJSON(sheetSettings.rowHeaderData)}if(sheetSettings.colHeaderData){sheet._colHeaderModel.fromJSON(sheetSettings.colHeaderData)}if(sheetSettings.rowHeaderSpan){sheet._rowHeaderSpanModel.fromJSON(sheetSettings.rowHeaderSpan)}if(sheetSettings.colHeaderSpan){sheet._colHeaderSpanModel.fromJSON(sheetSettings.colHeaderSpan)}if(sheetSettings.rowHeaderColInfos){sheet._rowHeaderColInfos=sheetSettings.rowHeaderColInfos}if(sheetSettings.colHeaderRowInfos){sheet._colHeaderRowInfos=sheetSettings.colHeaderRowInfos}if(typeof sheetSettings._zoomFactor!==const_undefined||typeof sheetSettings.zoomFactor!==const_undefined){sheet._zoomFactor=typeof sheetSettings.zoomFactor===const_undefined?sheetSettings._zoomFactor:sheetSettings.zoomFactor}if(sheetSettings.spans){sheet._spanModel.fromJSON(sheetSettings.spans)}if(sheetSettings.selections){sheet._clearSelectionImp();sheet._selectionModel.fromJSON(sheetSettings.selections)}sheet.referenceStyle(0);if(sheetSettings.data){sheet._dataModel.fromJSON(sheetSettings.data);var data=sheetSettings.data.dataTable;if(setFormulaDirectly&&data){for(var j in data){if(typeof(j)!==const_function){for(var k in data[j]){if(typeof(k)!==const_function){var node=data[j][k];var formula=node.formula;if(formula){if(node.arrayInfo){sheet._setArrayFormulaCore(parseInt(j,10),parseInt(k,10),parseInt(node.arrayInfo.rowCount,10),parseInt(node.arrayInfo.colCount,10),formula,true)}else
{sheet._setFormulaCore(parseInt(j,10),parseInt(k,10),formula,true)}}}}}}}}if(setFormulaDirectly&&sheetSettings.sparklineGroupManager){var spm=sheet._sparklineGroupManager;if(spm){spm.fromJSON(sheetSettings.sparklineGroupManager);var groups=spm.groups();var model=sheet._getModel(),sparklines,sparkline;for(var i=0;i<groups.length;i++){sparklines=groups[i]._innerList;for(var j1=0;j1<sparklines.length;j1++){sparkline=sparklines[j1];model.setSparkline(sparkline.row,sparkline.column,sparkline)}}}}if(sheetSettings.commentManager){sheet._commentManager.fromJSON(sheetSettings.commentManager)}if(sheetSettings.theme){var st=sheetSettings.theme;if(typeof st==="string"||typeof st===const_undefined){sheet.currentTheme(st)}else
{var tc=st.themeColor?st.themeColor:st._themeColor;var tcColorList=tc.colorList?tc.colorList:tc._colorList;var tcName=tc.name?tc.name:tc._name;var BACKCOLOR1=0,BACKCOLOR2=1,TEXTCOLOR1=2,TEXTCOLOR2=3,ACCENT1=4,ACCENT2=5,ACCENT3=6,ACCENT4=7,ACCENT5=8,ACCENT6=9,HYPERLINK=10,FHYPERLINK=11;var text1=tcColorList[TEXTCOLOR1],text2=tcColorList[TEXTCOLOR2],background1=tcColorList[BACKCOLOR1],background2=tcColorList[BACKCOLOR2],accent1=tcColorList[ACCENT1],accent2=tcColorList[ACCENT2],accent3=tcColorList[ACCENT3],accent4=tcColorList[ACCENT4],accent5=tcColorList[ACCENT5],accent6=tcColorList[ACCENT6],hyperlink=tcColorList[HYPERLINK],followedHyperlink=tcColorList[FHYPERLINK];var themeColor=new spread.ThemeColor(tcName,new spread._Color(text1.a,text1.r,text1.g,text1.b),new spread._Color(text2.a,text2.r,text2.g,text2.b),new spread._Color(background1.a,background1.r,background1.g,background1.b),new spread._Color(background2.a,background2.r,background2.g,background2.b),new spread._Color(accent1.a,accent1.r,accent1.g,accent1.b),new spread._Color(accent2.a,accent2.r,accent2.g,accent2.b),new spread._Color(accent3.a,accent3.r,accent3.g,accent3.b),new spread._Color(accent4.a,accent4.r,accent4.g,accent4.b),new spread._Color(accent5.a,accent5.r,accent5.g,accent5.b),new spread._Color(accent6.a,accent6.r,accent6.g,accent6.b),new spread._Color(hyperlink.a,hyperlink.r,hyperlink.g,hyperlink.b),new spread._Color(followedHyperlink.a,followedHyperlink.r,followedHyperlink.g,followedHyperlink.b));var theme=new spread.SpreadTheme(st.name?st.name:st._name,themeColor,st.headingFont?st.headingFont:st._headingFont,st.bodyFont?st.bodyFont:st._bodyFont);sheet.currentTheme(theme)}}if(typeof(sheetSettings.showRowRangeGroup)!==const_undefined){sheet._showRowRangeGroup=sheetSettings.showRowRangeGroup}if(typeof(sheetSettings.showColumnRangeGroup)!==const_undefined){sheet._showColumnRangeGroup=sheetSettings.showColumnRangeGroup}if(sheetSettings.rowRangeGroup){if(sheet.rowRangeGroup){sheet.rowRangeGroup.fromJSON(sheetSettings.rowRangeGroup)}}if(sheetSettings.colRangeGroup){if(sheet.colRangeGroup){sheet.colRangeGroup.fromJSON(sheetSettings.colRangeGroup)}}if(sheetSettings.rowFilter&&spread.features.filter){var drf=new spread.HideRowFilter;sheet._rowFilter=drf;drf.sheet=sheet;drf.fromJSON(sheetSettings.rowFilter)}if(sheetSettings.conditionalFormats&&spread.features.conditionalFormat){sheet.getConditionalFormats().fromJSON(sheetSettings.conditionalFormats)}if(sheetSettings.sheetTabColor){sheet.sheetTabColor(sheetSettings.sheetTabColor)}if(sheetSettings.frozenlineColor){sheet.frozenlineColor(sheetSettings.frozenlineColor)}if(typeof(sheetSettings.clipBoardOptions)!==const_undefined){sheet._clipBoardOptions=sheetSettings.clipBoardOptions}if(typeof(sheetSettings.isProtected)!==const_undefined){sheet.isProtected=sheetSettings.isProtected}if(sheetSettings.borderColor){sheet.borderColor=sheetSettings.borderColor}if(typeof(sheetSettings.borderWidth)!==const_undefined){sheet.borderWidth=sheetSettings.borderWidth}if(typeof(sheetSettings.allowDragDrop)!==const_undefined){sheet._allowDragDrop=sheetSettings.allowDragDrop}if(typeof(sheetSettings.allowDragFill)!==const_undefined){sheet._allowDragFill=sheetSettings.allowDragFill}if(typeof(sheetSettings.allowUndo)!==const_undefined){sheet.allowUndo(sheetSettings.allowUndo)}if(typeof(sheetSettings.allowEditorReservedLocations)!==const_undefined){sheet.allowEditorReservedLocations(sheetSettings.allowEditorReservedLocations)}if(setFormulaDirectly&&sheetSettings.names){for(var n=0;n<sheetSettings.names.length;n++){var ni=sheetSettings.names[n];sheet._addCustomNameCore(ni.name,ni.formula,ni.row,ni.col,true)}sheet._rebuildCalcNodes()}sheet._namedStyles={};if(sheetSettings.namedStyles){for(var i=0;i<sheetSettings.namedStyles.length;i++){var item=sheetSettings.namedStyles[i];var style=new spread.Style;style.copyFrom(item);if(typeof(item.validator)!==const_undefined){var dv;if(spread.features.dataValidator){dv=new wijmo.spread.DefaultDataValidator;dv.fromJSON(item.validator)}style.validator=dv}sheet._addNamedStyleImp(style,false)}}if(sheetSettings.selectionBackColor){sheet.selectionBackColor(sheetSettings.selectionBackColor)}if(sheetSettings.selectionBorderColor){sheet.selectionBorderColor(sheetSettings.selectionBorderColor)}if(typeof(sheetSettings.tableManager)!==const_undefined){if(sheet._tableManager){sheet._tableManager.fromJSON(sheetSettings.tableManager)}}if(typeof(sheetSettings.floatingObjectArray)!==const_undefined){if(sheet._floatingObjectArray){sheet._floatingObjectArray.fromJSON(sheetSettings.floatingObjectArray)}}if(setFormulaDirectly&&typeof(sheetSettings.referenceStyle)!==const_undefined){sheet.referenceStyle(sheetSettings.referenceStyle)}if(typeof(sheetSettings.visible)!==const_undefined){sheet._visible=sheetSettings.visible}}finally
{sheet.isPaintSuspended(oldState)}};Sheet.prototype.formulaFromJSON=function(sheetSettings){var sheet=this;if(typeof(sheetSettings.referenceStyle)!==const_undefined){sheet.referenceStyle(sheetSettings.referenceStyle)}var sheetSettingsNames=sheetSettings.names;if(sheetSettingsNames){for(var n=0;n<sheetSettingsNames.length;n++){var ni=sheetSettingsNames[n];sheet._addCustomNameCore(ni.name,ni.formula,ni.row,ni.col,true)}}var sheetSettingsData=sheetSettings.data;if(sheetSettingsData){var data=sheetSettingsData.dataTable;if(data){for(var j in data){if(typeof(j)!==const_function){for(var k in data[j]){if(typeof(k)!==const_function){var node=data[j][k];var formula=node.formula;if(formula){if(node.arrayInfo){sheet._setArrayFormulaCore(parseInt(j,10),parseInt(k,10),parseInt(node.arrayInfo.rowCount,10),parseInt(node.arrayInfo.colCount,10),formula,true)}else
{sheet._setFormulaCore(parseInt(j,10),parseInt(k,10),formula,true)}}}}}}}}var sparklineGroupManager=sheetSettings.sparklineGroupManager;if(sparklineGroupManager){var spm=sheet._sparklineGroupManager;if(spm){spm.fromJSON(sparklineGroupManager);var groups=spm.groups();var model=sheet._getModel(),sparklines,sparkline;for(var i=0;i<groups.length;i++){sparklines=groups[i]._innerList;for(var j1=0;j1<sparklines.length;j1++){sparkline=sparklines[j1];model.setSparkline(sparkline.row,sparkline.column,sparkline)}}}}};Sheet.prototype._toArray=function(arrayObj,length){if(!arrayObj){return keyword_null}var array=[];for(var i=0;i<length;i++){if(arrayObj[i]!==keyword_undefined){array[i]=arrayObj[i]}}return array};Sheet.prototype.isPaintSuspended=function(value){var self=this;if(arguments.length===0){return self._paintSuspended}else
{if(self._paintSuspended!==value){self._paintSuspended=value;if(!value&&self._layoutSuspended<=0&&(!self.parent||self.parent.getActiveSheet&&self.parent.getActiveSheet()===self)){self.invalidateLayout();self.repaint()}}return self}};Sheet.prototype.getName=function(){return this._name};Sheet.prototype.setName=function(name){var self=this,parent=self.parent;if(!self._isValidSheetName(name)){throw spread.SR.Exp_NotSupport;}self._name=name;if(parent&&parent._doTabHSResize){parent._doTabHSResize()}};Sheet.prototype.visible=function(value){var self=this;if(arguments.length==0){return self._visible}self._visible=value;var parent=self.parent;if(!parent){return}var sheets=parent.sheets;var sheetCount=sheets.length;var index=spread.util.inArray(self,sheets);var activeSheetIndex=parent.getActiveSheetIndex();if(index==-1){return}if(value){if(activeSheetIndex<0){parent.setActiveSheetIndex(index)}else
{parent._doTabHSResize()}}else
{if(index===activeSheetIndex){var n=index+1;while(n<sheetCount&&!sheets[n]._visible){n++}if(n>=sheetCount){n=index-1;while(n>=0&&!sheets[n]._visible){n--}}if(n!==-1&&n<parent._tab._firstTab){parent._tab._firstTab=n}parent.setActiveSheetIndex(n)}else
{parent._doTabHSResize()}}return self};Sheet.prototype.allowCellOverflow=function(value){var self=this;if(arguments.length===0){return self._allowCellOverflow}return self._bindToAutoRefresh(function(value){self._allowCellOverflow=value;return self})(value)};Sheet.prototype.allowUndo=function(value){var self=this;if(arguments.length===0){return self._allowUndo}self._allowUndo=value;var undoManager=self.undoManager();if(undoManager){undoManager._allowUndo=value}return self};Sheet.prototype.allowEditorReservedLocations=function(value){if(arguments.length===0){return this._allowEditorReservedLocations}this._allowEditorReservedLocations=value;return this};Sheet.prototype.sheetTabColor=function(value){var self=this,parent=self.parent;if(arguments.length===0){return self._sheetTabColor}self._sheetTabColor=value;if(parent&&parent._doTabHSResize){parent._doTabHSResize()}return self};Sheet.prototype.frozenlineColor=function(value){var self=this;if(arguments.length===0){return self._frozenlineColor}return self._bindToAutoRefresh(function(value){if(value){self._frozenlineColor=value}return self})(value)};Sheet.prototype.addRows=function(row,count){if(count<=0){return}var self=this;var ds=self.getDataSource();if(ds&&spread._BindingManager.isDataViewSource(ds)){if(!ds.canAdd||!ds.canAdd()){return}row=self.getRowCount()}var oldState=self.isPaintSuspended();self.isPaintSuspended(true);try
{if(row<0||row>self.getRowCount()){row=self.getRowCount()}var sheetSource=self._getSheetSource();if(sheetSource){if(!self._checkArrayFormula(row,0,0,self.getColumnCount())){return}sheetSource.onBeforeAddRemoveRows(row)}var m=self._getModel();m.addElements(self._rowInfos,self.getRowCount(),row,count);m.addRows(row,count);var cutCopyIndicator=self._cutCopyIndicatorManager;if(cutCopyIndicator){cutCopyIndicator.addRows()}var bm=self._bindingManager;if(bm){bm.addItems(row,count)}var calc=self._getCalcModel();if(calc){calc.addRows(row,count)}var rm=self._getModel(2);rm.addRows(row,count);var sm=self._getSpanModel(2);sm.addRows(row,count);sm=self._getSpanModel();sm.addRows(row,count);var rowFilter=self._rowFilter;if(rowFilter){rowFilter._addRows(row,count)}var rowRangeGroup=self.rowRangeGroup;if(rowRangeGroup){rowRangeGroup._add(row,count)}var sparklineGroupManager=self._sparklineGroupManager;if(sparklineGroupManager){sparklineGroupManager._addRows(row,count)}var conditionalFormats=self._conditionalFormats;if(conditionalFormats){conditionalFormats._addRows(row,count)}var tableManager=self._tableManager;if(tableManager){tableManager.addRows(row,count)}if(sheetSource){sheetSource.onAfterAddRows(row,count)}var floatingObjectArray=self._floatingObjectArray;if(floatingObjectArray&&floatingObjectArray.length>0){floatingObjectArray.addRows(row,count)}var commentManager=self._commentManager;if(commentManager){commentManager.addRows(row,count)}self._needSyncScrollbarSize=true}finally
{self.isPaintSuspended(oldState)}};Sheet.prototype._onDataDeleted=function(event){};Sheet.prototype.deleteRows=function(row,count){var self=this;if(0>row||row>=self.getRowCount()||count<=0){return}var ds=self.getDataSource();if(ds&&spread._BindingManager.isDataViewSource(ds)){if(!ds.canRemove||!ds.canRemove()){return}}var oldState=self.isPaintSuspended();self.isPaintSuspended(true);try
{var sheetSource=self._getSheetSource();if(sheetSource){if(!self._checkArrayFormula(row,0,count,self.getColumnCount())){return}sheetSource.onBeforeAddRemoveRows(row)}var m=self._getModel();if(self.autoUpdate&&self.dataContext&&self.dataContext.remove){if(ds&&ds.length>0){self._dataDeleteDelegate=function(event){return self._onDataDeleted(event)};var n=row;if(n>=0){var item=self.getDataItem(n);$.ajax({url:self.dataContext.remove,type:ajax_Type,data:JSON.stringify(item),dataType:ajax_DataType,contentType:ajax_MIME,success:self._dataDeleteDelegate})}}}if(!self.deletedRows){self.deletedRows=[]}var bm=self._bindingManager;if(bm){var dataLength=bm.getRowCount();for(var i=0;i<count&&row+i<m.rowCount;i++){var d=keyword_null;if(row+i<dataLength){d=bm.getDataItem(row+i)}var k=keyword_null;if(m.dataTable&&m.dataTable[row+i]){k=m.dataTable[row+i].key}self.deletedRows.push({row:row+i,data:d,key:k})}}m.deleteElements(self._rowInfos,self.getRowCount(),row,count);m.deleteRows(row,count);if(bm){bm.removeItems(row,count)}var cutCopyIndicator=self._cutCopyIndicatorManager;if(cutCopyIndicator){cutCopyIndicator.deleteRows()}var calc=self._getCalcModel();if(calc){calc.deleteRows(row,count)}var rm=self._getModel(2);rm.deleteRows(row,count);var sm=self._getSpanModel(2);sm.removeRows(row,count);sm=self._getSpanModel();sm.removeRows(row,count);var rowFilter=self._rowFilter;if(rowFilter){rowFilter._removeRows(row,count)}var rowRangeGroup=self.rowRangeGroup;if(rowRangeGroup){rowRangeGroup._remove(row,count)}var sparklineGroupManager=self._sparklineGroupManager;if(sparklineGroupManager){sparklineGroupManager._removeRows(row,count)}var conditionalFormats=self._conditionalFormats;if(conditionalFormats){conditionalFormats._removeRows(row,count)}var tableManager=self._tableManager;if(tableManager){tableManager.removeRows(row,count)}var top=self._scrollTopRow;if(top>=0){var newTop=-1;for(var t=top;t>=self.frozenRowCount;t--){if(self.getRowVisible(t)&&self._getZoomRowHeight(t)>0){newTop=t;break}}if(newTop===-1){newTop=0}if(top!==newTop){self._scrollTopRow=newTop;self._syncVScrollbarPosition();self._trigger(spread.Events.TopRowChanged,{sheet:self,sheetName:self._name,oldTopRow:top,newTopRow:newTop})}}if(sheetSource){sheetSource.onAfterRemoveRows(row,count)}var floatingObjectArray=self._floatingObjectArray;if(floatingObjectArray&&floatingObjectArray.length>0){floatingObjectArray.removeRows(row,count)}var commentManager=self._commentManager;if(commentManager){commentManager.removeRows(row,count)}self._needSyncScrollbarSize=true}finally
{self.isPaintSuspended(oldState)}};Sheet.prototype.addColumns=function(col,count){if(count<=0){return}var self=this;self._bindToAutoRefresh(function(col,count){if(col<0||col>self.getColumnCount()){col=self.getColumnCount()}if(self.parent&&self.parent.gcSpreadsheet){return}var sheetSource=self._getSheetSource();if(sheetSource){if(!self._checkArrayFormula(0,col,self.getRowCount(),0)){return}sheetSource.onBeforeAddRemoveColumns(col)}var m=self._getModel();m.addElements(self._colInfos,self.getColumnCount(),col,count);m.addColumns(col,count);var cutCopyIndicator=self._cutCopyIndicatorManager;if(cutCopyIndicator){cutCopyIndicator.addColumns()}var calc=self._getCalcModel();if(calc){calc.addColumns(col,count)}var cm=self._getModel(1);cm.addColumns(col,count);var sm=self._getSpanModel(1);sm.addColumns(col,count);sm=self._getSpanModel();sm.addColumns(col,count);var rowFilter=self._rowFilter;if(rowFilter){rowFilter._addColumns(col,count)}var colRangeGroup=self.colRangeGroup;if(colRangeGroup){colRangeGroup._add(col,count)}var sparklineGroupManager=self._sparklineGroupManager;if(sparklineGroupManager){sparklineGroupManager._addColumns(col,count)}var conditionalFormats=self._conditionalFormats;if(conditionalFormats){conditionalFormats._addColumns(col,count)}var tableManager=self._tableManager;if(tableManager){tableManager.addColumns(col,count)}if(sheetSource){sheetSource.onAfterAddColumns(col,count)}var floatingObjectArray=self._floatingObjectArray;if(floatingObjectArray&&floatingObjectArray.length>0){floatingObjectArray.addColumns(col,count)}var commentManager=self._commentManager;if(commentManager){commentManager.addColumns(col,count)}self._needSyncScrollbarSize=true})(col,count)};Sheet.prototype.deleteColumns=function(col,count){var self=this;if(0>col||col>=self.getColumnCount()||count<=0){return}if(self.parent&&self.parent.gcSpreadsheet){return}self._bindToAutoRefresh(function(col,count){var sheetSource=self._getSheetSource();if(sheetSource){if(!self._checkArrayFormula(0,col,self.getRowCount(),count)){return}sheetSource.onBeforeAddRemoveColumns(col)}var m=self._getModel();m.deleteElements(self._colInfos,self.getColumnCount(),col,count);m.deleteColumns(col,count);var cutCopyIndicator=self._cutCopyIndicatorManager;if(cutCopyIndicator){cutCopyIndicator.deleteColumns()}var calc=self._getCalcModel();if(calc){calc.deleteColumns(col,count)}var cm=self._getModel(1);cm.deleteColumns(col,count);var sm=self._getSpanModel(1);sm.removeColumns(col,count);sm=self._getSpanModel(3);sm.removeColumns(col,count);var rowFilter=self._rowFilter;if(rowFilter){rowFilter._removeColumns(col,count)}var colRangeGroup=self.colRangeGroup;if(colRangeGroup){colRangeGroup._remove(col,count)}var sparklineGroupManager=self._sparklineGroupManager;if(sparklineGroupManager){sparklineGroupManager._removeColumns(col,count)}var conditionalFormats=self._conditionalFormats;if(conditionalFormats){conditionalFormats._removeColumns(col,count)}var tableManager=self._tableManager;if(tableManager){tableManager.removeColumns(col,count)}var left=self._scrollLeftCol;if(left>=0){var newLeft=-1;for(var t=left;t>=self.frozenColCount;t--){if(self.getColumnVisible(t)&&self._getZoomColumnWidth(t)>0){newLeft=t;break}}if(newLeft===-1){newLeft=0}if(left!==newLeft){self._trigger(spread.Events.LeftColumnChanged,{sheet:self,sheetName:self._name,oldLeftCol:left,newLeftCol:newLeft});self._scrollLeftCol=newLeft;self._syncHScollbarPosition()}}if(sheetSource){sheetSource.onAfterRemoveColumns(col,count)}var floatingObjectArray=self._floatingObjectArray;if(floatingObjectArray&&floatingObjectArray.length>0){floatingObjectArray.removeColumns(col,count)}var commentManager=self._commentManager;if(commentManager){commentManager.removeColumns(col,count)}self._needSyncScrollbarSize=true})(col,count)};Sheet.prototype.setFrozenCount=function(rowCount,colCount){if(typeof(rowCount)===const_undefined||rowCount===keyword_null||rowCount<0||isNaN(rowCount)){rowCount=0}if(typeof(colCount)===const_undefined||colCount===keyword_null||colCount<0||isNaN(colCount)){colCount=0}var self=this;if(self.frozenRowCount===rowCount&&self.frozenColCount===colCount){return}self._bindToAutoRefresh(function(rowCount,colCount){var invalid=false;if(self.frozenRowCount!==rowCount){self._scrollTopRow+=rowCount-self.frozenRowCount;self.frozenRowCount=rowCount;invalid=true}if(self.frozenColCount!==colCount){self._scrollLeftCol+=colCount-self.frozenColCount;self.frozenColCount=colCount;invalid=true}if(invalid){self._needSyncScrollbarSize=true}})(rowCount,colCount)};Sheet.prototype.setFrozenColumnCount=function(colCount){if(typeof(colCount)===const_undefined||colCount===keyword_null||colCount<0||isNaN(colCount)){colCount=0}var self=this;if(self.frozenColCount===colCount){return}self._bindToAutoRefresh(function(colCount){self._scrollLeftCol+=colCount-self.frozenColCount;self.frozenColCount=colCount;self._needSyncScrollbarSize=true})(colCount)};Sheet.prototype.setFrozenRowCount=function(rowCount){if(typeof(rowCount)===const_undefined||rowCount===keyword_null||rowCount<0||isNaN(rowCount)){rowCount=0}var self=this;if(self.frozenRowCount===rowCount){return}self._bindToAutoRefresh(function(rowCount){self._scrollTopRow+=rowCount-self.frozenRowCount;self.frozenRowCount=rowCount;self._needSyncScrollbarSize=true})(rowCount)};Sheet.prototype.setFrozenTrailingRowCount=function(rowCount){if(typeof(rowCount)===const_undefined||rowCount===keyword_null||rowCount<0||isNaN(rowCount)){rowCount=0}var self=this;if(self._frozenTrailingRowCount===rowCount){return}self._bindToAutoRefresh(function(rowCount){self._frozenTrailingRowCount=rowCount;self._needSyncScrollbarSize=true})(rowCount)};Sheet.prototype.setFrozenTrailingColumnCount=function(colCount){if(colCount===keyword_undefined||colCount===keyword_null||colCount<0||isNaN(colCount)){colCount=0}var self=this;if(self._frozenTrailingColCount===colCount){return}self._bindToAutoRefresh(function(colCount){self._frozenTrailingColCount=colCount;self._needSyncScrollbarSize=true})(colCount)};Sheet.prototype.getRowCount=function(sheetArea){var m=this._getModel(sheetArea);return((m&&m.rowCount)||0)};Sheet.prototype.getColumnCount=function(sheetArea){var m=this._getModel(sheetArea);return((m&&m.colCount)||0)};Sheet.prototype.setRowCount=function(rowCount,sheetArea){rowCount=parseInt(rowCount,10);if(isNaN(rowCount)){return}var self=this;if(rowCount<0||rowCount===self.getRowCount(sheetArea)){return}self._bindToAutoRefresh(function(rowCount,sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}if(sheetArea===3||sheetArea===2){if(self._dataModel.rowCount>rowCount){self.deleteRows(rowCount,self._dataModel.rowCount-rowCount)}self._dataModel.rowCount=self._rowHeaderModel.rowCount=rowCount;if(self._calcDataModel){self._calcDataModel.rowCount=rowCount}if(self.frozenRowCount>rowCount){self.setFrozenRowCount(rowCount)}if(!self._rowInfos){self._rowInfos={}}if(self.rowRangeGroup){self.rowRangeGroup._setCount(rowCount)}}else if(sheetArea===1){if(!self._colHeaderRowInfos){self._colHeaderRowInfos={}}var cm=self._colHeaderModel;if(cm.rowCount>rowCount){cm.deleteElements(self._colHeaderRowInfos,cm.rowCount,rowCount,cm.rowCount-rowCount)}cm.rowCount=rowCount}self._needSyncScrollbarSize=true;if(self._activeRowIndex>=rowCount&&(sheetArea===3||sheetArea===2)){self._clearSelectionImp();self._setActiveCellImp(-1,-1,self.activeRowViewportIndex,self.activeColViewportIndex)}})(rowCount,sheetArea)};Sheet.prototype.setColumnCount=function(colCount,sheetArea){colCount=parseInt(colCount,10);if(isNaN(colCount)){return}var self=this;if(colCount<0||colCount===self.getColumnCount(sheetArea)){return}self._bindToAutoRefresh(function(colCount,sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}if(sheetArea===3||sheetArea===1){if(self._dataModel.colCount>colCount){self.deleteColumns(colCount,self._dataModel.colCount-colCount)}self._dataModel.colCount=self._colHeaderModel.colCount=self._colFooterModel.colCount=colCount;if(self._calcDataModel){self._calcDataModel.colCount=colCount}if(self.frozenColCount>colCount){self.setFrozenColumnCount(colCount)}if(!self._colInfos){self._colInfos={}}if(self.colRangeGroup){self.colRangeGroup._setCount(colCount)}}else if(sheetArea===2){if(!self._rowHeaderColInfos){self._rowHeaderColInfos={}}var rm=self._rowHeaderModel;if(rm.colCount>colCount){rm.deleteElements(self._rowHeaderColInfos,rm.colCount,colCount,rm.colCount-colCount)}rm.colCount=colCount}self._needSyncScrollbarSize=true;if(self._activeColIndex>=colCount&&(sheetArea===3||sheetArea===1)){self._clearSelectionImp();self._setActiveCellImp(-1,-1,self.activeRowViewportIndex,self.activeColViewportIndex)}})(colCount,sheetArea)};Sheet.prototype.getText=function(row,col,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var self=this,v=self.getValue(row,col,sheetArea);if(v===keyword_null||typeof(v)===const_undefined){return""}else
{var ct=self.getCellType(row,col,sheetArea),style=self.getActualStyle(row,col,sheetArea),fmt=style.formatter?style.formatter:style._autoFormatter,context={sheet:self,row:row,col:col,sheetArea:sheetArea};v=ct.format(v,fmt,context);return v}};Sheet.prototype.setText=function(row,col,value,sheetArea){var self=this;self._bindToAutoRefresh(function(row,col,value,sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}var t=value;var ct=self.getCellType(row,col,sheetArea);var formatStr=self.getCell(row,col,sheetArea).formatter();if(ct&&formatStr){var context={sheet:self,row:row,col:col,sheetArea:sheetArea};t=ct.parse(value,formatStr,context)}self.setValue(row,col,t,sheetArea)})(row,col,value,sheetArea)};Sheet.prototype.getValue=function(row,col,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var self=this;var m=self._getModel(sheetArea);if(!m){return keyword_null}var t=self._getValueImp(m,row,col,sheetArea);var index;if(sheetArea===1){if(typeof(t)===const_undefined||t===keyword_null){var ds=self.getDataSource();if(ds){var ko=window.ko;if(spread._BindingManager.isDataViewSource(ds)||(ds.length>0)||(ko&&ko.isObservable(ds))){var ci=self._colInfos[col],colHeaderAutoTextIndex=self.colHeaderAutoTextIndex;if(ci&&((colHeaderAutoTextIndex>=0&&row===colHeaderAutoTextIndex)||(colHeaderAutoTextIndex===-1&&row===(m.rowCount-1)))){t=ci.displayName||ci.name}}}if(typeof(t)===const_undefined||t===keyword_null){index=self.colHeaderAutoTextIndex;if(index<0||index>=m.rowCount){index=m.rowCount-1}if(row===index){var colHeaderAutoText=self.colHeaderAutoText;if(colHeaderAutoText===2){t=self._indexToLetters(col+1)}else if(colHeaderAutoText===1){t=col+1}}}}}else if(sheetArea===2){if(typeof(t)===const_undefined||t===keyword_null){index=self.rowHeaderAutoTextIndex;if(index<0||index>=m.colCount){index=m.colCount-1}if(col===index){var rowHeaderAutoText=self.rowHeaderAutoText;if(rowHeaderAutoText===2){t=self._indexToLetters(row+1)}else if(rowHeaderAutoText===1){t=row+1}}}}return t};Sheet.prototype._getCurrentValue=function(row,col){var sheet=this;if(sheet._isValidatingCell&&sheet._validatingRow===row&&sheet._validatingColumn===col){return sheet._validatingValue}else
{return sheet.getValue(row,col)}};Sheet.prototype._getValuesForCalc=function(result,row,col,rowCount,colCount,startRow,startCol){var self=this;var m=self._getModel();if(!m){return}var maxR=self.getRowCount();var maxC=self.getColumnCount();var t=self._getValueImp(m,row,col,3);var r,c;for(var i=0;i<rowCount;i++){r=(i+row)%maxR;for(var j=0;j<colCount;j++){c=(j+col)%maxC;result[0][startRow+i][startCol+j]=self._getValueImp(m,r,c,3)}}if(self._isValidatingCell&&self._validatingRow>=row&&self._validatingRow<row+rowCount&&self._validatingColumn>=col&&self._validatingColumn<col+colCount){result[0][startRow+self._validatingRow][startCol+self._validatingColumn]=self._validatingValue}};Sheet.prototype.setValue=function(row,col,value,sheetArea,ignoreRecalc){this._setValueInternal(row,col,value,sheetArea,ignoreRecalc);this.invalidate()};Sheet.prototype._setValueInternal=function(row,col,value,sheetArea,ignoreRecalc){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var self=this;var m=self._getModel(sheetArea);if(!m){return}var rowCount=m.rowCount,colCount=m.colCount;if(row<0||row>=rowCount||col<0||col>=colCount){return}var isViewport=(sheetArea===3);if(typeof(value)!==const_undefined&&value!==keyword_null&&value.constructor===Date){value="/OADate("+new spread._DateTimeHelper(value).toOADate()+")/"}var tm=self._tableManager;if(isViewport&&tm&&tm._tableList.length>0){var table=tm.find(row,col);if(table){if(table.showHeader()&&row===table.headerIndex()){if(table._hasColumnName(value)){return}table._setHeader(row,col,value)}else if(table.showFooter()&&row===table.footerIndex()){table._setFooterValue(row,col,value)}}}var oldValue,isEventsSuspended=(self._eventHandler._eventSuspended>0);if(!isEventsSuspended){oldValue=self._getValueImp(m,row,col,sheetArea)}if(isViewport){var valueSet=false;var bm=self._bindingManager;if(bm&&bm._dataSource){valueSet=bm.setValue(row,col,value)}if(!valueSet||self.checkingChanges){m.setValue(row,col,value);self._activeRowDirty=true}}else
{m.setValue(row,col,value)}if(isViewport&&!ignoreRecalc){self._recalcCell(m,row,col)}var conditionalFormats=self._conditionalFormats;if(conditionalFormats){conditionalFormats._clearCache()}if(!isEventsSuspended&&oldValue!==value){self._trigger(spread.Events.CellChanged,{sheet:self,sheetName:self._name,row:row,col:col,sheetArea:sheetArea,propertyName:_value,_oldValue:oldValue})}};Sheet.prototype.sortRange=function(row,column,rowCount,columnCount,byRows,sortInfo){var self=this;return self._bindToAutoRefresh(function(row,column,rowCount,columnCount,byRows,sortInfo){var oldState=self.isPaintSuspended();self.isPaintSuspended(true);self.suspendEvent();self.suspendCalcService();try
{var spans=self.getSpans(new spread.Range(row,column,rowCount,columnCount));if(spans&&spans.length>0){return false}var rowcnt=self.getRowCount();var colcnt=self.getColumnCount();var ncol,nrow,modelrow,modelcol,modelrow2,modelcol2;var array,data1,data2,comment1,comment2;if(row===-1){row=0}if(rowCount===-1){rowCount=rowcnt}if(column===-1){column=0}if(columnCount===-1){columnCount=colcnt}if(row<0||row>=rowcnt||column<0||column>=colcnt||rowCount<0||row+rowCount>rowcnt||columnCount<0||column+columnCount>colcnt||!sortInfo){return false}array=self._quickSort(row,column,rowCount,columnCount,byRows,sortInfo);if(array){var model=self._getModel(),calcModel=self._getCalcModel(),source=self._getSheetSource(),viewIndex,expr,cellCalc;if(byRows){for(nrow=row;nrow<row+rowCount;nrow++){viewIndex=self._getSwapIndex(array,row,nrow);if(nrow===viewIndex){continue}modelrow=nrow;modelrow2=viewIndex;for(ncol=column;ncol<column+columnCount;ncol++){modelcol=ncol;data1=self.getValue(modelrow,modelcol);data2=self.getValue(modelrow2,modelcol);comment1=self.getComment(modelrow,modelcol);comment2=self.getComment(modelrow2,modelcol);if(calcModel&&source){var cell1Calc=source._getCellCalc(modelrow,modelcol,false);if(cell1Calc&&cell1Calc.hasListeners()){cell1Calc.addListenersToAdjust()}var cell2Calc=source._getCellCalc(modelrow2,modelcol,false);if(cell2Calc&&cell2Calc.hasListeners()){cell2Calc.addListenersToAdjust()}calcModel.swapNode(modelrow,modelcol,modelrow2,modelcol);expr=staticMembers._copyExpression(calcModel.getExpr(modelrow,modelcol),modelrow,modelcol,0,0);calcModel.setFormula(modelrow,modelcol,expr);cellCalc=source._getCellCalc(modelrow,modelcol,!!expr);if(cellCalc){cellCalc.startListening()}expr=staticMembers._copyExpression(calcModel.getExpr(modelrow2,modelcol),modelrow2,modelcol,0,0);calcModel.setFormula(modelrow2,modelcol,expr);cellCalc=source._getCellCalc(modelrow2,modelcol,!!expr);if(cellCalc){cellCalc.startListening()}source._controller.adjustFormulasOnSwap(calcModel,modelrow,modelcol,calcModel,modelrow2,modelcol,1,1)}model.swapNode(modelrow,modelcol,modelrow2,modelcol);self.setComment(modelrow,modelcol,comment2);self.setComment(modelrow2,modelcol,comment1);self.setValue(modelrow,modelcol,data2);self.setValue(modelrow2,modelcol,data1)}}}else
{for(ncol=column;ncol<column+columnCount;ncol++){viewIndex=self._getSwapIndex(array,column,ncol);if(ncol===viewIndex){continue}modelcol=ncol;modelcol2=viewIndex;for(nrow=row;nrow<row+rowCount;nrow++){modelrow=nrow;data1=self.getValue(modelrow,modelcol);data2=self.getValue(modelrow,modelcol2);comment1=self.getComment(modelrow,modelcol);comment2=self.getComment(modelrow,modelcol2);if(calcModel&&source){var cell1Calc=source._getCellCalc(modelrow,modelcol,false);if(cell1Calc&&cell1Calc.hasListeners()){cell1Calc.addListenersToAdjust()}var cell2Calc=source._getCellCalc(modelrow,modelcol2,false);if(cell2Calc&&cell2Calc.hasListeners()){cell2Calc.addListenersToAdjust()}calcModel.swapNode(modelrow,modelcol,modelrow,modelcol2);expr=staticMembers._copyExpression(calcModel.getExpr(modelrow,modelcol),modelrow,modelcol,0,0);calcModel.setFormula(modelrow,modelcol,expr);cellCalc=source._getCellCalc(modelrow,modelcol,!!expr);if(cellCalc){cellCalc.startListening()}expr=staticMembers._copyExpression(calcModel.getExpr(modelrow,modelcol2),modelrow,modelcol2,0,0);calcModel.setFormula(modelrow,modelcol2,expr);cellCalc=source._getCellCalc(modelrow,modelcol2,!!expr);if(cellCalc){cellCalc.startListening()}source._controller.adjustFormulasOnSwap(calcModel,modelrow,modelcol,calcModel,modelrow,modelcol2,1,1)}model.swapNode(modelrow,modelcol,modelrow,modelcol2);self.setComment(modelrow,modelcol,comment2);self.setComment(modelrow,modelcol2,comment1);self.setValue(modelrow,modelcol,data2);self.setValue(modelrow,modelcol2,data1)}}}return true}return false}finally
{self.resumeCalcService();self.resumeEvent();self.isPaintSuspended(oldState);self._raiseRangeDataChanged(row,column,rowCount,columnCount)}})(row,column,rowCount,columnCount,byRows,sortInfo)};Sheet.prototype.getActualStyle=function(row,column,sheetArea,sheetOnly){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var self=this;var info,composedStyle=self.getCompositeStyle(row,column,sheetArea);if(sheetArea===3&&!sheetOnly){var f=composedStyle.formatter;if(f&&f.HasFormatedColor&&f.HasFormatedColor()){var clr={value:keyword_null};f.Format(self.getValue(row,column),clr);if(clr.value){info=new spread.Style;info.foreColor=clr.value}}var conditionalFormats=self._conditionalFormats;if(conditionalFormats&&conditionalFormats.count()>0){var rules=conditionalFormats.getRules(row,column),rulesLength=rules.length,rule,expected=keyword_null;if(rulesLength>0){if(!info){info=new spread.Style}rules.sort(function(a,b){return a.priority()-b.priority()});for(var n=0;n<rulesLength;n++){rule=rules[n];if(!rule){continue}if(rule.isScaleRule()){if(rule instanceof spread.TwoScaleRule||rule instanceof spread.ThreeScaleRule){expected=rule.evaluate(self,row,column,self.getValue(row,column,sheetArea));if(expected){info.backColor=expected}}}else
{expected=rule.evaluate(self,row,column,self.getValue(row,column,sheetArea));if(expected){info.compose(expected)}}if(rule.stopIfTrue()&&expected){break}}}}}if(info){info.compose(composedStyle)}else
{info=composedStyle}if(typeof(info.locked)===const_undefined||info.locked===keyword_null){info.locked=true}return info._normalize(self._currentTheme)};Sheet.prototype.getStyleProperty=function(row,col,property,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var self=this,s,parentName,temp,m=self._getModel(sheetArea);if(!m){return keyword_undefined}var result,hasResult=false;if(sheetArea===3){if(property==='foreColor'){var f=self.getStyleProperty(row,col,"formatter",sheetArea);if(f&&f.HasFormatedColor&&f.HasFormatedColor()){var clr={value:keyword_null};f.Format(self.getValue(row,col),clr);if(clr.value){result=clr.value;hasResult=true}}}var conditionalFormats=self._conditionalFormats;if(conditionalFormats&&conditionalFormats.count()>0){var rules=conditionalFormats.getRules(row,col),rulesLength=rules.length,rule,expected=keyword_null;if(rulesLength>0){rules.sort(function(a,b){return a.priority()-b.priority()});for(var n=0;n<rulesLength;n++){rule=rules[n];if(!rule){continue}if(rule.isScaleRule()){if(property==='backColor'){if(rule instanceof spread.TwoScaleRule||rule instanceof spread.ThreeScaleRule){expected=rule.evaluate(self,row,col,self.getValue(row,col,sheetArea));if(expected){result=expected;hasResult=true;break}}}}else
{expected=rule.evaluate(self,row,col,self.getValue(row,col,sheetArea));if(expected&&expected[property]!==keyword_undefined){result=expected[property];hasResult=true;break}}if(rule.stopIfTrue()&&expected){break}}}}}var level=0;while(!hasResult&&level<=4){if(level===0){s=m.getStyle(row,col)}else if(level===1){var tableManager=self._tableManager;if(tableManager&&tableManager.getCount()>0&&sheetArea===3){var table=tableManager.find(row,col);if(table){s=new spread.Style;table._compose(row,col,s)}}}else if(level===2){s=m.getStyle(row,-1)}else if(level===3){s=m.getStyle(-1,col)}else
{s=self.getDefaultStyle()}level++;if(!s){continue}if(s.charAt&&(typeof s==='string')){s=self._name2Style(s)}if(s[property]!==keyword_undefined){result=s[property];hasResult=true;break}parentName=s.parentName;while(parentName){temp=self._name2Style(parentName);if(!temp){break}if(temp[property]!==keyword_undefined){result=temp[property];hasResult=true;break}parentName=temp.parentName}}if(property==="locked"){return(result===keyword_undefined||result===keyword_null)?true:result}else if(hasResult){if(property==="foreColor"||property==="backColor"||property==="font"||property==="borderLeft"||property==="borderTop"||property==="borderRight"||property==="borderBottom"){s=new spread.Style;s[property]=result;if(property==="font"){var themeFont=self.getStyleProperty(row,col,"themeFont",sheetArea);s.themeFont=themeFont}s._normalize(self._currentTheme);result=s[property]}return result}return keyword_undefined};Sheet.prototype.getStyle=function(row,col,sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}var m=this._getModel(sheetArea);if(m){var result=m.getStyle(row,col);if(result instanceof spread.Style){return result}else if(typeof(result)==='string'){var namedStyle=this._name2Style(result);if(namedStyle!==keyword_null){var tmp=new spread.Style;tmp.compose(namedStyle);return tmp}}}return keyword_null};Sheet.prototype.addNamedStyle=function(style){this._addNamedStyleImp(style,true)};Sheet.prototype._addNamedStyleImp=function(style,refresh){if(style!==keyword_null&&style!==keyword_undefined){if(style.name===keyword_null||style.name===keyword_undefined||style.name===''){throw new Error(spread.SR.Exp_EmptyNamedStyle);}if(refresh){this._bindToAutoRefresh(function(style){var name=style.name.toUpperCase();this._namedStyles[name]=style})(style)}else
{var name=style.name.toUpperCase();this._namedStyles[name]=style}}};Sheet.prototype.getNamedStyle=function(name){var namedStyles=this._namedStyles;if(namedStyles&&name){name=name.toUpperCase();return(namedStyles[name]||keyword_null)}return keyword_null};Sheet.prototype.getNamedStyles=function(){var namedStylesClone=[],namedStyles=this._namedStyles;if(namedStyles){$.each(namedStyles,function(index,item){namedStylesClone.push(item)})}return namedStylesClone};Sheet.prototype.removeNamedStyle=function(name){var self=this;if(self._namedStyles&&name!==keyword_undefined&&name!=keyword_null&&name!==''){name=name.toUpperCase();if(self._namedStyles.hasOwnProperty(name)){delete self._namedStyles[name];self.invalidate()}}};Sheet.prototype.setStyle=function(row,col,value,sheetArea){this.setStyleObject(row,col,value,sheetArea);this.invalidate()};Sheet.prototype.getStyleName=function(row,col,sheetArea){var style=this.getStyleObject(row,col,sheetArea);if(style instanceof spread.Style){return style.name}else
{return style}};Sheet.prototype.setStyleName=function(row,col,value,sheetArea){if(typeof value==='string'){this.setStyleObject(row,col,value,sheetArea);this.invalidate()}};Sheet.prototype.getStyleObject=function(row,col,sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}var result=keyword_null;var m=this._getModel(sheetArea);if(m){result=m.getStyle(row,col);if(result!==keyword_undefined&&result!==keyword_null)return result}return keyword_null};Sheet.prototype.setStyleObject=function(row,col,value,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var self=this;var m=self._getModel(sheetArea);if(m){m.setStyle(row,col,value);if(value&&value.formatter&&spread.features.formatter){var formatter=value.formatter;if(formatter&&typeof(formatter.Init)===const_function){formatter.Init()}}var pn="[styleinfo]";if(row!==-1&&col!==-1){self._trigger(spread.Events.CellChanged,{sheet:self,sheetName:self._name,row:row,col:col,sheetArea:sheetArea,propertyName:pn})}else if(row!==-1&&col===-1){self._trigger(spread.Events.RowChanged,{sheet:self,sheetName:self._name,row:row,sheetArea:sheetArea,propertyName:pn})}else if(row===-1&&col!==-1){self._trigger(spread.Events.ColumnChanged,{sheet:self,sheetName:self._name,col:col,sheetArea:sheetArea,propertyName:pn})}}};Sheet.prototype.getDefaultStyle=function(sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var composedDefaultStyle=this._composedDefaultStyle,cachedStyle=composedDefaultStyle[sheetArea];if(cachedStyle){return cachedStyle}var m=this._getModel(sheetArea);if(m){var sheetDefStyle=m.getStyle(-1,-1);if(typeof(sheetDefStyle)==='string'){sheetDefStyle=this._name2Style(sheetDefStyle)}if(!sheetDefStyle){sheetDefStyle=new spread.Style;m.setStyle(-1,-1,sheetDefStyle)}var isHeader=(sheetArea===1||sheetArea===2);if(!sheetDefStyle.foreColor){sheetDefStyle.foreColor="#000000"}if(typeof(sheetDefStyle.hAlign)===const_undefined){sheetDefStyle.hAlign=isHeader?1:3}if(typeof(sheetDefStyle.vAlign)===const_undefined){sheetDefStyle.vAlign=isHeader?1:0}if(typeof(sheetDefStyle.imeMode)===const_undefined){sheetDefStyle.imeMode=1}composedDefaultStyle[sheetArea]=sheetDefStyle;return sheetDefStyle}return keyword_null};Sheet.prototype.setDefaultStyle=function(style,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var m=this._getModel(sheetArea);if(m){m.setStyle(-1,-1,style)}this._composedDefaultStyle[sheetArea]=keyword_null};Sheet.prototype._name2Style=function(name){var style=this.getNamedStyle(name);if(style){return style}var parent=this.parent;if(parent&&parent.getNamedStyle){return parent.getNamedStyle(name)}return keyword_null};Sheet.prototype.getCompositeStyle=function(row,column,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var self=this,destInfo=new spread.Style,temp,parentName,changed=false,m=self._getModel(sheetArea);if(m){var rowCount=m.rowCount,colCount=m.colCount,s;if(0<=row&&row<rowCount&&0<=column&&column<colCount){s=m.getStyle(row,column);if(s&&s.charAt){s=self._name2Style(s)}if(s){destInfo.compose(s,true);changed=true;parentName=s.parentName;while(parentName){temp=self._name2Style(parentName);if(!temp){break}destInfo.compose(temp);parentName=temp.parentName}}}var tableManager=self._tableManager;if(tableManager&&tableManager.getCount()>0&&sheetArea===3){var table=tableManager.find(row,column);if(table){table._compose(row,column,destInfo);changed=true}}if(0<=row&&row<rowCount){s=m.getStyle(row,-1);if(s&&s.charAt){s=self._name2Style(s)}if(s){destInfo.compose(s,!changed);changed=true;parentName=s.parentName;while(parentName){temp=self._name2Style(parentName);if(!temp){break}destInfo.compose(temp);parentName=temp.parentName}}}if(0<=column&&column<colCount){s=m.getStyle(-1,column);if(s&&s.charAt){s=self._name2Style(s)}if(s){destInfo.compose(s,!changed);changed=true;parentName=s.parentName;while(parentName){temp=self._name2Style(parentName);if(!temp){break}destInfo.compose(temp);parentName=temp.parentName}}}}var sheetInfo=self.getDefaultStyle(sheetArea);if(sheetInfo&&sheetInfo.charAt){sheetInfo=self._name2Style(sheetInfo)}if(sheetInfo){destInfo.compose(sheetInfo,!changed);parentName=sheetInfo.parentName;while(parentName){temp=self._name2Style(parentName);if(!temp){break}destInfo.compose(temp);parentName=temp.parentName}}return destInfo};Sheet.prototype.getCellType=function(row,col,sheetArea){return this.getStyleProperty(row,col,"cellType",sheetArea)||this.getDefaultCellType(sheetArea)};Sheet.prototype.getDefaultCellType=function(sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var defaultCellType=this._defaultCellType;if(!defaultCellType){defaultCellType=this._defaultCellType=new spread.TextCellType}if(sheetArea===3){return defaultCellType}else if(sheetArea===1){return new spread.ColumnHeaderCellType}else if(sheetArea===2){return new spread.RowHeaderCellType}else if(sheetArea===0){return new spread.CornerCellType}else
{return defaultCellType}};Sheet.prototype.setCellType=function(row,col,value,sheetArea){var style=this.getStyle(row,col,sheetArea);if(!style){style=new spread.Style}style.cellType=value;this.setStyle(row,col,style,sheetArea)};Sheet.prototype.getFormatter=function(row,col,sheetArea){return this.getStyleProperty(row,col,"formatter",sheetArea)};Sheet.prototype.setFormatter=function(row,col,value,sheetArea){var style=this.getStyle(row,col,sheetArea);if(!style){style=new spread.Style}style.formatter=value;this.setStyle(row,col,style,sheetArea)};Sheet.prototype.getDataValidator=function(row,col,sheetArea){return this.getStyleProperty(row,col,"validator",sheetArea)};Sheet.prototype.setDataValidator=function(row,col,value,sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}var self=this;var style=self.getStyle(row,col,sheetArea);if(!style){style=new spread.Style}style.validator=value;self.suspendEvent();self.setStyle(row,col,style,sheetArea);self.resumeEvent();if(spread.features.conditionalFormat&&value){if((value.condition instanceof spread.FormulaCondition)&&(value.condition._baseRow===keyword_undefined||value.condition._baseRow===keyword_null)){value.condition._baseRow=row!==-1?row:0}if((value.condition instanceof spread.FormulaCondition)&&(value.condition._baseCol===keyword_undefined||value.condition._baseCol===keyword_null)){value.condition._baseCol=col!==-1?col:0}}var E=spread.Events,pn="validator";self._trigger(E.CellChanged,{sheet:self,sheetName:self._name,row:row,col:col,sheetArea:sheetArea,propertyName:pn});if(row!==-1&&col===-1){self._trigger(E.RowChanged,{sheet:self,sheetName:self._name,row:row,sheetArea:sheetArea,propertyName:pn})}else if(row===-1&&col!==-1){self._trigger(E.ColumnChanged,{sheet:self,sheetName:self._name,col:col,sheetArea:sheetArea,propertyName:pn})}};Sheet.prototype.isValid=function(row,column,value){try
{var self=this;self._validatingRow=row;self._validatingColumn=column;self._validatingValue=value;self._isValidatingCell=true;var dv=self.getDataValidator(row,column);if(dv){return dv.isValid(self,row,column,value)}}finally
{self._validatingRow=-1;self._validatingColumn=-1;self._validatingValue=keyword_null;self._isValidatingCell=false}return true};Sheet.prototype.addSelection=function(row,column,rowCount,columnCount){var self=this;self._bindToAutoRefresh(function(row,column,rowCount,columnCount){var r=row;var c=column;var rc=rowCount;var cc=columnCount;if(r!==-1&&c!==-1){var spans=self._getSpanModel().slice(0);if(spans&&spans.length>0){var newSelection=self._cellRangeInflate(spans,new spread.Range(row,column,rowCount,columnCount));r=newSelection.row;c=newSelection.col;rc=newSelection.rowCount;cc=newSelection.colCount}}self._selectionModel.add(r,c,rc,cc)})(row,column,rowCount,columnCount)};Sheet.prototype.setSelection=function(row,column,rowCount,columnCount){var self=this;var sheetRowCount=self.getRowCount();var sheetColCount=self.getColumnCount();if(row>=sheetRowCount){row=sheetRowCount-1}var activeRow=row;if(activeRow<0){activeRow=0}var activeCol=column;if(column>=sheetColCount){column=sheetColCount-1}if(activeCol<0){activeCol=0}self._clearSelectionImp();self._setActiveCellImp(activeRow,activeCol);self.addSelection(row,column,rowCount,columnCount)};Sheet.prototype.getSelections=function(){return this._selectionModel};Sheet.prototype._addSpanImp=function(row,col,rowCount,colCount,sheetArea){var self=this;self._bindToAutoRefresh(function(row,col,rowCount,colCount,sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}var sm=self._getSpanModel(sheetArea);sm.clear(row,col,rowCount,colCount);var r=new spread.Range(row,col,rowCount,colCount);var newRange=self._getActualRange(r,sheetArea);sm.push(newRange);if(sheetArea===3){var selections=self.getSelections();for(var i=0;i<selections.length;i++){if(selections[i].intersect(row,col,rowCount,colCount)){selections[i]=selections[i].union(r)}}}})(row,col,rowCount,colCount,sheetArea)};Sheet.prototype.addSpan=function(row,col,rowCount,colCount,sheetArea){if(rowCount===1&&colCount===1){return}if(sheetArea===0){return}var canSpan=true;if(sheetArea===3||sheetArea===undefined){canSpan=this._checkArrayFormula(row,col,rowCount,colCount,false)}if(canSpan){var sm=this._getSpanModel(sheetArea);var enumrator=sm.getEnumerator(row,col,rowCount,colCount);while(enumrator.moveNext()){var range=enumrator.current();var selectionRange=new spread.Range(row,col,rowCount,colCount);if(!selectionRange.containsRange(range)){canSpan=false;break}}}if(!canSpan){throw new Error(spread.SR.Exp_InvalidRange);}this._addSpanImp(row,col,rowCount,colCount,sheetArea)};Sheet.prototype.removeSpan=function(row,col,sheetArea){this._bindToAutoRefresh(function(row,col,sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}var sm=this._getSpanModel(sheetArea);for(var i=0;i<sm.length;i++){var rg=sm[i];if(rg.row===row&&rg.col===col){sm.splice(i,1);return}}})(row,col,sheetArea)};Sheet.prototype.repaint=function(clipRect){if(!this._paintSuspended){this._render.repaint(clipRect)}};Sheet.prototype.startEdit=function(selectAll,defaultText){var self=this;self._startEditImp(self._getCanvas(),self._activeRowIndex,self._activeColIndex,keyword_null,keyword_null,selectAll,defaultText)};Sheet.prototype.editorStatus=function(){return(this._editorStatus)?this._editorStatus:0};Sheet.prototype.isEditing=function(){return this._editorStatus===1||this._editorStatus===2};Sheet.prototype.doKeyDown=function(event){this._eventHandler.doKeyDown(event)};Sheet.prototype.doKeyUp=function(event){this._eventHandler.doKeyUp(event)};Sheet.prototype.doCompositionStart=function(){this._eventHandler.doCompositionStart()};Sheet.prototype.removeKeyMap=function(keyCode,ctrl,shift,alt,meta){var keyMap=this.keyMap;if(!keyMap){return}meta=(typeof(meta)==='function'?false:meta);for(var i=0;i<keyMap.length;i++){var ka=keyMap[i];if(ka&&ka.key===keyCode&&ka.ctrl===ctrl&&ka.shift===shift&&ka.alt===alt&&ka.meta===meta){keyMap.splice(i,1);break}}};Sheet.prototype.removeFloatingObjectKeyMap=function(keyCode,ctrl,shift,alt,meta,action){var foKeyMap=this.floatingObjectKeyMap;if(!foKeyMap){return}var mapMeta=action&&meta||false,mapAction=action||meta,meta=mapMeta,action=mapAction;for(var i=0;i<foKeyMap.length;i++){var ka=foKeyMap[i];if(ka&&ka.key===keyCode&&ka.ctrl===ctrl&&ka.shift===shift&&ka.alt===alt&&ka.meta===meta){foKeyMap.splice(i,1);break}}};Sheet.prototype.removeCommentKeyMap=function(keyCode,ctrl,shift,alt,meta,action){var self=this;if(!self._commentKeyMap){return}var mapMeta=action&&meta||false,mapAction=action||meta,meta=mapMeta,action=mapAction;for(var i=0;i<self._commentKeyMap.length;i++){var ka=self._commentKeyMap[i];if(ka&&ka.key===keyCode&&ka.ctrl===ctrl&&ka.shift===shift&&ka.alt===alt&&ka.meta===meta){self._commentKeyMap.splice(i,1);break}}};Sheet.prototype.addKeyMap=function(keyCode,ctrl,shift,alt,meta,action){var self=this;if(!self.keyMap){self.keyMap=[]}var mapMeta=action&&meta||false,mapAction=action||meta,meta=mapMeta,action=mapAction;var ka=self._getKeyAction(keyCode,ctrl,shift,alt,meta);if(ka){ka.action=action}else
{self.keyMap.push(new spread.KeyMap(keyCode,ctrl,shift,alt,meta,action))}};Sheet.prototype.addFloatingObjectKeyMap=function(keyCode,ctrl,shift,alt,meta,action){var self=this;if(!self.floatingObjectKeyMap){self.floatingObjectKeyMap=[]}var mapMeta=action&&meta||false,mapAction=action||meta,meta=mapMeta,action=mapAction;var ka=self._getFloatingObjectKeyAction(keyCode,ctrl,shift,alt,meta);if(ka){ka.action=action}else
{self.floatingObjectKeyMap.push(new spread.KeyMap(keyCode,ctrl,shift,alt,meta,action))}};Sheet.prototype.addCommentKeyMap=function(keyCode,ctrl,shift,alt,meta,action){var self=this;if(!self._commentKeyMap){self._commentKeyMap=[]}var mapMeta=action&&meta||false,mapAction=action||meta,meta=mapMeta,action=mapAction;var ka=self._getCommentKeyAction(keyCode,ctrl,shift,alt,meta);if(ka){ka.action=action}else
{self._commentKeyMap.push(new spread.KeyMap(keyCode,ctrl,shift,alt,meta,action))}};Sheet.prototype._moveFormulaTextBoxCell=function(direction,wrap,beginRow,beginCol){var self=this;var fbx=self._formulaTextBox;if(!fbx||!fbx.canAppendRange()){return}var appendingInfo=self._getKeyboardAppendingInfo();var anchorRow=appendingInfo.anchorRow,anchorCol=appendingInfo.anchorCol,leadingRow=appendingInfo.leadingRow,leadingCol=appendingInfo.leadingCol;if(typeof(beginRow)===const_undefined||beginRow===keyword_null){beginRow=anchorRow}if(typeof(beginCol)===const_undefined||beginCol===keyword_null){beginCol=anchorCol}var eventHandler=self._eventHandler;var newAnchorRow,newAnchorCol,newLeadingRow,newLeadingCol;var nextCell;switch(direction){case 3:case 4:if(direction===3){nextCell=self._getMoveLeftCell(beginRow,beginCol,wrap,leadingRow)}else
{nextCell=self._getMoveRightCell(beginRow,beginCol,wrap,leadingRow)}if(!nextCell){return}newAnchorRow=nextCell.row;newAnchorCol=nextCell.col;newLeadingRow=nextCell.leadingCellRow;if(!self._canMoveCurrentTo(newAnchorRow,newAnchorCol)){return}appendingInfo.anchorRow=newAnchorRow;appendingInfo.anchorCol=newAnchorCol;appendingInfo.leadingRow=newLeadingRow;appendingInfo.leadingCol=newAnchorCol;var rangeString=eventHandler.rangeToString(new spread.Range(newAnchorRow,newAnchorCol,1,1));if(rangeString){fbx.appendRange(rangeString,false,true)}break;case 1:case 2:if(direction===1){nextCell=self._getMoveUpCell(beginRow,beginCol,wrap,leadingCol)}else
{nextCell=self._getMoveDownCell(beginRow,beginCol,wrap,leadingCol)}if(!nextCell){return}newAnchorRow=nextCell.row;newAnchorCol=nextCell.col;newLeadingCol=nextCell.leadingCellCol;if(!self._canMoveCurrentTo(newAnchorRow,newAnchorCol)){return}appendingInfo.anchorRow=newAnchorRow;appendingInfo.anchorCol=newAnchorCol;appendingInfo.leadingRow=newAnchorRow;appendingInfo.leadingCol=newLeadingCol;var rangeString=eventHandler.rangeToString(new spread.Range(newAnchorRow,newAnchorCol,1,1));if(rangeString){fbx.appendRange(rangeString,false,true)}break;default:break}if(newAnchorRow>=0&&newAnchorCol>=0){self._scrollByMoveCell(newAnchorRow,newAnchorCol)}};Sheet.prototype._changeFormulaTextBoxActiveRange=function(key,isCtrl){var self=this;var fbx=self._formulaTextBox;if(!fbx||!fbx.canAppendRange()){return}var eventHandler=self._eventHandler,appendingInfo=self._getKeyboardAppendingInfo(),anchorRow=appendingInfo.anchorRow,anchorCol=appendingInfo.anchorCol;var range;if(fbx.isAppending()){var activeParamRange=fbx.getActiveRange();range=eventHandler.stringToRange(activeParamRange.text)}else
{range=new spread.Range(anchorRow,anchorCol,1,1)}if(range){var newRange=self._getKeyboardSelectedRange(range,key,isCtrl,anchorRow,anchorCol);var rangeString=eventHandler.rangeToString(newRange);if(rangeString){fbx.appendRange(rangeString,true,false)}}};Sheet.prototype._getKeyboardAppendingInfo=function(){var appendingInfo;var self=this;var fbx=self._formulaTextBox,eventHandler=self._eventHandler;if(fbx.isAppending()){appendingInfo=eventHandler._formulaRangeAppendingInfo}else
{appendingInfo=eventHandler._formulaRangeAppendingInfo={anchorRow:self._activeRowIndex,anchorCol:self._activeColIndex,leadingRow:self._leadingCellRow,leadingCol:self._leadingCellCol}}return appendingInfo};Sheet.prototype.moveActiveCell=function(dir,wrap,beginRow,beginCol){var self=this;var args={sheet:self,sheetName:self._name,row:self._activeRowIndex,col:self._activeColIndex,cancel:false};self._trigger(spread.Events.LeaveCell,args);if(args&&args.cancel===true){return}if(!self.endEdit()){return}if(self._activeRowDirty){self.updateRecord();self._activeRowDirty=false}var prevRowIndex=self._activeRowIndex;var prevcolIndex=self._activeColIndex;if(beginRow===keyword_undefined||beginRow===keyword_null){beginRow=self._activeRowIndex}if(beginCol===keyword_undefined||beginCol===keyword_null){beginCol=self._activeColIndex}var Dir=spread.Direction;if(dir===3){self._moveActiveCellLeft(beginRow,beginCol,wrap)}else if(dir===4){self._moveActiveCellRight(beginRow,beginCol,wrap)}else if(dir===1){self._moveActiveCellUp(beginRow,beginCol,wrap)}else if(dir===2){self._moveActiveCellDown(beginRow,beginCol,wrap)}self.moveActiveCellEnd(dir,prevRowIndex,prevcolIndex)};Sheet.prototype._moveActiveCellInSelection=function(dir){var self=this;var args={sheet:self,sheetName:self._name,row:self._activeRowIndex,col:self._activeColIndex,cancel:false};self._trigger(spread.Events.LeaveCell,args);if(args&&args.cancel===true){return}self.endEdit();if(self._activeRowDirty){self.updateRecord();self._activeRowDirty=false}var prevRowIndex=self._activeRowIndex;var prevcolIndex=self._activeColIndex;if(dir===3){self._moveActiveCellLeftInSelection(self._activeRowIndex,self._activeColIndex)}else if(dir===4){self._moveActiveCellRightInSelection(self._activeRowIndex,self._activeColIndex)}self.moveActiveCellEnd(dir,prevRowIndex,prevcolIndex)};Sheet.prototype.doDataItemChanged=function(){var bm=this._bindingManager;if(bm){bm.doDataItemChanged()}};Sheet.prototype.moveActiveCellEnd=function(dir,prevRowIndex,prevcolIndex){var self=this,handler=self._eventHandler;;var oldSelections=self._selectionModel.toArray(),needRepaint=false;if(!self.shift&&!self._isNavigateInSelection){var activeSelectedRange=self._fixRange(self._getActiveSelectedRange());if(self._selectionModel.length>1||activeSelectedRange.rowCount>1||activeSelectedRange.colCount>1){needRepaint=true}self._clearSelectionImp()}var activeRowIndex=self._activeRowIndex,activeColIndex=self._activeColIndex,span=self._spanModel.find(activeRowIndex,activeColIndex);if(span){self._activeRowCount=span.rowCount;self._activeColCount=span.colCount}else
{self._activeRowCount=1;self._activeColCount=1}if(!self._isNavigateInSelection){var activeRange=self._getExtendedRange(activeRowIndex,activeColIndex);var selectionPolicy=self.selectionPolicy(),selectionUnit=self.selectionUnit();if(selectionPolicy===0){self._selectionModel.clear()}else if(selectionPolicy===1){self._selectionModel.clear()}if(selectionUnit===1){activeRange.col=-1;activeRange.colCount=-1}else if(selectionUnit===2){activeRange.row=-1;activeRange.rowCount=-1}self._replaceActiveSelectedRange(activeRange.row,activeRange.col,activeRange.rowCount,activeRange.colCount,false);var newSelections=self._selectionModel.toArray();if(handler._notEqualSelecions(oldSelections,newSelections)){var E=spread.Events;self._trigger(E.SelectionChanging,{sheet:self,sheetName:self._name,oldSelections:oldSelections,newSelections:newSelections});self._trigger(E.SelectionChanged,{sheet:self,sheetName:self._name})}}var savedTopRow=self._scrollTopRow;self._scrollByMoveCell(activeRowIndex,activeColIndex);if(prevRowIndex!=activeRowIndex){self.doDataItemChanged()}var render=self._render;if(needRepaint){var layout=self._getSheetLayout(),x=layout.headerX,y=layout.headerY,width=layout.width-x,height=layout.height-y;render.copyDoubleBuffer(x,y,width,height);render.repaint(new spread.Rect(x,y,width,layout.colHeaderHeight));render.repaint(new spread.Rect(x,y,layout.rowHeaderWidth,height));render.paintAdornment(render._getCtx())}else
{var rs,cs,prevSpan=self._spanModel.find(prevRowIndex,prevcolIndex);if(prevSpan){rs=prevSpan.rowCount;cs=prevSpan.colCount}else
{rs=1;cs=1}render.repaintSelection(new spread.Range(activeRowIndex,activeColIndex,self._activeRowCount,self._activeColCount).union(new spread.Range(prevRowIndex,prevcolIndex,rs,cs)))}var bLoadData=(savedTopRow!==self._scrollTopRow);if(bLoadData){var vpRowLayouts=self._getViewportRowLayout(1),vpRowCount=(vpRowLayouts&&vpRowLayouts.length);if(vpRowCount>0){var topRow=vpRowLayouts[0].row;var bottomRow=vpRowLayouts[vpRowCount-1].row;var start=Math_max(0,topRow-60);if(start<self.getRowCount()){handler._loadData(start,2*bottomRow-topRow)}}}self._trigger(spread.Events.EnterCell,{sheet:self,sheetName:self._name,row:activeRowIndex,col:activeColIndex});handler._updateValidationUI(activeRowIndex,activeColIndex)};Sheet.prototype._scrollByMoveCell=function(cellRowIndex,cellColIndex){var self=this;var firstCol=self.frozenColCount?self._getNextVisualColumn(self.frozenColCount-1):self._getFirstVisualColumn();var firstRow1=self.frozenRowCount?self._getNextVisualRow(self.frozenRowCount-1):self._getFirstVisualRow();if(cellColIndex<self._scrollLeftCol&&cellColIndex>=firstCol){self._setLeftColumn(self._getPrevVisualColumn(cellColIndex+1))}if(cellColIndex>self._getLastFullyVisibleColumn()&&cellColIndex<=self._getLastVisualColumn()){var w=0;var c=cellColIndex;var sheetLayout1=self._getSheetLayout();var tempSpan=self._spanModel.find(cellRowIndex,c);if(tempSpan){c=tempSpan.col+tempSpan.colCount-1}while(c>self._scrollLeftCol){w+=self._getZoomColumnWidth(c);if(w>sheetLayout1.viewportWidth){break}c--}var newLeftCol=self._getNextVisualColumn(c);self._setLeftColumn(newLeftCol)}if(cellRowIndex<self._scrollTopRow&&cellRowIndex>=firstRow1){self._setTopRow(self._getPrevVisualRow(cellRowIndex+1))}if(cellRowIndex>self._getLastFullyVisibleRow()&&cellRowIndex<=self._getLastVisualRow()){var h=0;var r=cellRowIndex;var tempSpan1=self._spanModel.find(r,cellColIndex);if(tempSpan1){r=tempSpan1.row+tempSpan1.rowCount-1}var sheetLayout=self._getSheetLayout();while(r>self._scrollTopRow){h+=self._getZoomRowHeight(r);if(h>sheetLayout.viewportHeight){break}r--}var newTopRow=self._getNextVisualRow(r);self._setTopRow(newTopRow)}if(cellRowIndex===self._getLastVisualRow()){self._setTopRow(self._getLastPageTopRow())}if(cellColIndex===self._getLastVisualColumn()){self._setLeftColumn(self._getLastPageLeftColumn())}};Sheet.prototype.commitArrayFormula=function(){this._endEditImp(false,1)};Sheet.prototype._endEditImp=function(ignoreValueChange,endEditType){var self=this,eventHandler=self._eventHandler;if(!self.isEditing())return true;var editor=self._editor;var action;var ct=self.getCellType(self._activeRowIndex,self._activeColIndex);var context={sheet:self,row:self._activeRowIndex,col:self._activeColIndex,sheetArea:3};if(!ct.isImeAware(context)&&eventHandler){eventHandler.changeFocusHolder()}if(editor&&editor.parentNode){var v=ct.getEditorValue(editor,context);var args={sheet:self,sheetName:self._name,row:self._activeRowIndex,col:self._activeColIndex,editingText:v,cancel:false};self._trigger(spread.Events.EditEnd,args);if(args&&args.cancel===true){return}args["editor"]=editor;self._trigger(spread.Events.EditEnding,args);if(args&&args.cancel===true){return}self._detachFormulaTextBox();var attachedFbx=this.parent&&this.parent._attachedFormulaTextBox;if(document.activeElement===(attachedFbx&&attachedFbx._host)){eventHandler.changeFocusHolder()}if(self._activeRowIndex>=0&&self._activeColIndex>=0){var oldValue=editor._oldValue;if(ct.isEditingValueChanged(oldValue,v,context)||endEditType===1){if(ignoreValueChange){ct.setEditorValue(editor,oldValue,context)}else
{var autoFormat=(ct.hasOwnProperty("_autoFormatValue")?ct._autoFormatValue:true);var cellEditInfo={row:self._activeRowIndex,col:self._activeColIndex,newValue:v,autoFormat:autoFormat};if(endEditType===1){var selections=[self._getActiveSelectedRange()];cellEditInfo.ranges=selections;cellEditInfo.endEditType=endEditType}action=new spread.UndoRedo.CellEditUndoAction(self,cellEditInfo);self._doCommand(action);var needRetry=(action.applyResult===2);if(needRetry===true){ct.focus(editor,context);self._attachFormlulaTextBox(ct.getEditingElement());return false}}try
{ct.selectAll(editor,context)}catch(ex){}}}self._dirty=true;ct.deactivateEditor(editor,context);if(!ct.isImeAware(context)){var element=editor;while(element){if(element.parentNode===document.body){document.body.removeChild(element)}else
{element=element.parentNode}}}else
{$(editor).css("width","0");$(editor).css("height","0");$(editor).css("overflow","hidden")}}self._editingTimeValue=false;self._trigger(spread.Events.EditEnded,{sheet:self,sheetName:self._name,row:self._activeRowIndex,col:self._activeColIndex,editingText:v});if(self._editorStatus!==0){var oldStatus=self._editorStatus;self._editorStatus=0;self._trigger(spread.Events.EditorStatusChanged,{sheet:self,sheetName:self._name,oldStatus:oldStatus,newStatus:0})}self._editor=keyword_null;if(action&&(action.applyResult===1)){return false}return true};Sheet.prototype.endEdit=function(ignoreValueChange){return this._endEditImp(ignoreValueChange)};Sheet.prototype.hitTest=function(x,y,forMove){var self=this;self._getSheetLayout();var target={x:x,y:y,rowViewportIndex:keyword_null,colViewportIndex:keyword_null,row:-1,col:-1,resizeInfo:keyword_null,hitTestType:keyword_null,groupHitInfo:keyword_null,filterButtonHitInfo:keyword_null,dragInfo:keyword_null,cellTypeHitInfo:keyword_null,floatingObjectHitInfo:keyword_null,formulaRangeHitInfo:keyword_null,commentHitInfo:keyword_null};var hitInfo=self._render.groupHitTest(x,y),rowViewportIndex,colViewportIndex;if(hitInfo){target.groupHitInfo=hitInfo}else
{rowViewportIndex=self._getRowViewportIndexFromY(y);colViewportIndex=self._getColumnViewportIndexFromX(x);target.rowViewportIndex=rowViewportIndex;target.colViewportIndex=colViewportIndex;target.row=self._getRowIndexFromY(y,rowViewportIndex);target.col=self._getColumnIndexFromX(x,colViewportIndex);if(rowViewportIndex>=0&&rowViewportIndex<=2&&colViewportIndex>=0){var cellLayout=self._getCellLayoutByCell(rowViewportIndex,colViewportIndex,keyword_undefined,target.row,target.col);if(cellLayout){if(forMove!==true){target.row=cellLayout.row;target.col=cellLayout.col}}}target.hitTestType=self._getSheetArea(rowViewportIndex,colViewportIndex);var eventHandler=self._eventHandler,resizeInfo,floatObjectInfo,dragInfo,filterButtonHitInfo,formulaRangeInfo,commentHitInfo;if(resizeInfo=eventHandler.getResizingRowCol(target,x,y,5)){target.resizeInfo=resizeInfo}else if(formulaRangeInfo=eventHandler.getFormulaRangeHitInfo(target,x,y)){target.formulaRangeHitInfo=formulaRangeInfo}else if(commentHitInfo=this._getCommentHitInfo(x,y)){target.commentHitInfo=commentHitInfo}else if(floatObjectInfo=this._getFloatingObjectHitInfo(x,y)){target.floatingObjectHitInfo=floatObjectInfo}else if(dragInfo=eventHandler.getDragInfo(target,x,y)){target.dragInfo=dragInfo}else if(filterButtonHitInfo=self._getFilterButtonHitInfo(target,x,y)){target.filterButtonHitInfo=filterButtonHitInfo}else
{target.cellTypeHitInfo=self._getCellTypeHitInfo(target,x,y)}}return target};Sheet.prototype.getCellRect=function(row,col,rowViewportIndex,colViewportIndex){var sheetArea=3;if(rowViewportIndex===-1){sheetArea=1}else if(colViewportIndex===-1){sheetArea=2}var self=this;var sheetLayout=self._getSheetLayout();if(rowViewportIndex===-1&&colViewportIndex===-1){return new spread.Rect(sheetLayout.headerX,sheetLayout.headerY,sheetLayout.rowHeaderWidth,sheetLayout.colHeaderHeight)}var bounds=self._bounds,rowCount=self.getRowCount(),colCount=self.getColumnCount();if(typeof(rowViewportIndex)===const_undefined||rowViewportIndex===keyword_null){if(row<self.frozenRowCount){rowViewportIndex=0}else if(row<rowCount-self._frozenTrailingRowCount){rowViewportIndex=1}else if(row<rowCount){rowViewportIndex=2}}if(typeof(colViewportIndex)===const_undefined||colViewportIndex===keyword_null){if(col<self.frozenColCount){colViewportIndex=0}else if(col<colCount-self._frozenTrailingColCount){colViewportIndex=1}else if(col<colCount){colViewportIndex=2}}var rowLayout=self._getRowLayout(rowViewportIndex,sheetArea).findRow(row);var colLayout=self._getColumnLayout(colViewportIndex,sheetArea).findCol(col);var cellLayout=self._getCellLayout(rowViewportIndex,colViewportIndex,sheetArea).findCell(row,col);if(cellLayout){return new spread.Rect(cellLayout.x-bounds.x,cellLayout.y-bounds.y,cellLayout.width,cellLayout.height)}if(rowLayout&&colLayout){return new spread.Rect(colLayout.x-bounds.x,rowLayout.y-bounds.y,colLayout.width,rowLayout.height)}else
{return new spread.Rect}};Sheet.prototype._setActiveCellCore=function(row,col,doNotSetFocus){var self=this,eventHandler=self._eventHandler;var activeCellChanged=false;if(row!==keyword_null&&row!==keyword_undefined){self._activeRowIndex=row;activeCellChanged=true}if(col!==keyword_null&&col!==keyword_undefined){self._activeColIndex=col;activeCellChanged=true}if(!doNotSetFocus&&eventHandler&&activeCellChanged){eventHandler.changeFocusHolder()}};Sheet.prototype._setActiveCellImp=function(row,col,rowViewportIndex,colViewportIndex,doNotSetFocus){var self=this;if(self._activeRowIndex!==row){if(self._activeRowDirty){self.updateRecord();self._activeRowDirty=false}}var span=self._spanModel.find(row,col);if(span){self._activeRowCount=span.rowCount;self._activeColCount=span.colCount}else
{self._activeRowCount=1;self._activeColCount=1}if(!self._paintSuspended){self._render.repaintSelection(new spread.Range(self._activeRowIndex,self._activeColIndex,1,1))}self.activeRowViewportIndex=rowViewportIndex;self.activeColViewportIndex=colViewportIndex;self._setActiveCellCore(row,col,doNotSetFocus);self._leadingCellRow=row;self._leadingCellCol=col};Sheet.prototype.setActiveCell=function(row,col,rowViewportIndex,colViewportIndex){this._setActiveCellAndSelection(row,col,rowViewportIndex,colViewportIndex)};Sheet.prototype._setActiveCellAndSelection=function(row,col,rowViewportIndex,colViewportIndex,doNotSetFocus){var self=this;self._bindToAutoRefresh(function(row,col,rowViewportIndex,colViewportIndex,doNotSetFocus){var rowCount=self.getRowCount();var colCount=self.getColumnCount();if(row<0){row=0}else if(row>=rowCount){row=rowCount-1}if(col<0){col=0}else if(col>=colCount){col=colCount-1}self._clearSelectionImp();self._setActiveCellImp(row,col,rowViewportIndex,colViewportIndex,doNotSetFocus);var span=self._spanModel.find(row,col);if(span){self._setSelectedRange(span.row,span.col,span.rowCount,span.colCount)}else
{self._setSelectedRange(row,col,1,1)}})(row,col,rowViewportIndex,colViewportIndex,doNotSetFocus)};Sheet.prototype.getActiveRowIndex=function(){return this._activeRowIndex};Sheet.prototype.getActiveColumnIndex=function(){return this._activeColIndex};Sheet.prototype.selectionPolicy=function(value){if(arguments.length===0){return this._selectionModel.selectionPolicy}this._selectionModel.selectionPolicy=value;return this};Sheet.prototype.selectionUnit=function(value){if(arguments.length===0){return this._selectionModel.selectionUnit}this._selectionModel.selectionUnit=value;return this};Sheet.prototype.getRowResizable=function(row,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var v=true;var infos=this._getRowInfos(sheetArea),info=(infos&&infos[row]);if(info&&typeof(info.resizable)!==const_undefined&&info.resizable!==keyword_null){v=info.resizable}return v};Sheet.prototype.setRowResizable=function(row,value,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var self=this;var infos=self._getRowInfos(sheetArea);if(!infos[row]){infos[row]={}}infos[row].resizable=value;infos[row].dirty=true;self._trigger(spread.Events.RowChanged,{sheet:self,sheetName:self._name,row:row,sheetArea:sheetArea,propertyName:"resizable"})};Sheet.prototype.getColumnResizable=function(col,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var v=true;var infos=this._getColumnInfos(sheetArea),info=(infos&&infos[col]);if(info&&typeof(info.resizable)!==const_undefined&&info.resizable!==keyword_null){v=info.resizable}return v};Sheet.prototype.setColumnResizable=function(col,value,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var self=this;var infos=self._getColumnInfos(sheetArea);if(!infos[col]){infos[col]={}}infos[col].resizable=value;infos[col].dirty=true;self._trigger(spread.Events.ColumnChanged,{sheet:self,sheetName:self._name,col:col,sheetArea:sheetArea,propertyName:"resizable"})};Sheet.prototype.getRowHeight=function(row,sheetArea){var self=this;if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}if(sheetArea===3||sheetArea===2){var m=self._getModel(sheetArea),rowCount=((m&&m.rowCount)||0);if(row<0||row>=rowCount){return 0}var rowFilter=self._rowFilter;if(rowFilter&&rowFilter.isHideRowFilter()){if(rowFilter.isFiltered()&&rowFilter.isRowFilteredOut(row)){return 0}}var tableManager=self._tableManager,tables=(tableManager&&tableManager.getTables());if(tables&&tables.length>0){var count=tables.length,tb,filter;for(var i=0;i<count;i++){tb=tables[i];if(!tb){continue}filter=tb.rowFilter();if(filter&&filter.isHideRowFilter()&&filter.isFiltered()&&filter.isRowFilteredOut(row)){return 0}}}var rowRangeGroup=self.rowRangeGroup;if(rowRangeGroup&&!rowRangeGroup._isEmpty()){if(rowRangeGroup.isCollapsed(row)){return 0}}}var h=self.defaults.rowHeight;if(sheetArea===1){h=self.defaults.colHeaderRowHeight}var infos=self._getRowInfos(sheetArea),info=(infos&&infos[row]),visible,size;if(info){visible=info.visible;if(visible===false){return 0}size=info.size;if(!isNaN(size)&&size!==keyword_null){h=Math_floor(size)}}return h};Sheet.prototype._getActualRowHeight=function(row,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var h=this.defaults.rowHeight;if(sheetArea===1){h=this.defaults.colHeaderRowHeight}var infos=this._getRowInfos(sheetArea),info=(infos&&infos[row]),size;if(info){size=info.size;if(!isNaN(size)&&size!==keyword_null){h=Math_floor(size)}}return h};Sheet.prototype.setRowHeight=function(row,value,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var self=this;var infos=self._getRowInfos(sheetArea),info=infos[row];if(!info){infos[row]=info={}}if(info.size===value){return}info.size=value;info.dirty=true;self._trigger(spread.Events.RowChanged,{sheet:self,sheetName:self._name,row:row,sheetArea:sheetArea,propertyName:_cssHeight});self.invalidate()};Sheet.prototype.getRowVisible=function(row,sheetArea){var self=this;if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}if(self.isRowFilterOut(row,sheetArea)){return false}if(sheetArea===3||sheetArea===2){var rowRangeGroup=self.rowRangeGroup;if(rowRangeGroup&&!rowRangeGroup._isEmpty()){if(0<=row&&row<self.getRowCount(sheetArea)&&rowRangeGroup.isCollapsed(row)){return false}}}var v=true;var infos=self._getRowInfos(sheetArea),info=(infos&&infos[row]);if(info&&typeof(info.visible)!==const_undefined&&info.visible!==keyword_null){v=info.visible}return v};Sheet.prototype.isRowFilterOut=function(row,sheetArea){var self=this;if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}if(sheetArea===3||sheetArea===2){var rowFilter=self._rowFilter;if(rowFilter&&rowFilter.isHideRowFilter()){if(rowFilter.isFiltered()&&rowFilter.isRowFilteredOut(row)){return true}}var tableManager=self._tableManager,tables=(tableManager&&tableManager.getTables());if(tables&&tables.length>0){var count=tables.length,tb,filter;for(var i=0;i<count;i++){tb=tables[i];if(!tb){continue}filter=tb.rowFilter();if(filter&&filter.isHideRowFilter()&&filter.isFiltered()&&filter.isRowFilteredOut(row)){return true}}}}return false};Sheet.prototype.setRowVisible=function(row,value,sheetArea){var self=this;self._bindToAutoRefresh(function(row,value,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var infos=self._getRowInfos(sheetArea),info=infos[row];if(!info){infos[row]=info={}}if(info.visible===value){return}info.visible=value;info.dirty=true;self._trigger(spread.Events.RowChanged,{sheet:self,sheetName:self._name,row:row,sheetArea:sheetArea,propertyName:"isVisible"})})(row,value,sheetArea)};Sheet.prototype.getColumnWidth=function(col,sheetArea){var self=this;if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var w=self.defaults.colWidth;if(sheetArea===2){w=self.defaults.rowHeaderColWidth}if(sheetArea===3||sheetArea===1){var m=self._getModel(sheetArea),colCount=((m&&m.colCount)||0);if(col<0||col>=colCount){return 0}var colRangeGroup=self.colRangeGroup;if(colRangeGroup&&!colRangeGroup._isEmpty()){if(colRangeGroup.isCollapsed(col)){return 0}}}var infos=self._getColumnInfos(sheetArea),info=(infos&&infos[col]),visible,size;if(info){visible=info.visible;if(visible===false){return 0}size=info.size;if(!isNaN(size)&&size!==keyword_null){w=Math_floor(size)}}return w};Sheet.prototype._getActualColumnWidth=function(col,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var w=this.defaults.colWidth;if(sheetArea===2){w=this.defaults.rowHeaderColWidth}var infos=this._getColumnInfos(sheetArea),info=(infos&&infos[col]),size;if(info){size=info.size;if(!isNaN(size)&&size!==keyword_null){w=Math_floor(size)}}return w};Sheet.prototype.setColumnWidth=function(col,value,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var self=this;var infos=self._getColumnInfos(sheetArea),info=infos[col];if(!info){infos[col]=info={}}info.size=value;info.dirty=true;self._trigger(spread.Events.ColumnChanged,{sheet:self,sheetName:self._name,col:col,sheetArea:sheetArea,propertyName:_cssWidth});self.invalidate()};Sheet.prototype.getColumnVisible=function(col,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}if(sheetArea===3||sheetArea===1){var colRangeGroup=this.colRangeGroup;if(colRangeGroup&&!colRangeGroup._isEmpty()){if(0<=col&&col<this.getColumnCount(sheetArea)&&colRangeGroup.isCollapsed(col)){return false}}}var v=true;var infos=this._getColumnInfos(sheetArea),info=(infos&&infos[col]);if(info&&typeof(info.visible)!==const_undefined&&info.visible!==keyword_null){v=info.visible}return v};Sheet.prototype.setColumnVisible=function(col,value,sheetArea){var self=this;self._bindToAutoRefresh(function(col,value,sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}var infos=self._getColumnInfos(sheetArea),info=infos[col];if(!info){infos[col]=info={}}if(info.visible===value){return}info.visible=value;info.dirty=true;self._trigger(spread.Events.ColumnChanged,{sheet:self,sheetName:self._name,col:col,sheetArea:sheetArea,propertyName:"isVisible"})})(col,value,sheetArea)};Sheet.prototype.zoom=function(factor){factor=parseFloat(factor);if(isNaN(factor)||!isFinite(factor)){return}if(factor>4){factor=4}else if(factor<0.25){factor=0.25}var self=this;self._bindToAutoRefresh(function(factor){if(self.showEditingLocator){self._showEditingLocator()}self._zoomFactor=factor})(factor)};Sheet.prototype.invalidateLayout=function(){var self=this,eventHandler=self._eventHandler;self._layoutModel=keyword_null;self._cachedGroupLayout=keyword_null;self._rowLayoutCache={colHeader:keyword_null,viewport:keyword_null,colFooter:keyword_null};self._colLayoutCache={rowHeader:keyword_null,viewport:keyword_null};self._filterButtonsModel=keyword_null;self._cachePool.clearAll();spread.StyleHelper.scaleFontInfoCache=keyword_null;if(eventHandler&&window.gcGlobal.activeElement===self){eventHandler._updateValidationUI(self._activeRowIndex,self._activeColIndex)}if(self._needSyncScrollbarSize){self._syncScrollbarSize();self._needSyncScrollbarSize=false}self._dirty=true};Sheet.prototype.invalidate=function(){var self=this;if(!self._paintSuspended&&self._layoutSuspended<=0){self.invalidateLayout();self.repaint()}};Sheet.prototype.getViewportHeight=function(rowViewportIndex){var layout=this._getSheetLayout();if(rowViewportIndex===0){return layout.frozenHeight}else if(rowViewportIndex===1){return layout.viewportHeight}else if(rowViewportIndex===2){return layout.frozenTrailingHeight}else
{return 0}};Sheet.prototype.getViewportWidth=function(columnViewportIndex){var layout=this._getSheetLayout();if(columnViewportIndex===0){return layout.frozenWidth}else if(columnViewportIndex===1){return layout.viewportWidth}else if(columnViewportIndex===2){return layout.frozenTrailingWidth}else
{return 0}};Sheet.prototype.getViewportTopRow=function(rowViewportIndex){var self=this;if(rowViewportIndex===0){return 0}else if(rowViewportIndex===1){return Math_max(self.frozenRowCount,self._scrollTopRow)}else if(rowViewportIndex===2){return Math_max(self.frozenRowCount,self.getRowCount()-self._frozenTrailingRowCount)}else
{return-1}};Sheet.prototype.getViewportBottomRow=function(rowViewportIndex){var self=this;if(rowViewportIndex===2){return self.getRowCount()-1}var topRow=self.getViewportTopRow(rowViewportIndex);var viewportHeight=self.getViewportHeight(rowViewportIndex);var rowHeightTotal=0;var rowCount=0;var rc=self.getRowCount()-self._frozenTrailingRowCount;if(rowViewportIndex===0){rc=Math_min(self.frozenRowCount,rc)}for(var index=topRow;(index<rc)&&(rowHeightTotal<viewportHeight);index++,rowCount++){rowHeightTotal+=self._getZoomRowHeight(index)}return topRow+rowCount-1};Sheet.prototype.getViewportLeftColumn=function(columnViewportIndex){var self=this;if(columnViewportIndex===0){return 0}else if(columnViewportIndex===1){return Math_max(self.frozenColCount,self._scrollLeftCol)}else if(columnViewportIndex===2){return Math_max(self.frozenColCount,self.getColumnCount()-self._frozenTrailingColCount)}else
{return-1}};Sheet.prototype.getViewportRightColumn=function(columnViewportIndex){var self=this;if(columnViewportIndex===2){return self.getColumnCount()-1}var leftColumn=self.getViewportLeftColumn(columnViewportIndex);var viewportWidth=self.getViewportWidth(columnViewportIndex);var columnCount=0;var columnWidthTotal=0;var cc=self.getColumnCount()-self._frozenTrailingColCount;if(columnViewportIndex===0){cc=Math_min(self.frozenColCount,cc)}for(var index=leftColumn;(index<cc)&&(columnWidthTotal<viewportWidth);index++,columnCount++){columnWidthTotal+=self._getZoomColumnWidth(index)}return leftColumn+columnCount-1};Sheet.prototype.clearSelection=function(){this._bindToAutoRefresh(function(){this._clearSelectionImp();this._setActiveCellImp(0,0)})()};Sheet.prototype._clearSelectionImp=function(){this._selectionModel.clear()};Sheet.prototype._validationError=function(row,column,value){var self=this;var dv=self.getDataValidator(row,column);var args={sheet:self,sheetName:self._name,row:row,col:column,validator:dv,validationResult:0};self._trigger(spread.Events.ValidationError,args);return args.validationResult};Sheet.prototype.getSpans=function(range,sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}var sm=this._getSpanModel(sheetArea);if(!range){return sm.slice(0)}var t=[];for(var i=0;i<sm.length;i++){var rg=sm[i];if(!range||rg.intersect(range.row,range.col,range.rowCount,range.colCount)){t.push(rg)}}return t};Sheet.prototype.getSpan=function(row,col,sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}var sm=this._getSpanModel(sheetArea);return sm.find(row,col)};Sheet.prototype.getCell=function(row,col,sheetArea){return new spread.Cell(this,row,col,sheetArea)};Sheet.prototype.getCells=function(row,col,row2,col2,sheetArea){var cell=this.getCell(row,col,sheetArea);cell.row2=row2;cell.col2=col2;return cell};Sheet.prototype.getRow=function(index,sheetArea){return new spread.Row(this,index,sheetArea)};Sheet.prototype.getRows=function(index,index2,sheetArea){var row=this.getRow(index,sheetArea);row.index2=index2;return row};Sheet.prototype.getColumn=function(index,sheetArea){return new spread.Column(this,index,sheetArea)};Sheet.prototype.getColumns=function(index,index2,sheetArea){var col=this.getColumn(index,sheetArea);col.index2=index2;return col};Sheet.prototype.setBorder=function(cellRange,border,option,sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}var self=this;var oldState=self.isPaintSuspended();self.isPaintSuspended(true);try
{var actualRange=self._getActualRange(cellRange,sheetArea);var row=actualRange.row;var col=actualRange.col;var rowCount=actualRange.rowCount;var colCount=actualRange.colCount;var r,c;if(option.left||option.all||option.outline){for(r=0;r<rowCount;r++){self.getCell(row+r,col,sheetArea).borderLeft(border)}}if(option.top||option.all||option.outline){for(c=0;c<colCount;c++){self.getCell(row,col+c,sheetArea).borderTop(border)}}if(option.right||option.all||option.outline){for(r=0;r<rowCount;r++){self.getCell(row+r,col+colCount-1,sheetArea).borderRight(border)}}if(option.bottom||option.all||option.outline){for(c=0;c<colCount;c++){self.getCell(row+rowCount-1,col+c,sheetArea).borderBottom(border)}}if(option.innerHorizontal||option.all||option.inside){for(r=0;r<rowCount-1;r++){for(c=0;c<colCount;c++){self.getCell(row+r,col+c,sheetArea).borderBottom(border);self.getCell(row+r+1,col+c,sheetArea).borderTop(border)}}}if(option.innerVertical||option.all||option.inside){for(c=0;c<colCount-1;c++){for(r=0;r<rowCount;r++){self.getCell(row+r,col+c,sheetArea).borderRight(border);self.getCell(row+r,col+c+1,sheetArea).borderLeft(border)}}}}finally
{self.isPaintSuspended(oldState)}};Sheet.prototype.search=function(searchCondition){if(!searchCondition||!spread.features.search){return keyword_null}var self=this,sheetArea=searchCondition.sheetArea,searchString=searchCondition.searchString,searchTarget=searchCondition.searchTarget,searchFlags=searchCondition.searchFlags,rowCount=self.getRowCount(sheetArea),colCount=self.getColumnCount(sheetArea);if(!searchString||searchTarget===0||(rowCount<=0&&colCount<=0)){return new spread.SearchResult}if(searchCondition.rowStart===-1){searchCondition.rowStart=0}if(searchCondition.columnStart===-1){searchCondition.columnStart=0}if(searchCondition.findBeginRow===-1){searchCondition.findBeginRow=searchCondition.rowStart}if(searchCondition.findBeginColumn===-1){searchCondition.findBeginColumn=searchCondition.columnStart}if(searchCondition.rowEnd===-1){searchCondition.rowEnd=rowCount-1}if(searchCondition.columnEnd===-1){searchCondition.columnEnd=colCount-1}var searchResult=new spread.SearchResult;var enumerator=new spread.CellsEnumerator(self,searchCondition);if((searchFlags&8)>0){enumerator.isBlockRange=true}while(enumerator.moveNext()){var rowIndex=enumerator.currentRow;var columnIndex=enumerator.currentColumn;var cell=enumerator.current();if(!cell){continue}if((searchTarget&1)>0){var cellText=cell.text();if(self._trySearch(cellText,searchString,searchFlags)&&cellText!==""){searchResult.searchFoundFlag|=1;searchResult.foundString=cellText}}if((searchTarget&8)>0){var cellFormula=cell.formula();if(typeof(cellFormula)===const_string){cellFormula=cellFormula.toString()}else
{cellFormula=keyword_null}if(self._trySearch(cellFormula,searchString,searchFlags)&&cellFormula!==""){searchResult.searchFoundFlag|=8;searchResult.foundString=cellFormula}}if(searchResult.searchFoundFlag!==0){searchResult.foundRowIndex=rowIndex;searchResult.foundColumnIndex=columnIndex;return searchResult}}return new spread.SearchResult};Sheet.prototype.showCell=function(row,col,verticalPosition,horizontalPosition){var self=this,rowCount=self.getRowCount(),colcount=self.getColumnCount(),zoomFactor=self._zoomFactor;if(row<0||row>=rowCount){return}if(col<0||col>=colcount){return}var frozenRowCount=isNaN(self.frozenRowCount)?0:self.frozenRowCount;var frozenColCount=isNaN(self.frozenColCount)?0:self.frozenColCount;var frozenTrailingRowCount=isNaN(self._frozenTrailingRowCount)?0:self._frozenTrailingRowCount;var frozenTrailingColCount=isNaN(self._frozenTrailingColCount)?0:self._frozenTrailingColCount;var topRow=self._scrollTopRow;var leftColumn=self._scrollLeftCol;var columnViewportIndex=1;var rowViewportIndex=1;if(row<frozenRowCount){topRow=0;rowViewportIndex=0}else if(row>=rowCount-frozenTrailingRowCount){topRow=rowCount-frozenTrailingRowCount;rowViewportIndex=2}if(col<frozenColCount){leftColumn=0;columnViewportIndex=0}else if(col>=colcount-frozenTrailingColCount){leftColumn=colcount-frozenTrailingColCount;columnViewportIndex=2}if(columnViewportIndex===1){var dWidth;if(horizontalPosition!==0){if(horizontalPosition===1){dWidth=Math_floor((self.getViewportWidth(columnViewportIndex)-Math_floor(self.getColumnWidth(col)*zoomFactor))/2);for(;0<col;col--){dWidth-=Math_floor(self.getColumnWidth(col-1)*zoomFactor);if(dWidth<0){break}}}else if(horizontalPosition===2){dWidth=self.getViewportWidth(columnViewportIndex)-Math_floor(self.getColumnWidth(col)*zoomFactor);for(;0<col;col--){dWidth-=Math_floor(self.getColumnWidth(col-1)*zoomFactor);if(dWidth<0){break}}}else if(horizontalPosition===3){if(col>=leftColumn){dWidth=self.getViewportWidth(columnViewportIndex)-Math_floor(self.getColumnWidth(col)*zoomFactor);for(;leftColumn<col;col--){dWidth-=Math_floor(self.getColumnWidth(col-1)*zoomFactor);if(dWidth<0){break}}}}}}if(rowViewportIndex===1){var height;if(verticalPosition!==0){if(verticalPosition===1){height=Math_floor((self.getViewportHeight(rowViewportIndex)-Math_floor(self.getRowHeight(row)*zoomFactor))/2);for(;0<row;row--){height-=Math_floor(self.getRowHeight(row-1)*zoomFactor);if(height<0){break}}}else if(verticalPosition===2){height=self.getViewportHeight(rowViewportIndex)-Math_floor(self.getRowHeight(row)*zoomFactor);for(;0<row;row--){height-=Math_floor(self.getRowHeight(row-1)*zoomFactor);if(height<0){break}}}else if(verticalPosition===3){if(!(row<topRow||topRow===-1)){height=self.getViewportHeight(rowViewportIndex)-Math_floor(self.getRowHeight(row)*zoomFactor);for(;topRow<row;row--){height-=Math_floor(self.getRowHeight(row-1)*zoomFactor);if(height<0){break}}}}}}var needRepaint=false;if(rowViewportIndex===1&&row!==topRow){self._scrollTopRow=row;self._syncVScrollbarPosition();needRepaint=true}if(columnViewportIndex===1&&col!==leftColumn){self._scrollLeftCol=col;self._syncHScollbarPosition();needRepaint=true}if(needRepaint){self.invalidateLayout();self.repaint()}};Sheet.prototype.showColumn=function(col,horizontalPosition){this.showCell(this._scrollTopRow,col,0,horizontalPosition)};Sheet.prototype.showRow=function(row,verticalPosition){this.showCell(row,this._scrollLeftCol,verticalPosition,0)};Sheet.prototype.bind=function(type,data,fn){this._eventHandler.bind(type+_gcSheet,data,fn)};Sheet.prototype.unbind=function(type,fn){this._eventHandler.unbind(type+_gcSheet,fn)};Sheet.prototype.unbindAll=function(){this._eventHandler.unbind(_gcSheet)};Sheet.prototype._bind=function(type,data,fn){if(type.indexOf('.')>=0){this._eventHandler.bind(type,data,fn)}else
{this._eventHandler.bind(type+_gcSheetInternal,data,fn)}};Sheet.prototype._unbind=function(type,fn){if(type.indexOf('.')>=0){this._eventHandler.unbind(type,fn)}else
{this._eventHandler.unbind(type+_gcSheetInternal,fn)}};Sheet.prototype._unbindAll=function(){this._eventHandler.unbind(_gcSheetInternal)};Sheet.prototype.suspendEvent=function(){this._eventHandler._eventSuspended++};Sheet.prototype.resumeEvent=function(){var eventHandler=this._eventHandler;eventHandler._eventSuspended--;if(eventHandler._eventSuspended<0){eventHandler._eventSuspended=0}};Sheet.prototype.currentTheme=function(value){var self=this;if(arguments.length===0){if(!self._currentTheme){self._currentTheme=spread.SpreadThemes.Office}return self._currentTheme}if(typeof value===const_string){if(spread.SpreadThemes.hasOwnProperty(value)){value=spread.SpreadThemes[value]}else
{value=new spread.SpreadTheme(value)}}self._bindToAutoRefresh(function(value){self._currentTheme=value})(value);return self};Sheet.prototype.reset=function(){var self=this;self.defaults={rowHeight:self._defaultRowHeight,colWidth:self._defaultColWidth,rowHeaderColWidth:self._defaultRowHeaderColWidth,colHeaderRowHeight:self._defaultColHeaderRowHeight};self.gridline={color:self._defaultGridLineColor,showVerticalGridline:self._defaultShowVerticalGridline,showHorizontalGridline:self._defaultShowHorizontalGridline};self._rowLayoutCache={colHeader:keyword_null,viewport:keyword_null,colFooter:keyword_null};self._colLayoutCache={rowHeader:keyword_null,viewport:keyword_null};self._dragRect={};self._render=new spread._SheetRender(self);var eventHandlerElem=keyword_null;if(self._eventHandler){eventHandlerElem=self._eventHandler._elem}self._eventHandler=new spread._SheetEventHandler(self);self._eventHandler._elem=eventHandlerElem;self._composedDefaultStyle={};self._dataModel=new spread._GcSheetModel;self._dataModel.name=self._name;if(spread.util.hasCalc()){self._calcDataModel=new spread._CalcModel(self._dataModel.rowCount,self._dataModel.colCount,self._name+"_calc")}self._rowHeaderModel=new spread._GcSheetModel(self._dataModel.rowCount,1);self._colHeaderModel=new spread._GcSheetModel(1,self._dataModel.colCount);self._colFooterModel=new spread._GcSheetModel(1,self._dataModel.colCount,self._name+"cf");self._spanModel=new spread._SpanModel;self._colHeaderSpanModel=new spread._SpanModel;self._rowHeaderSpanModel=new spread._SpanModel;self._selectionModel=new spread._SelectionModel;self._selectionBackColor="rgba(180,180,200,0.2)";self._selectionBorderColor="black";self._currentTheme=spread.SpreadThemes.Office;self._allowDragDrop=true;self._allowDragFill=true;if(spread.util.hasCalc()){self._vpSheetSource=new spread.Calc._SheetSource(self,3)}if(spread.features.group){self.rowRangeGroup=new spread.RangeGroup(self.getRowCount());self.colRangeGroup=new spread.RangeGroup(self.getColumnCount())}self._showRowRangeGroup=true;self._showColumnRangeGroup=true;self._rowInfos=keyword_null;self._colInfos=keyword_null;self.dataContext=keyword_null;self.autoGenerateColumns=true;self.autoUpdate=true;self._rowFilter=keyword_null;self._initDefaultKeyMap();if(spread.features.floatingObject){self._initDefaultFloatingObjectKeyMap()}if(spread.features.comment){self._initDefaultCommentKeyMap()}self._scrollTopRow=0;self._scrollLeftCol=0;self.frozenRowCount=0;self.frozenColCount=0;self._frozenTrailingRowCount=0;self._frozenTrailingColCount=0;if(spread.features.binding){self._bindingManager=new spread._BindingManager(self)}if(spread.features.sparkline){self._sparklineGroupManager=new spread.WorksheetSparklineGroupManager(self,self)}if(spread.features.table){self._tableManager=new spread._SheetTableManager(self)}if(spread.features.floatingObject){self._floatingObjectArray=new spread._FloationgObjectArray(self)}self._namedStyles={};self._needSyncScrollbarSize=true;self._cutCopyIndicatorManager=new spread.CutCopyIndicatorManager(self);self.invalidateLayout();self._dirty=true;self._clipBoardOptions=0;self._containerDiv=keyword_null;if(spread.features.comment){self._commentManager=new spread.CommentManager(self)}};Sheet.prototype.undoManager=function(){var self=this,parent=self.parent;if(!self._undoManager){self._undoManager=(parent&&parent._undoManager)?parent._undoManager:new spread._UndoManager(self,-1,self.allowUndo())}return self._undoManager};Sheet.prototype.clipBoardOptions=function(value){if(arguments.length===0){return this._clipBoardOptions}else
{this._clipBoardOptions=value;return this}};Sheet.prototype.doCommand=function(action){this._doCommand(action)};Sheet.prototype.copyTo=function(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount,option){this.copyToCore(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount,option)};Sheet.prototype.copyToCore=function(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount,option,ignoreFilteredOutRow){var self=this;var oldState=self.isPaintSuspended();self.isPaintSuspended(true);self.suspendEvent();staticMembers.copyTo(self,fromRow,fromColumn,self,toRow,toColumn,rowCount,columnCount,option,ignoreFilteredOutRow);self.resumeEvent();self.isPaintSuspended(oldState)};Sheet.prototype.moveTo=function(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount,option){var self=this;var oldState=self.isPaintSuspended();self.isPaintSuspended(true);self.suspendEvent();staticMembers.moveTo(self,fromRow,fromColumn,self,toRow,toColumn,rowCount,columnCount,option);self.resumeEvent();self.isPaintSuspended(oldState)};Sheet.prototype.setCsv=function(row,column,text,rowDelimiter,columnDelimiter,flags){var self=this;var oldState=self.isPaintSuspended();self.isPaintSuspended(true);self.suspendEvent();staticMembers.setRangeText(self,row,column,text,rowDelimiter,columnDelimiter,"\"",flags);self.resumeEvent();self.isPaintSuspended(oldState)};Sheet.prototype.getCsv=function(row,column,rowCount,columnCount,rowDelimiter,columnDelimiter){return staticMembers.getRangeText(this,row,rowCount,column,columnCount,rowDelimiter,columnDelimiter,"\"",true,0)};Sheet.prototype.canUserDragDrop=function(value){var self=this,parent=self.parent;if(arguments.length===0){if(parent&&parent.canUserDragDrop){self._allowDragDrop=parent.canUserDragDrop()}return self._allowDragDrop}else
{if(parent&&parent.canUserDragDrop){parent.canUserDragDrop(value)}else
{self._allowDragDrop=value}return self}};Sheet.prototype.canUserDragFill=function(value){var self=this,parent=self.parent;if(arguments.length===0){if(!spread.features.fill){return false}if(parent&&parent.canUserDragFill){self._allowDragFill=parent.canUserDragFill()}return self._allowDragFill}else
{var oldValue=self.canUserDragFill();if(oldValue!==value){if(parent&&parent.canUserDragFill){parent.canUserDragFill(value)}else
{self._allowDragFill=value}if(self.getSelections().length===1&&!self._paintSuspended){self._render.repaintSelection(self.getSelections().toArray()[0])}}return self}};Sheet.prototype.isColumnBound=function(column){var self=this;if(column<0||column>=self.getColumnCount()){return false}var ds=self.getDataSource();if(ds){if(self._colInfos){var ci=self._colInfos[column];return!!(ci&&ci.name)}}return false};Sheet.prototype.getDataColumnName=function(column){var self=this;if(column<0||column>=self.getColumnCount()){return keyword_null}var ds=self.getDataSource();if(ds){if(self._colInfos){var ci=self._colInfos[column];return ci.displayName||ci.name}}return keyword_null};Sheet.prototype.getSparkline=function(row,col){if(!this._sparklineGroupManager){return keyword_null}var sheetArea=3;var m=this._getModel(sheetArea);return m.getSparkline(row,col)};Sheet.prototype.setSparkline=function(row,col,dataRange,dataOrientation,sparklineType,sparklineSetting,dateAxisRange,dateAxisOrientation){var self=this,sparklineGroupManager=self._sparklineGroupManager;if(!sparklineGroupManager){return keyword_null}return self._bindToAutoRefresh(function(row,col,dataRange,dataOrientation,sparklineType,sparklineSetting,dateAxisRange,dateAxisOrientation){var data=dataRange;var sparkline=new spread.Sparkline(row,col,data,dataOrientation,sparklineType,sparklineSetting);if(dateAxisRange&&dateAxisOrientation!==keyword_undefined&&dateAxisOrientation!==keyword_null){sparkline.dateAxisData(dateAxisRange);sparkline.dateAxisOrientation(dateAxisOrientation);sparkline.group().displayDateAxis=true}self.removeSparkline(row,col);var m=self._getModel();m.setSparkline(row,col,sparkline);sparklineGroupManager.add(sparkline.group());self._raiseCellChanged("sparkline",row,col,3);return sparkline})(row,col,dataRange,dataOrientation,sparklineType,sparklineSetting,dateAxisRange,dateAxisOrientation)};Sheet.prototype.removeSparkline=function(row,col){var self=this,sparklineGroupManager=self._sparklineGroupManager;if(!sparklineGroupManager){return}self._bindToAutoRefresh(function(row,col){var sheetArea=3;var m=self._getModel(sheetArea);var old=m.getSparkline(row,col);if(old){var g=old.group();g.remove(old);if(g.count()<=0){sparklineGroupManager.remove(g)}}m.setSparkline(row,col,keyword_null)})(row,col)};Sheet.prototype.groupSparkline=function(sparklines){var sparklineGroupManager=this._sparklineGroupManager;if(!sparklineGroupManager){return keyword_null}return this._bindToAutoRefresh(function(sparklines){var first=keyword_null;for(var i=0;i<sparklines.length;i++){var si=sparklines[i];if(!si){continue}if(!first){first=si.group();continue}var sg=si.group();sg.remove(si);first.add(si);if(sg.count()<=0){sparklineGroupManager.remove(sg)}}return first})(sparklines)};Sheet.prototype.ungroupSparkline=function(group){var self=this,sparklineGroupManager=self._sparklineGroupManager;if(!sparklineGroupManager){return}self._bindToAutoRefresh(function(group){if(!group){return}var sparklines=[];sparklines=sparklines.concat(group._innerList);for(var i=0;i<sparklines.length;i++){var sparkline=sparklines[i];if(sparkline){group.remove(sparkline);var newGroup=group.clone();newGroup.add(sparkline);sparklineGroupManager.add(newGroup)}}sparklineGroupManager.remove(group)})(group)};Sheet.prototype.fillAuto=function(startRange,wholeRange,series){if(!spread.features.fill){return}if(!wholeRange){throw new Error(spread.SR.Exp_RangeIsNull);}var self=this;if(!self._checkFillRange(startRange,wholeRange,series)){return}self._bindToAutoRefresh(function(startRange,wholeRange,series){if(startRange){self._eventHandler._dragFillStartRange=startRange}var fill=new spread.FillImp(self);fill.fillAuto(wholeRange,series)})(startRange,wholeRange,series)};Sheet.prototype.fillAutobyDirection=function(startRange,wholeRange,direction){if(!spread.features.fill){return}if(!wholeRange){throw new Error(spread.SR.Exp_RangeIsNull);}var self=this;if(!self._checkFillRange(startRange,wholeRange,keyword_null,direction)){return}self._bindToAutoRefresh(function(startRange,wholeRange,direction){if(startRange){self._eventHandler._dragFillStartRange=startRange}var fill=new spread.FillImp(self);fill.fillAutobyDirection(wholeRange,direction)})(startRange,wholeRange,direction)};Sheet.prototype.fillLinear=function(startRange,wholeRange,series,step,stop){if(!spread.features.fill){return}if(!wholeRange){throw new Error(spread.SR.Exp_RangeIsNull);}var self=this;if(!self._checkFillRange(startRange,wholeRange,series)){return}self._bindToAutoRefresh(function(startRange,wholeRange,series,step,stop){if(startRange){self._eventHandler._dragFillStartRange=startRange}var fill=new spread.FillImp(self);fill.fillLinear(wholeRange,series,step,stop)})(startRange,wholeRange,series,step,stop)};Sheet.prototype.fillGrowth=function(startRange,wholeRange,series,step,stop){if(!spread.features.fill){return}if(!wholeRange){throw new Error(spread.SR.Exp_RangeIsNull);}var self=this;if(!self._checkFillRange(startRange,wholeRange,series)){return}self._bindToAutoRefresh(function(startRange,wholeRange,series,step,stop){if(startRange){self._eventHandler._dragFillStartRange=startRange}var fill=new spread.FillImp(self);fill.fillGrowth(wholeRange,series,step,stop)})(startRange,wholeRange,series,step,stop)};Sheet.prototype.fillDate=function(startRange,wholeRange,series,unit,step,stop){if(!spread.features.fill){return}if(!wholeRange){throw new Error(spread.SR.Exp_RangeIsNull);}var self=this;if(!self._checkFillRange(startRange,wholeRange,series)){return}self._bindToAutoRefresh(function(startRange,wholeRange,series,unit,step,stop){if(startRange){self._eventHandler._dragFillStartRange=startRange}var fill=new spread.FillImp(self);var oaStop=keyword_null;if(stop!==keyword_undefined&&stop!==keyword_null){oaStop=new spread._DateTimeHelper(stop).toOADate()}fill.fillDate(wholeRange,series,unit,step,oaStop)})(startRange,wholeRange,series,unit,step,stop)};Sheet.prototype._checkFillRange=function(startRange,wholeRange,series,direction){if(!startRange||!wholeRange){return false}if(!wholeRange.containsRange(startRange)){return false}if(series!==keyword_undefined&&series!==keyword_null){if(series===1){if(startRange.row===wholeRange.row&&startRange.rowCount===wholeRange.rowCount){return true}}else if(series===0){if(startRange.col===wholeRange.col&&startRange.colCount===wholeRange.colCount){return true}}}if(direction!==keyword_undefined&&direction!==keyword_null){if(direction===2||direction===3){if(startRange.col===wholeRange.col&&startRange.colCount===wholeRange.colCount){return true}}else if(direction===0||direction===1){if(startRange.row===wholeRange.row&&startRange.rowCount===wholeRange.rowCount){return true}}}return false};Sheet.prototype.clear=function(row,column,rowCount,columnCount,area,type){this.clearCore(row,column,rowCount,columnCount,area,type)};Sheet.prototype._checkArrayFormula=function(row,column,rowCount,columnCount,onlyCheckIntersected){onlyCheckIntersected=onlyCheckIntersected===undefined?true:false;if(onlyCheckIntersected&&this._hasPartArrayFormulas(row,column,rowCount,columnCount)||!onlyCheckIntersected&&this._hasArrayFormula(row,column,rowCount,columnCount)){this._raiseInvalidOperation(4,spread.SR.Exp_ChangePartOfArray);return false}return true};Sheet.prototype.clearCore=function(row,column,rowCount,columnCount,area,type,ignoreFilteredOutRow){var self=this;self._bindToAutoRefresh(function(row,column,rowCount,columnCount,area,type){self.suspendCalcService();try
{var r,c,i,j;var viewport=3;if(area===keyword_undefined||area===keyword_null||area===viewport){if(!self._checkArrayFormula(row,column,rowCount,columnCount)){return false}if((type&1)===1){if(self.getDataSource()||self.dataContext){self.suspendEvent();for(r=row;r<row+rowCount;r++){if(ignoreFilteredOutRow&&self.isRowFilterOut(r)){continue}for(c=column;c<column+columnCount;c++){self.setValue(r,c,keyword_null,area)}}self.resumeEvent()}if(self._conditionalFormats){self._conditionalFormats._clearCache()}if(self._rowFilter&&self._rowFilter.range){self._rowFilter._clear(row,column,rowCount,columnCount)}}if((type&16)===16){if(self._sparklineGroupManager){self._sparklineGroupManager.clear(row,column,rowCount,columnCount)}}if(self._tableManager){self._tableManager.clear(row,column,rowCount,columnCount,type)}if((type&4)===4){if(self._commentManager){self._commentManager.clear(row,column,rowCount,columnCount)}}}var block=self._getModel(area);var calcBlock=self._getCalcModel(area);if(block){r=row===-1?0:row;var rc=row===-1?block.rowCount:rowCount;c=column===-1?0:column;var cc=column===-1?block.colCount:columnCount;var hiddenRowList=[];for(var rowIndex=r;rowIndex<rc;rowIndex++){if(ignoreFilteredOutRow&&self.isRowFilterOut(rowIndex)){hiddenRowList.push(rowIndex)}}block.clear(r,c,rc,cc,type,hiddenRowList);if(calcBlock){calcBlock.clear(r,c,rc,cc,type)}if((type&2)===2){if(!(row>=0&&column>=0)){if(column>=0){for(j=0;j<cc;j++){self.setStyle(-1,c+j,keyword_null,area)}}else if(row>=0){for(i=0;i<rc;i++){if(ignoreFilteredOutRow&&self.isRowFilterOut(r+i)){continue}self.setStyle(r+i,-1,keyword_null,area)}}else
{self.setStyle(-1,-1,keyword_null,area)}}}if((type&32)===32){if(!(row>=0&&column>=0)){if(column>=0){for(j=0;j<cc;j++){self.setColumnVisible(c+j,true,area);self.setColumnResizable(c+j,true,area);self.setColumnWidth(c+j,(area===2)?self.defaults.rowHeaderColWidth:self.defaults.colWidth,area)}}else if(row>=0){for(i=0;i<rc;i++){if(ignoreFilteredOutRow&&self.isRowFilterOut(r+i)){continue}self.setRowVisible(r+i,true,area);self.setRowResizable(r+i,true,area);self.setRowHeight(r+i,(area===1)?self.defaults.colHeaderRowHeight:self.defaults.rowHeight,area)}}else
{for(j=0;j<cc;j++){self.setColumnVisible(c+j,true,area);self.setColumnResizable(c+j,true,area);self.setColumnWidth(c+j,(area===2)?self.defaults.rowHeaderColWidth:self.defaults.colWidth,area)}for(i=0;i<rc;i++){if(ignoreFilteredOutRow&&self.isRowFilterOut(r+i)){continue}self.setRowVisible(r+i,true,area);self.setRowResizable(r+i,true,area);self.setRowHeight(r+i,(area===1)?self.defaults.colHeaderRowHeight:self.defaults.rowHeight,area)}}}}for(i=0;i<rc;i++){for(j=0;j<cc;j++){r=row+i;c=column+j;if((type&1)===1){self._raiseCellChanged(_value,r,c,area)}if((type&2)===2){self._raiseCellChanged("style",r,c,area)}if((type&16)===16){self._raiseCellChanged("sparkline",r,c,area)}if((type&4)===4){self._raiseCellChanged("comment",r,c,area)}if((type&32)===32){self._raiseCellChanged("axis",r,c,area)}if((type&64)===64){self._raiseCellChanged("bindingPath",r,c,area)}}}}if(area===keyword_undefined||area===keyword_null||area===viewport){if((type&1)===1){var sheetSource=self._getSheetSource();if(sheetSource){sheetSource._addCellsToDirty(row,column,rowCount,columnCount)}}}}finally
{self.resumeCalcService()}})(row,column,rowCount,columnCount,area,type)};Sheet.prototype.getConditionalFormats=function(){var self=this;if(!self._conditionalFormats&&spread.features.conditionalFormat){self._conditionalFormats=new spread.ConditionalFormats(self)}return self._conditionalFormats};Sheet.prototype.rowFilter=function(value){var self=this;if(arguments.length===0){return self._rowFilter}else
{return self._bindToAutoRefresh(function(value){if(self._rowFilter){self._rowFilter.reset()}self._rowFilter=value;if(self._rowFilter){self._rowFilter.sheet=self}return self})(value)}};Sheet.prototype.autoFitColumn=function(column){if(column<0||column>=this.getColumnCount()){return}var action=new spread.UndoRedo.ColumnAutoFitUndoAction(this,[{col:column}],false);action.execute(this)};Sheet.prototype.autoFitRow=function(row){if(row<0||row>=this.getRowCount()){return}var action=new spread.UndoRedo.RowAutoFitUndoAction(this,[{row:row}],false);action.execute(this)};Sheet.prototype.setGridlineOptions=function(options){var self=this;self._bindToAutoRefresh(function(options){if(options){if(!self.gridline){self.gridline={}}var gridline=self.gridline;if(options.color){gridline.color=options.color}if(options.showVerticalGridline!==keyword_null&&options.showVerticalGridline!==keyword_undefined){gridline.showVerticalGridline=options.showVerticalGridline}if(options.showHorizontalGridline!==keyword_null&&options.showHorizontalGridline!==keyword_undefined){gridline.showHorizontalGridline=options.showHorizontalGridline}}})(options)};Sheet.prototype.getGridlineOptions=function(){var self=this;if(!self.gridline){self.gridline={}}var gridline=self.gridline;var options={};options.color=gridline.color;options.showVerticalGridline=gridline.showVerticalGridline;options.showHorizontalGridline=gridline.showHorizontalGridline;return options};Sheet.prototype.getFrozenRowCount=function(){return this.frozenRowCount};Sheet.prototype.getFrozenColumnCount=function(){return this.frozenColCount};Sheet.prototype.getFrozenTrailingRowCount=function(){return this._frozenTrailingRowCount};Sheet.prototype.getFrozenTrailingColumnCount=function(){return this._frozenTrailingColCount};Sheet.prototype.setRowHeaderVisible=function(visible){this._bindToAutoRefresh(function(options){this.rowHeaderVisible=visible})(visible)};Sheet.prototype.getRowHeaderVisible=function(){return this.rowHeaderVisible};Sheet.prototype.setColumnHeaderVisible=function(visible){this._bindToAutoRefresh(function(options){this.colHeaderVisible=visible})(visible)};Sheet.prototype.getColumnHeaderVisible=function(){return this.colHeaderVisible};Sheet.prototype.setRowHeaderAutoText=function(autoText){this._bindToAutoRefresh(function(autoText){this.rowHeaderAutoText=autoText})(autoText)};Sheet.prototype.getRowHeaderAutoText=function(){return this.rowHeaderAutoText};Sheet.prototype.setColumnHeaderAutoText=function(autoText){this._bindToAutoRefresh(function(autoText){this.colHeaderAutoText=autoText})(autoText)};Sheet.prototype.getColumnHeaderAutoText=function(){return this.colHeaderAutoText};Sheet.prototype.setRowHeaderAutoTextIndex=function(autoTextIndex){this._bindToAutoRefresh(function(autoTextIndex){this.rowHeaderAutoTextIndex=autoTextIndex})(autoTextIndex)};Sheet.prototype.getRowHeaderAutoTextIndex=function(){return this.rowHeaderAutoTextIndex};Sheet.prototype.setColumnHeaderAutoTextIndex=function(autoTextIndex){this._bindToAutoRefresh(function(autoTextIndex){this.colHeaderAutoTextIndex=autoTextIndex})(autoTextIndex)};Sheet.prototype.getColumnHeaderAutoTextIndex=function(){return this.colHeaderAutoTextIndex};Sheet.prototype.setIsProtected=function(isProtected){this._bindToAutoRefresh(function(autoTextIndex){this.isProtected=isProtected})(isProtected)};Sheet.prototype.getIsProtected=function(){return this.isProtected};Sheet.prototype.setArray=function(row,column,array,setFormula){var self=this;var rowCount=self.getRowCount(),columnCount=self.getColumnCount();if(array&&0<=row&&row<rowCount&&0<=column&&column<columnCount){self.suspendCalcService();var oldState=self.isPaintSuspended();self.isPaintSuspended(true);try
{$.each(array,function(i,v){if(!(v instanceof Array)){var r=row+i,c=column;if(r<rowCount&&c<columnCount){if(setFormula){self.setFormula(r,c,v,3)}else
{self.setValue(r,c,v,3,true)}}}else
{$.each(v,function(j,vv){var r=row+i,c=column+j;if(r<rowCount&&c<columnCount){if(setFormula){self.setFormula(r,c,vv,3)}else
{self.setValue(r,c,vv,3,true)}}})}})}finally
{self.resumeCalcService();self.isPaintSuspended(oldState)}}};Sheet.prototype.getArray=function(row,column,rowCount,columnCount,getFormula){var self=this;var array=[];var rc=self.getRowCount(),cc=self.getColumnCount();if(0<=row&&row<rc&&0<=column&&column<cc){if(row+rowCount>rc){rowCount=rc-row}if(column+columnCount>cc){columnCount=cc-column}for(var i=0;i<rowCount;i++){array[i]=[];for(var j=0;j<columnCount;j++){if(getFormula){array[i][j]=self.getFormula(row+i,column+j)}else
{array[i][j]=self.getValue(row+i,column+j)}}}}return array};Sheet.prototype.showRowRangeGroup=function(value){var self=this;if(arguments.length===0){if(!spread.features.group){return false}return self._showRowRangeGroup}if(self._showRowRangeGroup!==value){self._bindToAutoRefresh(function(value){self._showRowRangeGroup=value})(value)}return self};Sheet.prototype.showColumnRangeGroup=function(value){var self=this;if(arguments.length===0){if(!spread.features.group){return false}return self._showColumnRangeGroup}if(self._showColumnRangeGroup!==value){self._bindToAutoRefresh(function(value){self._showColumnRangeGroup=value})(value)}return self};Sheet.prototype.addTable=function(name,row,column,rowCount,columnCount,style){var self=this;var tm=self._tableManager;if(!tm){return keyword_null}self._checkCanAddTable(name,row,column,rowCount,columnCount,true);if(style===keyword_undefined){style=spread.TableStyles.medium2()}var oldState=self.isPaintSuspended();self.isPaintSuspended(true);try
{return tm.add(new spread.SheetTable(name,row,column,rowCount,columnCount,style))}finally
{self.isPaintSuspended(oldState)}};Sheet.prototype.addTableByDataSource=function(name,row,column,dataSource,style){var self=this;var tm=self._tableManager;if(!tm||!spread.features.binding){return keyword_null}if(!dataSource){throw new Error(spread.SR.Exp_TableDataSourceNullError);}self._checkCanAddTable(name,row,column,1,1,true);var bs=new spread._BindingManager;bs.bind(dataSource);var rowCount=bs.getRowCount();var columnCount=bs.getColumnCount();rowCount=rowCount+1;if(row+rowCount>self.getRowCount()){self.setRowCount(row+rowCount)}if(column+columnCount>self.getColumnCount()){self.setColumnCount(column+columnCount)}self._checkCanAddTable(name,row,column,rowCount,columnCount,true);if(style===keyword_undefined){style=spread.TableStyles.medium2()}var oldState=self.isPaintSuspended();self.isPaintSuspended(true);try
{var table=tm.add(new spread.SheetTable(name,row,column,rowCount,columnCount,style));table._bind(bs);return table}finally
{self.isPaintSuspended(oldState)}};Sheet.prototype.findTable=function(row,column){var tm=this._tableManager;if(tm){return tm.find(row,column)}return keyword_null};Sheet.prototype.findTableByName=function(name){var tm=this._tableManager;if(tm){return tm.findByName(name)}return keyword_null};Sheet.prototype.removeTable=function(table){var self=this;var tm=self._tableManager;if(!table||!tm){return self}var oldState=self.isPaintSuspended();self.isPaintSuspended(true);try
{tm.remove(table);return self}finally
{self.isPaintSuspended(oldState)}};Sheet.prototype.removeTableByName=function(name){var table=this.findTableByName(name);if(table){this.removeTable(table)}return this};Sheet.prototype.moveTable=function(table,row,column){var self=this;var tm=self._tableManager;if(!tm||!table||row<0||column<0){return self}var cr=table.range(),rowCount=cr.rowCount,columnCount=cr.colCount;var tables=tm.findByRange(row,column,rowCount,columnCount);if(tables){if(tables.length>1){return self}else if(tables.length===1&&tables[0]!==table){return self}}var oldState=self.isPaintSuspended();self.isPaintSuspended(true);try
{table._moveTo(row,column);return self}finally
{self.isPaintSuspended(oldState)}};Sheet.prototype.moveTableByName=function(name,row,column){var table=this.findTableByName(name);if(table){this.moveTable(table,row,column)}return this};Sheet.prototype.resizeTable=function(table,rowCount,columnCount){var self=this;var tm=self._tableManager;if(!tm||!table||rowCount<0||columnCount<0){return self}var cr=table.range(),row=cr.row,column=cr.col;var tables=tm.findByRange(row,column,rowCount,columnCount);if(tables&&tables.length>1){return self}var oldState=self.isPaintSuspended();self.isPaintSuspended(true);try
{table._resize(rowCount,columnCount);return self}finally
{self.isPaintSuspended(oldState)}};Sheet.prototype.resizeTableByName=function(name,rowCount,columnCount){var table=this.findTableByName(name);if(table){this.resizeTable(table,rowCount,columnCount)}return this};Sheet.prototype.getTables=function(){var tm=this._tableManager;if(tm){return tm.getTables()}};Sheet.prototype.selectionBackColor=function(value){var self=this;if(arguments.length===0){return self._selectionBackColor}return self._bindToAutoRefresh(function(value){if(value){self._selectionBackColor=value}return self})(value)};Sheet.prototype.selectionBorderColor=function(value){var self=this;if(arguments.length===0){return self._selectionBorderColor}return self._bindToAutoRefresh(function(value){if(value){self._selectionBorderColor=value}return self})(value)};Sheet.prototype._addTableInternal=function(table){var tm=this._tableManager;if(!tm){return}var cr=table.range();if(!this._checkCanAddTable(table.name(),cr.row,cr.col,cr.rowCount,cr.colCount)){return}tm.add(table)};Sheet.prototype._checkCanAddTable=function(name,row,col,rowCount,colCount,throwException){var self=this;if(!name){if(throwException){throw new Error(spread.SR.Exp_TableEmptyNameError);}return false}if(row<0||rowCount<1||row+rowCount>self.getRowCount()){if(throwException){throw new Error(spread.SR.Exp_TableInvalidRow);}return false}if(col<0||colCount<1||col+colCount>self.getColumnCount()){if(throwException){throw new Error(spread.SR.Exp_TableInvalidColumn);}return false}if(self._hasTable(row,col,rowCount,colCount)){if(throwException){throw new Error(spread.SR.Exp_TableIntersectError);}return false}if((self.parent&&self.parent._findTable(name))||(!self.parent&&self.findTableByName(name))){if(throwException){throw new Error(spread.SR.Exp_TableHasSameNameError);}return false}var arrarFormulas=self._getsArrayFormulas(row,col,rowCount,colCount);if(arrarFormulas&&arrarFormulas.ranges&&arrarFormulas.ranges.length>0){for(var i=0;i<arrarFormulas.ranges.length;i++){var baseRange=arrarFormulas.ranges[i];if(baseRange.rowCount>1||baseRange.colCount>1){if(throwException){throw new Error(spread.SR.Exp_ArrayFormulaTable);}return false}}}return true};Sheet.prototype._bindToAutoRefresh=function(fn,context){if(!context){context=this}return function(){var t=fn.apply(context,arguments);if(!context._paintSuspended){if(typeof(context.invalidateLayout)===const_function){context.invalidateLayout()}if(typeof(context.repaint)===const_function){context.repaint()}}return t}};Sheet.prototype._isValidSheetName=function(sheetName){if(!sheetName||sheetName===""){return false}var self=this,parent=self.parent;if(!parent){return true}var length=parent.sheets.length;for(var i=0;i<length;i++){var sheet=parent.sheets[i];if(sheet!==self){if(sheetName===sheet._name){return false}}}return true};Sheet.prototype._init=function(name){this._name=name;this._bounds=new spread.Rect(0,0,0,0);this.reset()};Sheet.prototype.applyOptions=function(options){if(!options){return}var self=this,defaults=self.defaults,gridline=self.gridline;if(typeof(options.name)===const_string&&options.name.length>0){self._name=options.name}if(options.data){self.setDataSource(options.data)}if(typeof(options.defaultRowHeight)===const_number){defaults.rowHeight=options.defaultRowHeight}if(typeof(options.defaultColWidth)===const_number){defaults.colWidth=options.defaultColWidth}if(typeof(options.defaultRowHeaderColWidth)===const_number){defaults.rowHeaderColWidth=options.defaultRowHeaderColWidth}if(typeof(options.defaultColHeaderRowHeight)===const_number){defaults.colHeaderRowHeight=options.defaultColHeaderRowHeight}if(typeof(options.rowCount)===const_number){self.setRowCount(options.rowCount)}if(typeof(options.colCount)===const_number){self.setColumnCount(options.colCount)}if(typeof(options.frozenRowCount)===const_number){self.frozenRowCount=options.frozenRowCount}if(typeof(options.frozenColCount)===const_number){self.frozenColCount=options.frozenColCount}if(typeof(options.frozenTrailingRowCount)===const_number){self._frozenTrailingRowCount=options.frozenTrailingRowCount}if(typeof(options.frozenTrailingColCount)===const_number){self._frozenTrailingColCount=options.frozenTrailingColCount}if(options.gridlineColor){gridline.color=options.gridlineColor}if(typeof(options.showVerticalGridline)===const_boolean){gridline.showVerticalGridline=options.showVerticalGridline}if(typeof(options.showHorizontalGridline)===const_boolean){gridline.showHorizontalGridline=options.showHorizontalGridline}if(options.borderColor){self.borderColor=options.borderColor}if(typeof(options.borderWidth)===const_number){self.borderWidth=options.borderWidth}if(typeof(options._zoomFactor)===const_number){self._zoomFactor=options._zoomFactor}if(typeof(options.rowHeaderVisible)===const_boolean){self.rowHeaderVisible=options.rowHeaderVisible}if(typeof(options.colHeaderVisible)===const_boolean){self.colHeaderVisible=options.colHeaderVisible}if(typeof(options.autoUpdate)===const_boolean){self.autoUpdate=options.autoUpdate}if(typeof(options.autoGenerateColumns)===const_boolean){self.autoGenerateColumns=options.autoGenerateColumns}if(options.rowHeaderAutoText){self.rowHeaderAutoText=options.rowHeaderAutoText}if(options.colHeaderAutoText){self.colHeaderAutoText=options.colHeaderAutoText}var activeRowIndex,activeColIndex;if(typeof(options._activeRowIndex)===const_number){activeRowIndex=options._activeRowIndex}if(typeof(options._activeColIndex)===const_number){activeColIndex=options._activeColIndex}self._setActiveCellCore(activeRowIndex,activeColIndex);if(typeof(options._allowCellOverflow)===const_boolean){self._allowCellOverflow=options._allowCellOverflow}if(typeof(options.isProtected)===const_boolean){self.isProtected=options.isProtected}if(typeof(options.allowUndo)===const_boolean){self.allowUndo(options.allowUndo)}var columns=options.columns;if(columns&&columns.length>0){self.autoGenerateColumns=false;self.bindColumns(columns)}var dataContext=options.dataContext;if(dataContext){var dc=new DataContext(dataContext.read,dataContext.create,dataContext.update,dataContext.remove);self.setDataContext(dc)}};Sheet.prototype._initDefaultFloatingObjectKeyMap=function(){var platform=navigator.platform,isMac=(platform&&platform.indexOf("Mac")>-1),ctrl,meta;if(isMac){ctrl=false;meta=true}else
{ctrl=true;meta=false}var self=this;self.addFloatingObjectKeyMap(27,false,false,false,false,spread.SpreadActions.unSelectAllFloatingObjects);self.addFloatingObjectKeyMap(46,false,false,false,false,spread.SpreadActions.deleteFloatingObject);self.addFloatingObjectKeyMap(9,false,false,false,false,spread.SpreadActions.navigationNextFloatingObject);self.addFloatingObjectKeyMap(9,false,true,false,false,spread.SpreadActions.navigationPreviousFloatingObject);self.addFloatingObjectKeyMap(88,ctrl,false,false,meta,spread.SpreadActions.clipboardCutFloatingObject);self.addFloatingObjectKeyMap(67,ctrl,false,false,meta,spread.SpreadActions.clipboardCopyFloatingObject);self.addFloatingObjectKeyMap(86,ctrl,false,false,meta,spread.SpreadActions.clipboardPasteFloatingObject);self.addFloatingObjectKeyMap(65,ctrl,false,false,meta,spread.SpreadActions.selectAllFloatingObjects);self.addFloatingObjectKeyMap(38,false,false,false,false,spread.SpreadActions.moveFloatingObjectUp);self.addFloatingObjectKeyMap(40,false,false,false,false,spread.SpreadActions.moveFloatingObjectDown);self.addFloatingObjectKeyMap(37,false,false,false,false,spread.SpreadActions.moveFloatingObjectLeft);self.addFloatingObjectKeyMap(39,false,false,false,false,spread.SpreadActions.moveFloatingObjectRight)};Sheet.prototype._initDefaultCommentKeyMap=function(){var platform=navigator.platform,isMac=(platform&&platform.indexOf("Mac")>-1),ctrl,meta;if(isMac){ctrl=false;meta=true}else
{ctrl=true;meta=false}var self=this;self.addCommentKeyMap(46,false,false,false,false,spread.SpreadActions.deleteComment);self.addCommentKeyMap(27,false,false,false,false,spread.SpreadActions.deactivateComment);self.addCommentKeyMap(38,false,false,false,false,spread.SpreadActions.moveCommentUp);self.addCommentKeyMap(40,false,false,false,false,spread.SpreadActions.moveCommentDown);self.addCommentKeyMap(37,false,false,false,false,spread.SpreadActions.moveCommentLeft);self.addCommentKeyMap(39,false,false,false,false,spread.SpreadActions.moveCommentRight)};Sheet.prototype._initDefaultKeyMap=function(){var platform=navigator.platform,isMac=(platform&&platform.indexOf("Mac")>-1),ctrl,meta;if(isMac){ctrl=false;meta=true}else
{ctrl=true;meta=false}var self=this;self.addKeyMap(37,false,false,false,false,spread.SpreadActions.navigationLeft);self.addKeyMap(39,false,false,false,false,spread.SpreadActions.navigationRight);self.addKeyMap(38,false,false,false,false,spread.SpreadActions.navigationUp);self.addKeyMap(40,false,false,false,false,spread.SpreadActions.navigationDown);self.addKeyMap(37,ctrl,false,false,meta,spread.SpreadActions.navigationHome2);self.addKeyMap(39,ctrl,false,false,meta,spread.SpreadActions.navigationEnd2);self.addKeyMap(38,ctrl,false,false,meta,spread.SpreadActions.navigationTop);self.addKeyMap(40,ctrl,false,false,meta,spread.SpreadActions.navigationBottom);self.addKeyMap(36,false,false,false,false,spread.SpreadActions.navigationHome);self.addKeyMap(36,true,false,false,false,spread.SpreadActions.navigationFirst);self.addKeyMap(35,false,false,false,false,spread.SpreadActions.navigationEnd);self.addKeyMap(35,true,false,false,false,spread.SpreadActions.navigationLast);self.addKeyMap(9,false,false,false,false,spread.SpreadActions.commitInputNavigationTabNext);self.addKeyMap(9,false,true,false,false,spread.SpreadActions.commitInputNavigationTabPrevious);self.addKeyMap(33,false,false,false,false,spread.SpreadActions.navigationPageUp);self.addKeyMap(34,false,false,false,false,spread.SpreadActions.navigationPageDown);self.addKeyMap(33,ctrl,false,false,meta,spread.SpreadActions.navigationPreviousSheet);self.addKeyMap(34,ctrl,false,false,meta,spread.SpreadActions.navigationNextSheet);self.addKeyMap(46,false,false,false,false,spread.SpreadActions.clear);self.addKeyMap(8,false,false,false,false,spread.SpreadActions.clearAndEditing);self.addKeyMap(13,false,false,false,false,spread.SpreadActions.commitInputNavigationDown);self.addKeyMap(13,false,true,false,false,spread.SpreadActions.commitInputNavigationUp);self.addKeyMap(27,false,false,false,false,spread.SpreadActions.cancelInput);self.addKeyMap(13,true,true,false,false,spread.SpreadActions.commitArrayFormula);self.addKeyMap(37,false,true,false,false,spread.SpreadActions.selectionLeft);self.addKeyMap(39,false,true,false,false,spread.SpreadActions.selectionRight);self.addKeyMap(38,false,true,false,false,spread.SpreadActions.selectionUp);self.addKeyMap(40,false,true,false,false,spread.SpreadActions.selectionDown);self.addKeyMap(36,false,true,false,false,spread.SpreadActions.selectionHome);self.addKeyMap(35,false,true,false,false,spread.SpreadActions.selectionEnd);self.addKeyMap(33,false,true,false,false,spread.SpreadActions.selectionPageUp);self.addKeyMap(34,false,true,false,false,spread.SpreadActions.selectionPageDown);self.addKeyMap(37,ctrl,true,false,meta,spread.SpreadActions.selectionHome);self.addKeyMap(39,ctrl,true,false,meta,spread.SpreadActions.selectionEnd);self.addKeyMap(38,ctrl,true,false,meta,spread.SpreadActions.selectionTop);self.addKeyMap(40,ctrl,true,false,meta,spread.SpreadActions.selectionBottom);self.addKeyMap(36,true,true,false,false,spread.SpreadActions.selectionFirst);self.addKeyMap(35,true,true,false,false,spread.SpreadActions.selectionLast);self.addKeyMap(67,ctrl,false,false,meta,spread.SpreadActions.copy);self.addKeyMap(88,ctrl,false,false,meta,spread.SpreadActions.cut);self.addKeyMap(86,ctrl,false,false,meta,spread.SpreadActions.paste);self.addKeyMap(90,ctrl,false,false,meta,spread.SpreadActions.undo);self.addKeyMap(89,ctrl,false,false,meta,spread.SpreadActions.redo)};Sheet.prototype._setHost=function(host){var isStandardCanvas=spread.util._isStandardCanvas();var isSilverlightCanvas=spread.util._isSilverlightCanvas();if(!isStandardCanvas&&isSilverlightCanvas)return;var self=this,eventHandler=self._eventHandler;var canvas=document.createElement("canvas");canvas.setAttribute("id",host.getAttribute("id")+"_vp");$(canvas).html("You need a browser which full supports HTML5 Canvas to run SpreadJS");host.appendChild(canvas);canvas.gcObject=true;var oldCanvas=self._canvas;if(oldCanvas){$(oldCanvas).unbind(_mouseDown_gcSheet).unbind(_mouseMove_gcSheet).unbind(_mouseUp_gcSheet).unbind(_mouseOut_gcSheet).unbind(_dblclick_gcSheet).unbind(_mouseWheel_gcSheet);self._unbindTouchEvents();if(oldCanvas.parentNode){oldCanvas.parentNode.removeChild(oldCanvas)}}self._canvas=canvas;if(spread.features.comment){if(self.parent){self._commentRender=self.parent._commentRender}else
{self._commentRender=new spread.CommentRender(self._getContainerDiv())}}canvas.setAttribute('renderMethod','auto');var device=spread.util.device();var needIgnoreMouseEvent=device.ipad||device.iphone;self._mouseDownDelegate=function(event){if(needIgnoreMouseEvent){return}var touchManager=self._touchManager;if(touchManager&&touchManager.preProcessMouseDown(event)){spread.util.cancelDefault(event);return}return eventHandler.doMouseDown(event)};self._mouseMoveDelegate=function(event){if(needIgnoreMouseEvent){return}var touchManager=self._touchManager;if(touchManager&&touchManager.preProcessMouseMove(event)){spread.util.cancelDefault(event);return}if(eventHandler._isMouseCapture){return}eventHandler.doMouseMove(event)};self._mouseUpDelegate=function(event){if(needIgnoreMouseEvent){return}var touchManager=self._touchManager;if(touchManager&&touchManager.preProcessMouseUp(event)){spread.util.cancelDefault(event);return}if(!self._continueMouseUpBubble){if(eventHandler._isMouseCapture){return}return eventHandler.doMouseUp(event)}};self._mouseOutDelegate=function(event){if(needIgnoreMouseEvent){return}return eventHandler.doMouseOut(event)};self._dblClickDelegate=function(event){if(needIgnoreMouseEvent){return}var sheet=self,i,selectedRange,action;if(sheet._isTouchMode){return}var currentTarget=sheet._currentTarget;if(currentTarget){sheet._trigger(spread.Events.CellDoubleClick,{sheet:sheet,sheetName:sheet._name,sheetArea:currentTarget.hitTestType,row:currentTarget.row,col:currentTarget.col});var resizeInfo=currentTarget.resizeInfo;if(resizeInfo){if(resizeInfo.action==="sizeRow"){var rowList=[];if(sheet._isRowSelected(resizeInfo.index)){for(i=0;i<sheet._selectionModel.length;i++){selectedRange=sheet._selectionModel[i];if(selectedRange.col===-1){selectedRange=sheet._getActualRange(selectedRange);for(var r=0;r<selectedRange.rowCount;r++){rowList.push({row:selectedRange.row+r})}}}}else
{rowList.push({row:resizeInfo.index})}action=new spread.UndoRedo.RowAutoFitUndoAction(sheet,rowList,resizeInfo.sheetArea===1);sheet._doCommand(action)}else
{var columnList=[];if(sheet._isColumnSelected(resizeInfo.index)){for(i=0;i<sheet._selectionModel.length;i++){selectedRange=sheet._selectionModel[i];if(selectedRange.row===-1){selectedRange=sheet._getActualRange(selectedRange);for(var c=0;c<selectedRange.colCount;c++){columnList.push({col:selectedRange.col+c})}}}}else
{columnList.push({col:resizeInfo.index})}action=new spread.UndoRedo.ColumnAutoFitUndoAction(sheet,columnList,resizeInfo.sheetArea===2);sheet._doCommand(action)}return}}return eventHandler.startEdit(event)};self._mouseWheelDelegate=function(e){if(needIgnoreMouseEvent){return}e=e?e:window.event;var wheelData=e.detail?e.detail:e.wheelDelta/-40;eventHandler.doMouseWheel(e,parseInt(wheelData,10));spread.util.cancelDefault(e);return false};$(canvas).bind(_mouseDown_gcSheet,self._mouseDownDelegate).bind(_mouseMove_gcSheet,self._mouseMoveDelegate).bind(_mouseUp_gcSheet,self._mouseUpDelegate).bind(_mouseOut_gcSheet,self._mouseOutDelegate).bind(_dblclick_gcSheet,self._dblClickDelegate).bind(_mouseWheel_gcSheet,self._mouseWheelDelegate);self._bindTouchEvents();self._initializeActiveCell();eventHandler.doResize();if(self.parent){self.parent._paintSpreadBackgroundImage()}if(spread.features.floatingObject){$(window.document.body).scroll(function(){var activeSheet=self.parent.getActiveSheet(),render=activeSheet._render,floatingObjectArray=activeSheet._floatingObjectArray;if(floatingObjectArray&&floatingObjectArray.length>0&&render){render._paintFloatingObject(activeSheet._bounds)}});self._bind(spread.Events.ColumnChanged,function(event,data){var propertyName=data.propertyName;if(propertyName==='width'||propertyName==='isVisible'){self._updateFloatingObjectsLayout()}});self._bind(spread.Events.RowChanged,function(event,data){var propertyName=data.propertyName;if(propertyName==='height'||propertyName==='isVisible'){self._updateFloatingObjectsLayout()}});self._bind(spread.Events.ColumnWidthChanged,function(event,data){self._updateFloatingObjectsLayout()});self._bind(spread.Events.RowHeightChanged,function(event,data){self._updateFloatingObjectsLayout()})}if(spread.features.comment){var commentManager=self._commentManager;self._bind(spread.Events.ColumnChanged,function(event,data){var propertyName=data.propertyName;if(propertyName==='width'||propertyName==='isVisible'){commentManager.updateCommentsLayoutWhenRowColumnChanged()}});self._bind(spread.Events.RowChanged,function(event,data){var propertyName=data.propertyName;if(propertyName==='height'||propertyName==='isVisible'){commentManager.updateCommentsLayoutWhenRowColumnChanged()}});self._bind(spread.Events.ColumnWidthChanged,function(event,data){commentManager.updateCommentsLayoutWhenRowColumnChanged()});self._bind(spread.Events.RowHeightChanged,function(event,data){commentManager.updateCommentsLayoutWhenRowColumnChanged()});self._bind(spread.Events.CommentChanged,function(event,data){var propertyName=data.propertyName;var commentView=commentManager.getCommentView(data.comment);if(propertyName==="autoSize"){commentView.updateLayoutWhenAutosizeChanged()}else if(propertyName==="location"){commentView.updateLayoutWhenLocationChanged()}else if(propertyName==="width"||propertyName==="height"){commentView.updateLayoutWhenWidthHeightChanged()}})}};Sheet.prototype._unbindTouchEvents=function(){if(this._touchManager){this._touchManager.detach()}};Sheet.prototype._bindTouchEvents=function(){if(!spread.features.touch){return}var self=this,tempSpread=self.parent,provider=(tempSpread&&tempSpread._touchEventProvider)?tempSpread._touchEventProvider:new spread.TouchEventProvider;var touchManager=new spread.TouchManager(self._canvas,self,provider);touchManager.attach();self._touchManager=touchManager};Sheet.prototype._disposeValidationUI=function(){var self=this;var validationInputMessage=self._validationInputMessage;if(validationInputMessage){var p=validationInputMessage.parentNode;if(p){p.removeChild(validationInputMessage)}self._validationInputMessage=keyword_null}var validationButton=self._validationButton;if(validationButton){var p=validationButton.parentNode;if(p){p.removeChild(validationButton)}self._validationButton=keyword_null}var validationSelect=self._validationSelect;if(validationSelect){var p=validationSelect.parentNode;if(p){p.removeChild(validationSelect)}self._validationSelect=keyword_null}};Sheet.prototype._disposeFloatingObjectUI=function(){var render=this._render,floatingObjectRenderManager=render&&render._floatingObjectRenderManager;if(floatingObjectRenderManager){var i,j,rowCount,colCount;for(i=0,rowCount=floatingObjectRenderManager.length;i<rowCount;i++){var rowRenderManagers=floatingObjectRenderManager[i];if(rowRenderManagers){for(j=0,colCount=rowRenderManagers.length;j<colCount;j++){var renderManager=rowRenderManagers[j];if(renderManager){renderManager._dispose()}}rowRenderManagers.length=0}}floatingObjectRenderManager.length=0;floatingObjectRenderManager=keyword_null}};Sheet.prototype._disposeComment=function(){var self=this,commentManager=self._commentManager;if(commentManager){commentManager.hideAllComments()}};Sheet.prototype._dispose=function(){var self=this;if(self.isEditing()){self.endEdit()}var canvas=self._canvas;if(canvas){$(canvas).unbind(_mouseDown_gcSheet).unbind(_mouseMove_gcSheet).unbind(_mouseUp_gcSheet).unbind(_mouseOut_gcSheet).unbind(_dblclick_gcSheet).unbind(_mouseWheel_gcSheet);canvas.parentNode.removeChild(canvas);self._canvas=keyword_null}$(window).unbind(_resize_gcSheet);spread.StyleHelper._disposeMeasureSpan();var eventHandler=self._eventHandler;if(eventHandler){eventHandler._dispose();eventHandler._disposeFocusHolders()}var filterDialiog=self._filterDialiog;if(filterDialiog){filterDialiog.close()}var smartTag=self._smartTag;if(smartTag){smartTag.close()}var editor=self._editor;if(editor){$(editor).remove()}var cutCopyIndicatorManager=self._cutCopyIndicatorManager;if(cutCopyIndicatorManager){cutCopyIndicatorManager._dispose()}self._disposeValidationUI();self._disposeFloatingObjectUI();self._disposeComment();self._disposeStringWidthPre();self._disposeStringWidthSpan()};Sheet.prototype._disposeStringWidthSpan=function(){var span=this._editingSpan;if(span){$(span).remove();this._editingSpan=keyword_undefined}};Sheet.prototype._disposeStringWidthPre=function(){var pre=this._editingPre;if(pre){$(pre).remove();this._editingPre=keyword_undefined}};Sheet.prototype._getModel=function(sheetArea){var self=this;if(sheetArea===3||typeof(sheetArea)===const_undefined||sheetArea===keyword_null){return self._dataModel}else if(sheetArea===2){return self._rowHeaderModel}else if(sheetArea===1){return self._colHeaderModel}return keyword_null};Sheet.prototype._getCalcModel=function(sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null||sheetArea===3){return this._calcDataModel}return keyword_null};Sheet.prototype._getValueImp=function(m,row,col,sheetArea){var self=this;if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var isViewport=(sheetArea===3);var t=keyword_null;var isTableHeader=false,tm=self._tableManager;if(isViewport&&tm&&tm._tableList.length>0){var table=tm.find(row,col);if(table&&table.showHeader()&&row===table.headerIndex()){var tc=table._getColumn(col);if(tc){isTableHeader=true;if(typeof(t)===const_undefined||t===keyword_null){t=tc.name()}}}}if((typeof(t)===const_undefined||t===keyword_null)){var bm=self._bindingManager,ds=(bm&&bm._dataSource);if(ds&&isViewport){t=bm.getValue(row,col)}}if(typeof(t)===const_undefined||t===keyword_null){t=m.getValue(row,col)}if(typeof(t)===const_string&&t.charAt(0)==='/'){var x;if(_jsonOADateRegExp.test(t)){x=t.match(_jsonOADateRegExp);t=spread._DateTimeHelper.fromOADate(parseFloat(x[1]))}else if(_jsonDateRegExp.test(t)){x=t.match(_jsonDateRegExp);t=new Date(parseFloat(x[1]))}}if(isTableHeader&&t!==keyword_null&&typeof(t)!==const_undefined){t=spread.util.toString(t)}return t};Sheet.prototype._getSwapIndex=function(array,start,index){var t=array[index-start];while(t.index<index){t=array[t.index-start]}return t.index};Sheet.prototype._quickSortImp=function(arr){if(arr.length<=1){return arr}var pivotIndex=Math_floor(arr.length/2);var pivot=arr[pivotIndex];var left=[];var right=[];var equal=[];for(var i=0;i<arr.length;i++){var compareResult=this._sortCompare(arr[i],pivot);if(compareResult<0){left.push(arr[i])}else if(compareResult>0){right.push(arr[i])}else
{equal.push(arr[i])}}return this._quickSortImp(left).concat(equal,this._quickSortImp(right))};Sheet.prototype._quickSort=function(row,column,rowCount,columnCount,byRows,sortInfo){var count=(byRows?rowCount:columnCount);var array=[];var temp;if(byRows){for(temp=0;temp<count;temp++){array[temp]={sheet:this,index:row+temp,byRows:byRows,sortInfo:sortInfo}}}else
{for(temp=0;temp<count;temp++){array[temp]={sheet:this,index:column+temp,byRows:byRows,sortInfo:sortInfo}}}array=this._quickSortImp(array);return array};Sheet.prototype._isEquals=function(v1,v2){if(v1 instanceof Date&&v2 instanceof Date){return new spread._DateTimeHelper(v1).toOADate()===new spread._DateTimeHelper(v2).toOADate()}else
{return v1===v2}};Sheet.prototype._isGreaterThan=function(v1,v2){if(typeof v1==="boolean"){v1=(v1?1:0)}else if(v1 instanceof Date){v1=new spread._DateTimeHelper(v1).toOADate()}if(typeof v2==="boolean"){v2=(v2?1:0)}else if(v2 instanceof Date){v2=new spread._DateTimeHelper(v2).toOADate()}if(typeof v1!==typeof v2&&(typeof v1==="number"||typeof v2==="number")){return(typeof v2==="number")}return v1>v2};Sheet.prototype._sortCompare=function(x,y){if(x.sortInfo&&x.sortInfo.length>0){var self=this;var ret=0,value1,value2,value1IsNullOrEmpty,value2IsNullOrEmpty;for(var i=0;i<x.sortInfo.length;i++){if(x.sortInfo[i]){var ascending=x.sortInfo[i].ascending;var index=x.sortInfo[i].index;if(0<=index){if(x.byRows){value1=x.sheet.getValue(x.index,index);value2=y.sheet.getValue(y.index,index);value1IsNullOrEmpty=value1===keyword_undefined||value1===keyword_null||value1==="";value2IsNullOrEmpty=value2===keyword_undefined||value2===keyword_null||value2==="";if(value1IsNullOrEmpty||value2IsNullOrEmpty){if(value1IsNullOrEmpty&&value2IsNullOrEmpty){ret=0}else if(value1IsNullOrEmpty&&!value2IsNullOrEmpty){ret=1}else if(!value1IsNullOrEmpty&&value2IsNullOrEmpty){ret=-1}}else
{if(self._isEquals(value1,value2)){ret=0}else if(self._isGreaterThan(value1,value2)){ret=(ascending?1:-1)}else
{ret=(ascending?-1:1)}}}else
{value1=x.sheet.getValue(index,x.index);value2=y.sheet.getValue(index,y.index);value1IsNullOrEmpty=value1===keyword_undefined||value1===keyword_null||value1==="";value2IsNullOrEmpty=value2===keyword_undefined||value2===keyword_null||value2==="";if(value1IsNullOrEmpty||value2IsNullOrEmpty){if(value1IsNullOrEmpty&&value2IsNullOrEmpty){ret=0}else if(value1IsNullOrEmpty&&!value2IsNullOrEmpty){ret=1}else if(!value1IsNullOrEmpty&&value2IsNullOrEmpty){ret=-1}}else
{if(self._isEquals(value1,value2)){ret=0}else if(self._isGreaterThan(value1,value2)){ret=(ascending?1:-1)}else
{ret=(ascending?-1:1)}}}}}if(ret!==0){break}}return ret}return 0};Sheet.prototype._getActualRange=function(range,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var actualRange=new spread.Range(-1,-1,-1,-1);if(range===keyword_null||typeof(range)===const_undefined){return actualRange}actualRange.col=range.col;actualRange.row=range.row;actualRange.colCount=range.colCount;actualRange.rowCount=range.rowCount;if(actualRange.col===-1){actualRange.col=0;actualRange.colCount=this.getColumnCount(sheetArea)}if(actualRange.row===-1){actualRange.row=0;actualRange.rowCount=this.getRowCount(sheetArea)}return actualRange};Sheet.prototype._getRangeRect=function(rowViewportIndex,colViewportIndex,range){var rect=new spread.Rect(-1,-1,-1,-1),self=this,layout=self._getSheetLayout();if(layout.width===0||layout.height===0){return rect}var colLayouts=self._getViewportColumnLayout(colViewportIndex),rowLayouts=self._getViewportRowLayout(rowViewportIndex);if(!colLayouts||colLayouts.length===0||!rowLayouts||rowLayouts.length===0){return rect}var actualRange=self._getActualRange(range),cachePool=self._cachePool,getColsWidth=function(c1,c2){var width=0,cachedColInfo;for(var c=c1;c<=c2;c++){cachedColInfo=cachePool.getCachedColumn(c);width+=cachedColInfo.width}return width},getRowsHeight=function(r1,r2){var height=0,cachedRowInfo;for(var r=r1;r<=r2;r++){cachedRowInfo=cachePool.getCachedRow(r);height+=cachedRowInfo.height}return height};var row1=actualRange.row,row2=actualRange.row+actualRange.rowCount-1,col1=actualRange.col,col2=actualRange.col+actualRange.colCount-1,firstRow=self.frozenRowCount,lastRow=self.getRowCount()-self._frozenTrailingRowCount-1,firstCol=self.frozenColCount,lastCol=self.getColumnCount()-self._frozenTrailingColCount-1,vLeftCol=colLayouts[0].col,vRightCol=colLayouts[colLayouts.length-1].col,vTopRow=rowLayouts[0].row,vBottomRow=rowLayouts[rowLayouts.length-1].row;var getPrevVisualCol=function(col,endCol){while(col>endCol){col--;if(self.getColumnVisible(col)){return col}}return col};var getNextVisualCol=function(col,endCol){while(col<endCol){col++;if(self.getColumnVisible(col)){return col}}return col};var getPrevVisualRow=function(row,endRow){while(row>endRow){row--;if(self.getRowVisible(row)){return row}}return row};var getNextVisualRow=function(row,endRow){while(row<endRow){row++;if(self.getRowVisible(row)){return row}}return row};if(col1<vLeftCol){col1=getPrevVisualCol(vLeftCol,col1)}if(col2>vRightCol){col2=getNextVisualCol(vRightCol,col2)}if(row1<vTopRow){row1=getPrevVisualRow(vTopRow,row1)}if(row2>vBottomRow){row2=getNextVisualRow(vBottomRow,row2)}if(col2<col1||row2<row1){return rect}if(colViewportIndex===0){if(col1<firstCol){rect.x=layout.frozenX+getColsWidth(0,col1-1);rect.width=getColsWidth(col1,col2)}}else if(colViewportIndex===1){if(col1<=lastCol&&col2>=firstCol){if(col1<vLeftCol){rect.x=layout.viewportX-getColsWidth(col1,vLeftCol-1)}else
{rect.x=layout.viewportX+getColsWidth(vLeftCol,col1-1)}rect.width=getColsWidth(col1,col2)}}else if(colViewportIndex===2){if(col2>lastCol){if(col1<vLeftCol){rect.x=layout.frozenTrailingX-getColsWidth(col1,vLeftCol-1)}else
{rect.x=layout.frozenTrailingX+getColsWidth(vLeftCol,col1-1)}rect.width=getColsWidth(col1,col2)}}if(rowViewportIndex===0){if(row1<firstRow){rect.y=layout.frozenY+getRowsHeight(0,row1-1);rect.height=getRowsHeight(row1,row2)}}else if(rowViewportIndex===1){if(row1<=lastRow&&row2>=firstRow){if(row1<vTopRow){rect.y=layout.viewportY-getRowsHeight(row1,vTopRow-1)}else
{rect.y=layout.viewportY+getRowsHeight(vTopRow,row1-1)}rect.height=getRowsHeight(row1,row2)}}else if(rowViewportIndex===2){if(row2>lastRow){if(row1<vTopRow){rect.y=layout.frozenTrailingY-getRowsHeight(row1,vTopRow-1)}else
{rect.y=layout.frozenTrailingY+getRowsHeight(vTopRow,row1-1)}rect.height=getRowsHeight(row1,row2)}}return rect};Sheet.prototype._getRangeRect2=function(range){var self=this;var rect=new spread.Rect(-1,-1,-1,-1),layout=self._getSheetLayout();if(layout.width===0||layout.height===0){return rect}var actualRange=self._getActualRange(range);var frozenColCount=(isNaN(self.frozenColCount)?0:self.frozenColCount),frozenRowCount=(isNaN(self.frozenRowCount)?0:self.frozenRowCount),frozenTrailingColCount=(isNaN(self._frozenTrailingColCount)?0:self._frozenTrailingColCount),frozenTrailingRowCount=(isNaN(self._frozenTrailingRowCount)?0:self._frozenTrailingRowCount);var cachePool=self._cachePool,getColsWidth=function(col1,col2){var width=0,cachedColInfo;for(var c=col1;c<=col2;c++){cachedColInfo=cachePool.getCachedColumn(c);width+=cachedColInfo.width}return width},getRowsHeight=function(row1,row2){var height=0,cachedRowInfo;for(var r=row1;r<=row2;r++){cachedRowInfo=cachePool.getCachedRow(r);height+=cachedRowInfo.height}return height};var row1=actualRange.row,row2=actualRange.row+actualRange.rowCount-1,col1=actualRange.col,col2=actualRange.col+actualRange.colCount-1,rowCount=self.getRowCount(),colCount=self.getColumnCount(),colLayout,rowLayout;if(col1<frozenColCount){rect.x=layout.frozenX+getColsWidth(0,col1-1);rect.width=getColsWidth(col1,Math_min(col2,frozenColCount-1));if(frozenColCount<=col2&&col2<colCount-frozenTrailingColCount){colLayout=self._getViewportColumnLayout(1);if(colLayout&&colLayout.length>0){rect.width+=getColsWidth(colLayout[0].col,Math_min(col2,colLayout[colLayout.length-1].col))}}else if(col2>=colCount-frozenTrailingColCount){colLayout=self._getViewportColumnLayout(2);if(colLayout&&colLayout.length>0){rect.width=colLayout[0].x-rect.x;rect.width+=getColsWidth(colCount-frozenTrailingColCount,Math_min(col2,colCount-1))}}}else if(col1<colCount-frozenTrailingColCount){colLayout=self._getViewportColumnLayout(1);if(!colLayout||colLayout.length===0||col1>colLayout[colLayout.length-1].col||col2<colLayout[0].col){return rect}rect.x=layout.viewportX+getColsWidth(colLayout[0].col,col1-1);if(frozenColCount<=col2&&col2<colCount-frozenTrailingColCount){rect.width=getColsWidth(Math_max(col1,colLayout[0].col),Math_min(col2,colLayout[colLayout.length-1].col))}else if(col2>=colCount-frozenTrailingColCount){colLayout=self._getViewportColumnLayout(2);if(colLayout&&colLayout.length>0){rect.width=colLayout[0].x-rect.x;rect.width+=getColsWidth(colCount-frozenTrailingColCount,Math_min(col2,colCount-1))}}}else if(col1<colCount){colLayout=self._getViewportColumnLayout(2);if(colLayout&&colLayout.length>0){rect.x=layout.frozenTrailingX+getColsWidth(colLayout[0].col,col1-1);rect.width=getColsWidth(col1,Math_min(col2,colCount-1))}}if(row1<frozenRowCount){rect.y=layout.frozenY+getRowsHeight(0,row1-1);rect.height=getRowsHeight(row1,Math_min(row2,frozenRowCount-1));if(frozenRowCount<=row2&&row2<rowCount-frozenTrailingRowCount){rowLayout=self._getViewportRowLayout(1);if(rowLayout&&rowLayout.length>0){rect.height+=getRowsHeight(rowLayout[0].row,Math_min(row2,rowLayout[rowLayout.length-1].row))}}else if(row2>=rowCount-frozenTrailingRowCount){rowLayout=self._getViewportRowLayout(2);if(rowLayout&&rowLayout.length>0){rect.height=rowLayout[0].y-rect.y;rect.height+=getRowsHeight(rowCount-frozenTrailingRowCount,Math_min(row2,rowCount-1))}}}else if(row1<rowCount-frozenTrailingRowCount){rowLayout=self._getViewportRowLayout(1);if(!rowLayout||rowLayout.length===0||row1>rowLayout[rowLayout.length-1].row||row2<rowLayout[0].row){return rect}rect.y=layout.viewportY+getRowsHeight(rowLayout[0].row,row1-1);if(frozenRowCount<=row2&&row2<rowCount-frozenTrailingRowCount){rect.height=getRowsHeight(Math_max(row1,rowLayout[0].row),Math_min(row2,rowLayout[rowLayout.length-1].row))}else if(row2>=rowCount-frozenTrailingRowCount){rowLayout=self._getViewportRowLayout(2);if(rowLayout&&rowLayout.length>0){rect.height=rowLayout[0].y-rect.y;rect.height+=getRowsHeight(rowCount-frozenTrailingRowCount,Math_min(row2,rowCount-1))}}}else if(row1<rowCount){rowLayout=self._getViewportRowLayout(2);if(rowLayout&&rowLayout.length>0){rect.y=layout.frozenTrailingY+getRowsHeight(rowLayout[0].row,row1-1);rect.height+=getRowsHeight(row1,Math_min(row2,rowCount-1))}}return rect};Sheet.prototype._getCanvas=function(){var c=this._canvas;if(!c&&this.parent){c=this.parent.canvas}if(c&&!c.getContext&&c.firstChild){c.getContext=c.firstChild.getContext}return c};Sheet.prototype._draw=function(ctx,clipRect){var render=this._render,ctx2=render._getCtx();if(ctx2){render.paint(ctx2,clipRect)}};Sheet.prototype._getStringWidth=function(value,font){return this._getStringWidthByCanvas(value,font)+1};Sheet.prototype._getStringWidthByCanvas=function(value,font){var currentFont="",render=this._render;if(font){currentFont=font}else
{currentFont=render._getZoomFont(render._getDefaultFont())}return spread._WordWrapHelper._measureText(value,currentFont)};Sheet.prototype._getFontHeight=function(font,ignoreCache){var self=this;var cache=self.fontHeightCache;if(!ignoreCache){if(cache){var h=cache[font];if(h){return h}}else
{cache=self.fontHeightCache={}}}var htmlSpan=self._getEditingSpan();if(font){htmlSpan.style.font=font}else
{htmlSpan.style.font=self._render._getDefaultFont()}htmlSpan.innerHTML="H";var fontHeight=htmlSpan.offsetHeight;if(!ignoreCache){cache[font]=fontHeight}return fontHeight};Sheet.prototype._getEditingSpan=function(){if(!this._editingSpan){var span=document.createElement("span"),spanStyle=span.style;spanStyle.visibility=_cssHidden;spanStyle.top="-10000px";spanStyle.left="-10000px";spanStyle.position="absolute";span.className="gcStringWidthSpanStyle";span.setAttribute("gcUIElement","gcStringWidthSpan");document.body.insertBefore(span,keyword_null);this._editingSpan=span}return this._editingSpan};Sheet.prototype._getColumnViewportIndexFromX=function(x){var layout=this._getSheetLayout();var colViewportIndex=keyword_null;if(layout.headerX<x&&x<layout.headerX+layout.rowHeaderWidth){colViewportIndex=-1}else if(layout.frozenX<x&&x<layout.frozenX+layout.frozenWidth){colViewportIndex=0}else if(layout.viewportX<x&&x<layout.viewportX+layout.viewportWidth){colViewportIndex=1}else if(layout.frozenTrailingX<x&&x<layout.frozenTrailingX+layout.frozenTrailingWidth){colViewportIndex=2}return colViewportIndex};Sheet.prototype._getRowViewportIndexFromY=function(y){var layout=this._getSheetLayout();var rowViewportIndex=keyword_null;if(layout.headerY<y&&y<layout.headerY+layout.colHeaderHeight){rowViewportIndex=-1}else if(layout.frozenY<y&&y<layout.frozenY+layout.frozenHeight){rowViewportIndex=0}else if(layout.viewportY<y&&y<layout.viewportY+layout.viewportHeight){rowViewportIndex=1}else if(layout.frozenTrailingY<y&&y<layout.frozenTrailingY+layout.frozenTrailingHeight){rowViewportIndex=2}return rowViewportIndex};Sheet.prototype._getRowIndexFromY=function(y,rowViewportIndex){var rowLayouts=keyword_null;if(rowViewportIndex===-1){rowLayouts=this._getColumnHeaderRowLayout()}else
{rowLayouts=this._getViewportRowLayout(rowViewportIndex)}if(rowLayouts){var rowLayout=rowLayouts.findY(y);if(rowLayout){return rowLayout.row}}};Sheet.prototype._getColumnIndexFromX=function(x,colViewportIndex){var colLayouts=keyword_null;if(colViewportIndex===-1){colLayouts=this._getRowHeaderColumnLayout()}else
{colLayouts=this._getViewportColumnLayout(colViewportIndex)}if(colLayouts){var colLayout=colLayouts.findX(x);if(colLayout){return colLayout.col}}};Sheet.prototype._isActiveCell=function(r,c){var self=this;return(self._activeRowIndex<=r&&r<self._activeRowIndex+self._activeRowCount&&self._activeColIndex<=c&&c<self._activeColIndex+self._activeColCount)};Sheet.prototype._isColumnSelected=function(c){for(var i=0;i<this._selectionModel.length;i++){var selectedRange=this._selectionModel[i];var col=(selectedRange.col===-1)?0:selectedRange.col;if(selectedRange.row===-1&&c>=col&&c<col+selectedRange.colCount){return true}}return false};Sheet.prototype._isRowSelected=function(r){for(var i=0;i<this._selectionModel.length;i++){var selectedRange=this._selectionModel[i];var row=(selectedRange.row===-1)?0:selectedRange.row;if(selectedRange.col===-1&&r>=row&&r<row+selectedRange.rowCount){return true}}return false};Sheet.prototype._isSelected=function(r,c,sheetArea){var selected=false;var selectionModel=this._selectionModel;for(var i=0,count=selectionModel.length;i<count;i++){var cr=selectionModel[i];var selectedRange=this._getActualRange(cr);if(sheetArea===3||typeof(sheetArea)===const_undefined||sheetArea===keyword_null){selected=(selectedRange.row<=r&&r<selectedRange.row+selectedRange.rowCount&&selectedRange.col<=c&&c<selectedRange.col+selectedRange.colCount)}else if(sheetArea===2){selected=(selectedRange.row<=r&&r<selectedRange.row+selectedRange.rowCount)}else if(sheetArea===1){selected=(selectedRange.col<=c&&c<selectedRange.col+selectedRange.colCount)}else if(sheetArea===0){selected=(cr.row===-1&&cr.col===-1)}if(selected){return selected}}return selected};Sheet.prototype._isAllSelected=function(r,c,sheetArea){var self=this;var selected=false;var sheetRowCount=self.getRowCount();var sheetColCount=self.getColumnCount();for(var i=0;i<self._selectionModel.length;i++){var selectedRange=self._selectionModel[i];if(sheetArea!==keyword_undefined&&sheetArea!==keyword_null&&sheetArea!==3){if(sheetArea===2){var row=(selectedRange.row===-1)?0:selectedRange.row;selected=(selectedRange.col===-1&&r>=row&&r<row+selectedRange.rowCount)}else if(sheetArea===1){var col=(selectedRange.col===-1)?0:selectedRange.col;selected=(selectedRange.row===-1&&c>=col&&c<col+selectedRange.colCount)}else if(sheetArea===0){selected=(selectedRange.row===-1&&selectedRange.col===-1&&selectedRange.rowCount===sheetRowCount&&selectedRange.colCount===sheetColCount)}}if(selected){return selected}}return selected};Sheet.prototype._isHover=function(r,c,sheetArea){var ishover=false;var target=this._currentTarget;if(target&&typeof(sheetArea)!==const_undefined&&sheetArea!==keyword_null){if(sheetArea===1){var inSpans=false,span=this._colHeaderSpanModel.find(target.row,target.col);if(span){inSpans=span.contains(r,c,1,1)}var hovered=(r===target.row&&c===target.col)||(inSpans);return(target.hitTestType===sheetArea&&hovered)}else if(sheetArea===2){var inSpans=false,span=this._rowHeaderSpanModel.find(target.row,target.col);if(span){inSpans=span.contains(r,c,1,1)}var hovered=(r===target.row&&c===target.col)||(inSpans);return(target.hitTestType===sheetArea&&hovered)}else if(sheetArea===3){return(target.hitTestType===sheetArea&&r===target.row&&c===target.col)}else if(sheetArea===0){return(target.hitTestType===sheetArea)}}return ishover};Sheet.prototype._indexToLetters=function(index){var t="A";var aCode=t.charCodeAt(0);var sb="";for(;index>0;index=(index-1)/26){var n=parseInt(((index-1)%26),10);if(index===1||(n>=0&&index>1)){sb=String.fromCharCode(aCode+n)+sb}}return sb};Sheet.prototype._doStartEdit=function(canvas,x,y){var self=this;var target=self.hitTest(x,y);if(!target){return}var row=target.row,col=target.col;if(row>=0&&col>=0&&target.rowViewportIndex>=0&&target.colViewportIndex>=0&&!target.resizeInfo&&!target.dragInfo&&row===self._activeRowIndex&&col===self._activeColIndex){var isEditing=self.isEditing();self._startEditImp(canvas,row,col);if(!isEditing&&self.isEditing()){var sheetArea=target.hitTestType;var ct=self.getCellType(row,col);if(ct._triggerButtonClicked){var cellRect=self.getCellRect(row,col);var cellStyle=self.getActualStyle(row,col,sheetArea);var context={sheet:self,row:row,col:col,sheetArea:sheetArea};var info=ct.getHitInfo(x,y,cellStyle,cellRect,context);if(info&&info.isReservedLocation){ct._triggerButtonClicked(self,row,col)}}}}};Sheet.prototype._getSheetArea=function(rowViewportIndex,colViewportIndex){if(rowViewportIndex>=0&&rowViewportIndex<=2&&colViewportIndex>=0){return 3}else if(rowViewportIndex>=0&&rowViewportIndex<=2&&colViewportIndex<0){return 2}else if(rowViewportIndex<0&&colViewportIndex>=0){return 1}else if(rowViewportIndex<0&&colViewportIndex<0){return 0}return keyword_null};Sheet.prototype.setFocus=function(){var eventHandler=this._eventHandler;if(eventHandler){eventHandler.setFocus()}};Sheet.prototype._startEditImp=function(canvas,row,col,rowViewportIndex,colViewportIndex,selectAll,defaultText){if(row<0||col<0){return}var self=this;if(self.isEditing()){return}var eventHandler=self._eventHandler;if(eventHandler){eventHandler.setFocus()}var r=row;var c=col;var cellRect=self.getCellRect(r,c);if(!cellRect||cellRect.width<=0||cellRect.height<=0){return}self.showCell(self._activeRowIndex,self._activeColIndex,3,3);var cellStyle=self.getActualStyle(row,col);if(self.isProtected&&cellStyle.locked!==false){return}var ct=self.getCellType(r,c);if(!ct){return}var editor;var context={sheet:self,row:row,col:col,sheetArea:3};if(ct.isImeAware(context)){if(eventHandler){editor=eventHandler._cellTypeFocusHolder}}else
{editor=ct.createEditorElement(context)}if(!editor){return}self._editor=editor;var args={sheet:self,sheetName:self._name,row:r,col:c,cancel:false};self._trigger(spread.Events.EditStarting,args);if(args&&args.cancel===true){return}var v=self.getValue(r,c),f=self.getFormula(r,c);var oldStatus=self._editorStatus;if(self._startEditByKeydown){self._editorStatus=1}else
{if((v===keyword_null||v===keyword_undefined)&&(f===keyword_null||f===keyword_undefined)){self._editorStatus=1}else
{self._editorStatus=2}}self._trigger(spread.Events.EditorStatusChanged,{sheet:self,sheetName:self._name,oldStatus:oldStatus,newStatus:self._editorStatus});var sheetLayout=self._getSheetLayout();var cellRect=self.getCellRect(r,c,rowViewportIndex,colViewportIndex);if(ct.isImeAware(context)){eventHandler._resetFocusHolder()}ct.activateEditor(self._editor,cellStyle,cellRect,context);self._setEditorValue(ct,self._editor,r,c,cellStyle,defaultText);var colHeader=1,rowHeader=2;if(self.showEditingLocator){var locator=ct._getLocator();editor._editingLocator=locator;var colHeaderText=self.getValue(self._getModel(colHeader).rowCount-1,col,colHeader);var rowHeaderText=self.getValue(row,self._getModel(rowHeader).colCount-1,rowHeader);locator.innerHTML=colHeaderText+""+rowHeaderText;ct._updateEditorLocator(self._editor,context);document.body.insertBefore(locator,keyword_null)}if(!ct.isImeAware(context)){document.body.insertBefore(self._editor,keyword_null)}ct.updateEditor(self._editor,cellStyle,cellRect,context);if(!ct.isImeAware(context)||!selectAll){ct.focus(self._editor,context)}if(selectAll){ct.selectAll(self._editor,context)}if(self._allowCellOverflow){var crect=self.getCellRect(row,col,rowViewportIndex,colViewportIndex);crect.x-=2;crect.y-=2;crect.width+=4;crect.height+=4;crect.x=sheetLayout.frozenX;crect.width=sheetLayout.viewportWidth;self.repaint(crect)}self._render.refreshTouchSelectionIndicator();self._attachFormlulaTextBox(ct.getEditingElement());window.gcGlobal.activeElement=self;self._trigger(spread.Events.EditStarted,{sheet:self,sheetName:self._name,row:r,col:c})};Sheet.prototype._setEditorValue=function(ct,editor,r,c,cellStyle,defaultText){var self=this;var t=self.getFormula(r,c);if(t){t="="+t}var actualValue=t;var context={sheet:self,row:r,col:c,sheetArea:3};if(!t||t.length===0){t=self.getValue(r,c);var canUserEditFormula=self.parent?self.parent.canUserEditFormula():true;if(t&&t.length>0&&(/^=/ig).test(t)&&canUserEditFormula){t="'"+t}actualValue=t;t=ct._formatEditorValue(editor,cellStyle,t,context)}editor._oldValue=t;if(defaultText!==keyword_null&&defaultText!==keyword_undefined){t=defaultText}ct.setEditorValue(editor,t,context);editor._originalValue=actualValue};Sheet.prototype._attachFormlulaTextBox=function(editingElement){if(!spread.features.formulatextbox||!editingElement){return}var self=this;if(self._formulaTextBox){self._formulaTextBox.destroy()}self._formulaTextBox=new spread.FormulaTextBox(editingElement);var fbx=self._formulaTextBox,eventHandler=self._eventHandler,render=self._render;fbx.bind("AppendStarted",function(e){fbx.close();var EditorStatus=$.wijmo.wijspread.EditorStatus,oldStatus=self._editorStatus;if(oldStatus!==EditorStatus.Enter){self._editorStatus=EditorStatus.Enter;self._trigger("EditorStatusChanged",{sheet:self,sheetName:self._name,oldStatus:oldStatus,newStatus:EditorStatus.Enter})}});fbx.bind("AppendEnded",function(e){render.paintFormulaTextBox()});fbx.bind("TextChanged",function(e,eData){if(eData&&eData.type!=="input"){eventHandler.updateEditingEditor();var activeRow=self._activeRowIndex,activeCol=self._activeColIndex,ct=self.getCellType(activeRow,activeCol);self._trigger(spread.Events.EditChange,{sheet:self,sheetName:self._name,row:activeRow,col:activeCol,editingText:ct.getEditorValue(self._editor)})}render.paintFormulaTextBox();self._trigger("FormulaTextBoxTextChanged",{sheet:self,sheetName:self._name,text:fbx.text()})});fbx.bind("CaretChanged",function(){render.paintFormulaTextBox();self._trigger("FormulaTextBoxCaretChanged",{sheet:self,sheetName:self._name,caret:fbx.caret()})});fbx.add(spread.SR.getHelpFuncs());var fnds=this._functionDescriptions;if(fnds&&fnds.length>0){fbx.add(fnds)}fnds=(this.parent&&this.parent._functionDescriptions);if(fnds&&fnds.length>0){fbx.add(fnds)}render.paintFormulaTextBox()};Sheet.prototype._detachFormulaTextBox=function(){var self=this;if(self._formulaTextBox){self._formulaTextBox.destroy();self._formulaTextBox=keyword_null;self._render.paintFormulaTextBox()}};Sheet.prototype._showEditingLocator=function(){var self=this;if(self.isEditing()===false){return}var editor=self._editor,editorLocator=editor&&editor._editingLocator;if(editorLocator){var $editor=$(editor);var x=parseInt($editor.css(_cssLeft),10)+self.getColumnWidth(self._activeColIndex)/2,y=parseInt($editor.css(_cssTop),10)+self.getRowHeight(self._activeRowIndex)/2;var t=$(self._getCanvas()).offset();x-=t.left;y-=t.top;var row=self._getRowIndexFromY(y,self._getRowViewportIndexFromY(y));var col=self._getColumnIndexFromX(x,self._getColumnViewportIndexFromX(x));if(row===self._activeRowIndex&&col===self._activeColIndex){$(editorLocator).css(cssVisibility,_cssHidden)}else
{$(editorLocator).css(cssVisibility,"visible")}}};Sheet.prototype._getKeyAction=function(keyCode,ctrl,shift,alt,meta){var keyMap=this.keyMap;if(!keyMap){return keyword_null}var n=keyMap.length,ka;for(var i=0;i<n;i++){ka=keyMap[i];if(ka&&ka.key===keyCode&&ka.ctrl===ctrl&&ka.shift===shift&&ka.alt===alt&&ka.meta===meta){return ka}}return keyword_null};Sheet.prototype._getFloatingObjectKeyAction=function(keyCode,ctrl,shift,alt,meta){var foKeyMap=this.floatingObjectKeyMap;if(!foKeyMap){return keyword_null}var n=foKeyMap.length,ka;for(var i=0;i<n;i++){ka=foKeyMap[i];if(ka&&ka.key===keyCode&&ka.ctrl===ctrl&&ka.shift===shift&&ka.alt===alt&&ka.meta===meta){return ka}}return keyword_null};Sheet.prototype._getCommentKeyAction=function(keyCode,ctrl,shift,alt,meta){if(!this._commentKeyMap){return keyword_null}var ka;for(var i=0;i<this._commentKeyMap.length;i++){ka=this._commentKeyMap[i];if(ka&&ka.key===keyCode&&ka.ctrl===ctrl&&ka.shift===shift&&ka.alt===alt&&ka.meta===meta){return ka}}return keyword_null};Sheet.prototype._moveActiveCellUp=function(row,col,wrap){var self=this;var upCell=self._getMoveUpCell(row,col,wrap,self._leadingCellCol||0);if(upCell){var r=upCell.row,c=upCell.col,leadingCellCol=upCell.leadingCellCol;if(self._canMoveCurrentTo(r,c)){self._leadingCellRow=r;self._leadingCellCol=leadingCellCol;self._setActiveCellCore(r,c)}}};Sheet.prototype._getMoveUpCell=function(row,col,wrap,leadingCellCol){var r=row,c=col;if(r===0&&!wrap){return keyword_null}var self=this;var rowCount=self.getRowCount();var colCount=self.getColumnCount();var cell=self._getPrevRow(r,leadingCellCol);if(!wrap){self._adjustCell(cell)}r=cell.r;c=cell.c;if(r<0&&wrap){c=self._getPrevVisualColumn(c);if(c<0||c===keyword_undefined||c===keyword_null){c=self._getPrevVisualColumn(colCount)}leadingCellCol=c;cell=self._getPrevRow(rowCount,c);r=cell.r;c=cell.c;if(c===col&&r<=row){return keyword_null}}return{row:r,col:c,leadingCellCol:leadingCellCol}};Sheet.prototype._moveActiveCellDown=function(row,col,wrap){var self=this;var downCell=self._getMoveDownCell(row,col,wrap,self._leadingCellCol||0);if(downCell){var r=downCell.row,c=downCell.col,leadingCellCol=downCell.leadingCellCol;if(self._canMoveCurrentTo(r,c)){self._leadingCellRow=r;self._leadingCellCol=leadingCellCol;self._setActiveCellCore(r,c)}}};Sheet.prototype._getMoveDownCell=function(row,col,wrap,leadingCellCol){var self=this;var rowCount=self.getRowCount();var colCount=self.getColumnCount();var r=row,c=col;if(r===rowCount-1&&!wrap){return}var cell=self._getNextRow(r,leadingCellCol);if(!wrap){self._adjustCell(cell)}r=cell.r;c=cell.c;if(r===rowCount&&wrap){c=self._getNextVisualColumn(c);if(c>=colCount||c===keyword_undefined||c===keyword_null){c=self._getNextVisualColumn(-1)}leadingCellCol=c;cell=self._getNextRow(-1,c);r=cell.r;c=cell.c;if(c===col&&r>=row){return}}return{row:r,col:c,leadingCellCol:leadingCellCol}};Sheet.prototype._moveActiveCellLeft=function(row,col,wrap){var self=this;var leftCell=self._getMoveLeftCell(row,col,wrap,self._leadingCellRow||0);if(leftCell){var r=leftCell.row,c=leftCell.col,leadingCellRow=leftCell.leadingCellRow;if(self._canMoveCurrentTo(r,c)){self._leadingCellRow=leadingCellRow;self._leadingCellCol=c;self._setActiveCellCore(r,c)}}};Sheet.prototype._getMoveLeftCell=function(row,col,wrap,leadingCellRow){var r=row,c=col;if(c===0&&!wrap){return keyword_null}var self=this;var rowCount=self.getRowCount();var colCount=self.getColumnCount();var cell=self._getPrevColumn(leadingCellRow,c);if(!wrap){self._adjustCell(cell)}r=cell.r;c=cell.c;while(c<0&&wrap){r=self._getPrevVisualRow(r,3,true);if(r<0||r===keyword_undefined||r===keyword_null){r=self._getPrevVisualRow(rowCount,3,true)}leadingCellRow=r;cell=self._getPrevColumn(r,colCount);r=cell.r;c=cell.c;if(r===row&&c<=col){return keyword_null}}return{row:r,col:c,leadingCellRow:leadingCellRow}};Sheet.prototype._adjustCell=function(cell){var self=this;if(cell.r<0){cell.r=self._getFirstVisualRow()}else if(cell.r>=self.getRowCount()){cell.r=self._getLastVisualRow()}if(cell.c<0){cell.c=self._getFirstVisualColumn()}else if(cell.c>=self.getColumnCount()){cell.c=self._getLastVisualColumn()}};Sheet.prototype._fixRange=function(range){var r=(range.row<0?0:range.row),c=(range.col<0?0:range.col),rc=(range.row<0?this.getRowCount():range.rowCount),cc=(range.col<0?this.getColumnCount():range.colCount);return new spread.Range(r,c,rc,cc)};Sheet.prototype._moveActiveCellLeftInSelection=function(row,col){var self=this;var selectionModel=self._selectionModel,startRangeIndex=selectionModel.activeSelectedRangeIndex,prevRangeIndex=-1;var startRange=self._fixRange(self._getActiveSelectedRange()),beginRow=startRange.row,beginCol=startRange.col,endCol=startRange.col+startRange.colCount-1;var r=row,c=col,cell;while(true){cell=self._getPrevColumnInSelection(r,c);r=cell.r;c=cell.c;if(c>=beginCol){break}if(prevRangeIndex===startRangeIndex&&r===row&&c<=col){return}r--;if(r>=beginRow){c=endCol+1}else
{var prevRange=self._fixRange(self._getActiveSelectedRange(3));prevRangeIndex=selectionModel.activeSelectedRangeIndex;beginRow=prevRange.row;beginCol=prevRange.col;endCol=prevRange.col+prevRange.colCount-1;r=prevRange.row+prevRange.rowCount-1;c=prevRange.col+prevRange.colCount}}if(r>=0){self._setActiveCellCore(r,c);self._leadingCellRow=r;self._leadingCellCol=c}};Sheet.prototype._moveActiveCellRightInSelection=function(row,col){var self=this;var selectionModel=self._selectionModel,startRangeIndex=selectionModel.activeSelectedRangeIndex,nextRangeIndex=-1;var startRange=self._fixRange(self._getActiveSelectedRange()),beginCol=startRange.col,endRow=startRange.row+startRange.rowCount-1,endCol=startRange.col+startRange.colCount-1;var r=row,c=col,cell;while(true){cell=self._getNextColumnInSelection(r,c);r=cell.r;c=cell.c;if(c<=endCol){break}if(nextRangeIndex===startRangeIndex&&r===row&&c>=col){return}r++;if(r<=endRow){c=beginCol-1}else
{var nextRange=self._fixRange(self._getActiveSelectedRange(4));nextRangeIndex=selectionModel.activeSelectedRangeIndex;beginCol=nextRange.col;endRow=nextRange.row+nextRange.rowCount-1;endCol=nextRange.col+nextRange.colCount-1;r=nextRange.row;c=nextRange.col-1}}if(r>=0){self._setActiveCellCore(r,c);self._leadingCellRow=r;self._leadingCellCol=c}};Sheet.prototype._moveActiveCellRight=function(row,col,wrap){var self=this;var rightCell=self._getMoveRightCell(row,col,wrap,self._leadingCellRow||0);if(rightCell){var r=rightCell.row,c=rightCell.col,leadingCellRow=rightCell.leadingCellRow;if(self._canMoveCurrentTo(r,c)){self._leadingCellRow=leadingCellRow;self._leadingCellCol=c;self._setActiveCellCore(r,c)}}};Sheet.prototype._getMoveRightCell=function(row,col,wrap,leadingCellRow){var self=this;var rowCount=self.getRowCount();var colCount=self.getColumnCount();var r=row,c=col;if(c===colCount-1&&!wrap){return keyword_null}var cell=self._getNextColumn(leadingCellRow,c);if(!wrap){if(cell.c===colCount){return keyword_null}self._adjustCell(cell)}r=cell.r;c=cell.c;while(c===colCount&&wrap){r=self._getNextVisualRow(r,true);if(r>=rowCount||r===keyword_undefined||r===keyword_null){r=self._getNextVisualRow(-1,true)}leadingCellRow=r;cell=self._getNextColumn(r,-1);r=cell.r;c=cell.c;if(r===row&&c>=col){return keyword_null}}return{row:r,col:c,leadingCellRow:leadingCellRow}};Sheet.prototype._getPrevColumn=function(r,c){var startPosition={r:r,c:c};while(c>=0){r=startPosition.r;c--;if(c<0){break}var spans=this.getSpans(new spread.Range(r,c,1,1));if(spans&&spans.length>0){var span=spans[0];if(c>=span.col){c=span.col;r=span.row}}if(this._canMoveCurrentTo(r,c)){return{r:r,c:c}}}return{r:r,c:c}};Sheet.prototype._getPrevColumnInSelection=function(r,c){while(c>=0){c--;if(c<0){break}var span=this._spanModel.find(r,c);if(span){var activeSelectedRange=this._getActiveSelectedRange();if(activeSelectedRange.row<=span.row&&span.row+span.rowCount<=activeSelectedRange.row+activeSelectedRange.rowCount&&activeSelectedRange.col<=span.col&&span.col+span.colCount<=activeSelectedRange.col+activeSelectedRange.colCount){if(!(span.row===r&&span.col===c)){continue}}else
{continue}if(c>=span.col){c=span.col;r=span.row}}if(this._canMoveCurrentTo(r,c)){return{r:r,c:c}}}return{r:r,c:c}};Sheet.prototype._getNextColumn=function(r,c){var self=this;var colCount=self.getColumnCount();var startPosition={r:r,c:c};while(c<colCount){r=startPosition.r;var currentSpan=self._spanModel.find(r,c);if(!currentSpan){c++}else
{c+=currentSpan.colCount}if(c>=colCount){break}var spans=self.getSpans(new spread.Range(r,c,1,1));if(spans&&spans.length>0){var span=spans[0];if(c>span.col){c=Math_max(c,span.col+span.colCount)}else
{r=span.row}}if(self._canMoveCurrentTo(r,c)){return{r:r,c:c}}}return{r:r,c:c}};Sheet.prototype._getNextColumnInSelection=function(r,c){var self=this;var colCount=self.getColumnCount();while(c<colCount){var currentSpan=self._spanModel.find(r,c);if(!currentSpan){c++}else
{c+=currentSpan.colCount}if(c>=colCount){break}var span=self._spanModel.find(r,c);if(span){var activeSelectedRange=self._getActiveSelectedRange();if(activeSelectedRange.row<=span.row&&span.row+span.rowCount<=activeSelectedRange.row+activeSelectedRange.rowCount&&activeSelectedRange.col<=span.col&&span.col+span.colCount<=activeSelectedRange.col+activeSelectedRange.colCount){if(!(span.row===r&&span.col===c)){continue}}else
{continue}if(c>span.col){c=Math_max(c,span.col+span.colCount)}else
{r=span.row}}if(self._canMoveCurrentTo(r,c)){return{r:r,c:c}}}return{r:r,c:c}};Sheet.prototype._canMoveCurrentTo=function(r,c){var self=this;var canMove=false;var rowVisible=self.getRowVisible(r);var colVisible=self.getColumnVisible(c);var rowHeight=self._getZoomRowHeight(r);var colWidth=self._getZoomColumnWidth(c);canMove=(r>=0&&r<self.getRowCount()&&c>=0&&c<self.getColumnCount()&&rowVisible&&colVisible&&rowHeight>0&&colWidth>0);var checkTab=!!self._isTabNavigation;if(canMove===true&&checkTab===true){var styleInfo=self.getActualStyle(r,c);if(styleInfo&&styleInfo.tabStop===false){canMove=false}}return canMove};Sheet.prototype._getPrevRow=function(r,c){var startPosition={r:r,c:c};while(r>=0){r--;if(r<0){break}var spans=this.getSpans(new spread.Range(r,c,1,1));if(spans&&spans.length>0){var span=spans[0];if(r>=span.row){r=span.row;c=span.col}}if(this._canMoveCurrentTo(r,c)){return{r:r,c:c}}}return{r:r,c:c}};Sheet.prototype._getNextRow=function(r,c){var self=this;var rowCount=self.getRowCount();var startPosition={r:r,c:c};while(r<rowCount){var currentSpan=self._spanModel.find(r,c);if(!currentSpan){r++}else
{r+=currentSpan.rowCount}if(r>=rowCount){break}var spans=self.getSpans(new spread.Range(r,c,1,1));if(spans&&spans.length>0){var span=spans[0];if(r>span.row){r=Math_max(r,span.row+span.rowCount)}else
{c=span.col}}if(self._canMoveCurrentTo(r,c)){return{r:r,c:c}}}return{r:r,c:c}};Sheet.prototype._setSelectedRange=function(r,c,rc,cc,repaint){this._selectionModel.add(r,c,rc,cc);if(repaint&&!this._paintSuspended){this._render.repaintSelection()}};Sheet.prototype._extendSelectedRange=function(r,c,repaint){var self=this;var extendedRange=self._getExtendedRange(r,c,self._activeRowIndex,self._activeColIndex);var newRow=extendedRange.row,newCol=extendedRange.col,newRowCount=extendedRange.rowCount,newColCount=extendedRange.colCount;var selectionPolicy=self.selectionPolicy(),selectionUnit=self.selectionUnit();if(selectionPolicy===0){return}else if(selectionPolicy===1){self._selectionModel.clear()}if(selectionUnit===1){newCol=-1;newColCount=-1}else if(selectionUnit===2){newRow=-1;newRowCount=-1}self._replaceActiveSelectedRange(newRow,newCol,newRowCount,newColCount,repaint)};Sheet.prototype._getExtendedRange=function(r,c,anchorRow,anchorCol){var self=this;if(typeof(anchorRow)===const_undefined){anchorRow=self._activeRowIndex}if(typeof(anchorCol)===const_undefined){anchorCol=self._activeColIndex}var anchorRange=new spread.Range(anchorRow,anchorCol,1,1);var spanAnchorRange=self._spanModel.find(anchorRow,anchorCol);if(spanAnchorRange){anchorRange=spanAnchorRange}var endRange=new spread.Range(r,c,1,1);var spanEndRange=self._spanModel.find(r,c);if(spanEndRange){endRange=spanEndRange}var extendedRange=anchorRange.union(endRange);var spans=self.getSpans();if(spans&&spans.length>0){extendedRange=self._inflateRangeToCoverSpans(spans,extendedRange)}return extendedRange};Sheet.prototype._replaceActiveSelectedRange=function(r,c,rc,cc,repaint){var self=this;var oldSelectedRange=self._getActiveSelectedRange();if(self._selectionModel.length>0){self._selectionModel.splice(self._selectionModel.activeSelectedRangeIndex,1,new spread.Range(r,c,rc,cc))}else
{self._selectionModel.add(r,c,rc,cc)}if(repaint&&!self._paintSuspended){var newSelectedRange=self._getActiveSelectedRange();if(newSelectedRange.row===oldSelectedRange.row&&newSelectedRange.col===oldSelectedRange.col&&newSelectedRange.rowCount===oldSelectedRange.rowCount&&newSelectedRange.colCount===oldSelectedRange.colCount){return}var render=self._render;if(oldSelectedRange.containsRange(newSelectedRange)){render.repaintSelection(oldSelectedRange)}else if(newSelectedRange.containsRange(oldSelectedRange)){render.repaintSelection(newSelectedRange)}else
{render.repaintSelection(oldSelectedRange);render.repaintSelection(newSelectedRange)}}};Sheet.prototype._changeActiveSelectedRange=function(key,isCtrl){var self=this;if(self._selectionModel.length<=0){return}var oldActiveRange=self._getActiveSelectedRange();var newRange=self._getKeyboardSelectedRange(oldActiveRange,key,isCtrl);if(newRange){var oldSelections=self._selectionModel.toArray();var newRow=newRange.row,newCol=newRange.col,newRowCount=newRange.rowCount,newColCount=newRange.colCount;var selectionPolicy=self.selectionPolicy(),selectionUnit=self.selectionUnit();if(selectionPolicy===0){return}else if(selectionPolicy===1){self._selectionModel.clear()}if(selectionUnit===1){newCol=-1;newColCount=-1}else if(selectionUnit===2){newRow=-1;newRowCount=-1}self._replaceActiveSelectedRange(newRow,newCol,newRowCount,newColCount,true);var newSelections=self._selectionModel.toArray();if(self._eventHandler._notEqualSelecions(oldSelections,newSelections)){self._trigger(spread.Events.SelectionChanging,{sheet:self,sheetName:self._name,oldSelections:oldSelections,newSelections:newSelections});self._trigger(spread.Events.SelectionChanged,{sheet:self,sheetName:self._name})}}};Sheet.prototype._getKeyboardSelectedRange=function(activeRange,key,isCtrl,anchorRow,anchorCol){var self=this;var range=self._fixRange(activeRange);var newRange=keyword_null;if(key===37){newRange=isCtrl?self._searchSelectedRangebyLeftCtrl(range,false,anchorRow,anchorCol):self._searchSelectedRangebyLeft(range,anchorRow,anchorCol)}else if(key===39){newRange=isCtrl?self._searchSelectedRangebyRightCtrl(range,false,anchorRow,anchorCol):self._searchSelectedRangebyRight(range,anchorRow,anchorCol)}else if(key===38){newRange=isCtrl?self._searchSelectedRangebyUpCtrl(range,false,anchorRow,anchorCol):self._searchSelectedRangebyUp(range,anchorRow,anchorCol)}else if(key===40){newRange=isCtrl?self._searchSelectedRangebyDownCtrl(range,false,anchorRow,anchorCol):self._searchSelectedRangebyDown(range,anchorRow,anchorCol)}else if(key===36){newRange=isCtrl?self._searchSelectedRangebyHomeCtrl(range,anchorRow,anchorCol):self._searchSelectedRangebyHome(range,anchorRow,anchorCol)}else if(key===35){newRange=isCtrl?self._searchSelectedRangebyEndCtrl(range,anchorRow,anchorCol):self._searchSelectedRangebyEnd(range,anchorRow,anchorCol)}else if(key===33){newRange=self._searchSelectedRangebyPageUp(range,anchorRow,anchorCol)}else if(key===34){newRange=self._searchSelectedRangebyPageDown(range,anchorRow,anchorCol)}if(newRange){if(activeRange.row<0){newRange.row=-1;newRange.rowCount=-1}if(activeRange.col<0){newRange.col=-1;newRange.colCount=-1}}return newRange};Sheet.prototype._searchSelectedRangebyLeft=function(activeRange,anchorRow,anchorCol){var self=this;var beginCol=activeRange.col+activeRange.colCount-1;var endCol=0;var startPosition={r:activeRange.row+activeRange.rowCount-1,c:beginCol};var extendedRange,row,col,row2,col2,rowCount,colCount;while(beginCol>endCol){beginCol--;if(!self._canMoveCurrentTo(startPosition.r,beginCol)){continue}extendedRange=self._getExtendedRange(startPosition.r,beginCol,anchorRow,anchorCol);row=Math_min(activeRange.row,extendedRange.row);col=Math_min(activeRange.col,extendedRange.col);row2=Math_max(activeRange.row+activeRange.rowCount-1,extendedRange.row+extendedRange.rowCount-1);col2=Math_min(activeRange.col+activeRange.colCount-1,extendedRange.col+extendedRange.colCount-1);rowCount=row2-row+1;colCount=col2-col+1;if(!(row===activeRange.row&&col===activeRange.col&&rowCount===activeRange.rowCount&&colCount===activeRange.colCount)){var newLeftCol=self._getPrevVisualColumn(self._scrollLeftCol);if(col===newLeftCol||col2===newLeftCol){self._setLeftColumn(newLeftCol)}return new spread.Range(row,col,rowCount,colCount)}}return keyword_null};Sheet.prototype._searchSelectedRangebyLeftCtrl=function(activeRange,isHomeKey,anchorRow,anchorCol){var self=this;var firstCol=self.frozenColCount?self._getNextVisualColumn(self.frozenColCount-1):self._getFirstVisualColumn();var beginCol=isHomeKey?firstCol:self._getFirstVisualColumn();if(beginCol===keyword_undefined||beginCol===keyword_null){return}else if(self.frozenColCount<=0||isHomeKey){self._setLeftColumn(beginCol)}var extendedRange,row,col,row2,col2,rowCount,colCount;extendedRange=self._getExtendedRange(activeRange.row,beginCol,anchorRow,anchorCol);row=Math_min(activeRange.row,extendedRange.row);col=Math_min(activeRange.col,extendedRange.col);row2=Math_max(activeRange.row+activeRange.rowCount-1,extendedRange.row+extendedRange.rowCount-1);col2=Math_min(activeRange.col+activeRange.colCount-1,extendedRange.col+extendedRange.colCount-1);rowCount=row2-row+1;colCount=col2-col+1;return new spread.Range(row,col,rowCount,colCount)};Sheet.prototype._searchSelectedRangebyRight=function(activeRange,anchorRow,anchorCol){var self=this;var beginCol=activeRange.col;var endCol=self.getColumnCount()-1;var startPosition={r:activeRange.row+activeRange.rowCount-1,c:beginCol};var extendedRange,row,col,row2,col2,rowCount,colCount;while(beginCol<endCol){beginCol++;if(!self._canMoveCurrentTo(startPosition.r,beginCol)){continue}extendedRange=self._getExtendedRange(startPosition.r,beginCol,anchorRow,anchorCol);row=Math_min(activeRange.row,extendedRange.row);col=Math_max(activeRange.col,extendedRange.col);row2=Math_max(activeRange.row+activeRange.rowCount-1,extendedRange.row+extendedRange.rowCount-1);col2=Math_max(activeRange.col+activeRange.colCount-1,extendedRange.col+extendedRange.colCount-1);rowCount=row2-row+1;colCount=col2-col+1;if(!(row===activeRange.row&&col===activeRange.col&&rowCount===activeRange.rowCount&&colCount===activeRange.colCount)){var firstCol=self.frozenColCount?self._getNextVisualColumn(self.frozenColCount-1):keyword_null;var pageRightCol=self._getPageRightColumn();if((firstCol!==keyword_undefined&&firstCol!==keyword_null)&&(col===firstCol||col2===firstCol)){self._setLeftColumn(firstCol)}else if(col===pageRightCol||col2===pageRightCol){self._setLeftColumn(self._getNextVisualColumn(self._scrollLeftCol))}return new spread.Range(row,col,rowCount,colCount)}}return keyword_null};Sheet.prototype._searchSelectedRangebyRightCtrl=function(activeRange,isEndKey,anchorRow,anchorCol){var self=this;var newPageLeftCol=self._getLastPageLeftColumn();if(newPageLeftCol===keyword_undefined||newPageLeftCol===keyword_null){return}else
{self._setLeftColumn(newPageLeftCol)}var endCol=self._getLastVisualColumn();if(!isEndKey){endCol+=self._frozenTrailingColCount}var extendedRange,row,col,row2,col2,rowCount,colCount;extendedRange=self._getExtendedRange(activeRange.row,endCol,anchorRow,anchorCol);row=Math_min(activeRange.row,extendedRange.row);col=Math_max(activeRange.col,extendedRange.col);row2=Math_max(activeRange.row+activeRange.rowCount-1,extendedRange.row+extendedRange.rowCount-1);col2=Math_max(activeRange.col+activeRange.colCount-1,extendedRange.col+extendedRange.colCount-1);rowCount=row2-row+1;colCount=col2-col+1;return new spread.Range(row,col,rowCount,colCount)};Sheet.prototype._searchSelectedRangebyUp=function(activeRange,anchorRow,anchorCol){var self=this;var beginRow=activeRange.row+activeRange.rowCount-1;var endRow=0;var startPosition={r:beginRow,c:activeRange.col+activeRange.colCount-1};var extendedRange,row,col,row2,col2,rowCount,colCount;while(beginRow>endRow){beginRow--;if(!self._canMoveCurrentTo(beginRow,startPosition.c)){continue}extendedRange=self._getExtendedRange(beginRow,startPosition.c,anchorRow,anchorCol);row=Math_min(activeRange.row,extendedRange.row);col=Math_min(activeRange.col,extendedRange.col);row2=Math_min(activeRange.row+activeRange.rowCount-1,extendedRange.row+extendedRange.rowCount-1);col2=Math_max(activeRange.col+activeRange.colCount-1,extendedRange.col+extendedRange.colCount-1);rowCount=row2-row+1;colCount=col2-col+1;if(!(row===activeRange.row&&col===activeRange.col&&rowCount===activeRange.rowCount&&colCount===activeRange.colCount)){var newTopRow=self._getPrevVisualRow(self._scrollTopRow);if(row===newTopRow||row2===newTopRow){self._setTopRow(newTopRow)}return new spread.Range(row,col,rowCount,colCount)}}return keyword_null};Sheet.prototype._searchSelectedRangebyUpCtrl=function(activeRange,isHomeKey,anchorRow,anchorCol){var self=this;var firstRow=self.frozenRowCount?self._getNextVisualRow(self.frozenRowCount-1):self._getFirstVisualRow();var beginRow=isHomeKey?firstRow:self._getFirstVisualRow();if(beginRow===keyword_undefined||beginRow===keyword_null){return}else if(self.frozenRowCount<=0||isHomeKey){self._setTopRow(beginRow)}var extendedRange,row,col,row2,col2,rowCount,colCount;extendedRange=self._getExtendedRange(beginRow,activeRange.col,anchorRow,anchorCol);row=Math_min(activeRange.row,extendedRange.row);col=Math_min(activeRange.col,extendedRange.col);row2=Math_min(activeRange.row+activeRange.rowCount-1,extendedRange.row+extendedRange.rowCount-1);col2=Math_max(activeRange.col+activeRange.colCount-1,extendedRange.col+extendedRange.colCount-1);rowCount=row2-row+1;colCount=col2-col+1;return new spread.Range(row,col,rowCount,colCount)};Sheet.prototype._searchSelectedRangebyDown=function(activeRange,anchorRow,anchorCol){var self=this;var beginRow=activeRange.row;var endRow=self.getRowCount()-1;var startPosition={r:beginRow,c:activeRange.col+activeRange.colCount-1};var extendedRange,row,col,row2,col2,rowCount,colCount;while(beginRow<endRow){beginRow++;if(!self._canMoveCurrentTo(beginRow,startPosition.c)){continue}extendedRange=self._getExtendedRange(beginRow,startPosition.c,anchorRow,anchorCol);row=Math_max(activeRange.row,extendedRange.row);col=Math_min(activeRange.col,extendedRange.col);row2=Math_max(activeRange.row+activeRange.rowCount-1,extendedRange.row+extendedRange.rowCount-1);col2=Math_max(activeRange.col+activeRange.colCount-1,extendedRange.col+extendedRange.colCount-1);rowCount=row2-row+1;colCount=col2-col+1;if(!(row===activeRange.row&&col===activeRange.col&&rowCount===activeRange.rowCount&&colCount===activeRange.colCount)){var firstRow=self.frozenRowCount?self._getNextVisualRow(self.frozenRowCount-1):keyword_null;var pageBottomRow=self._getPageBottomRow();if((firstRow!==keyword_undefined&&firstRow!==keyword_null)&&(row===firstRow||row2===firstRow)){self._setTopRow(firstRow)}else if(row===pageBottomRow||row2===pageBottomRow){self._setTopRow(self._getNextVisualRow(self._scrollTopRow))}return new spread.Range(row,col,rowCount,colCount)}else
{continue}}return keyword_null};Sheet.prototype._searchSelectedRangebyDownCtrl=function(activeRange,isEndKey,anchorRow,anchorCol){var self=this;var newTopRow=self._getLastPageTopRow();if(newTopRow===keyword_undefined||newTopRow===keyword_null){return}else
{self._setTopRow(newTopRow)}var endRow=self._getLastVisualRow();if(!isEndKey){endRow+=self._frozenTrailingRowCount}var extendedRange,row,col,row2,col2,rowCount,colCount;extendedRange=self._getExtendedRange(endRow,activeRange.col,anchorRow,anchorCol);row=Math_max(activeRange.row,extendedRange.row);col=Math_min(activeRange.col,extendedRange.col);row2=Math_max(activeRange.row+activeRange.rowCount-1,extendedRange.row+extendedRange.rowCount-1);col2=Math_max(activeRange.col+activeRange.colCount-1,extendedRange.col+extendedRange.colCount-1);rowCount=row2-row+1;colCount=col2-col+1;return new spread.Range(row,col,rowCount,colCount)};Sheet.prototype._searchSelectedRangebyHome=function(activeRange,anchorRow,anchorCol){var self=this;var beginCol=self.frozenColCount?self.frozenColCount-1:-1;var endCol=self._activeColIndex;var startPosition={r:activeRange.row+activeRange.rowCount-1,c:activeRange.col};var extendedRange,row,col,row2,col2,rowCount,colCount;while(beginCol<endCol){beginCol++;if(!self._canMoveCurrentTo(startPosition.r,beginCol)){continue}if(activeRange.col<=beginCol&&(activeRange.col+activeRange.colCount-1)===self._activeColIndex){break}extendedRange=self._getExtendedRange(startPosition.r,beginCol,anchorRow,anchorCol);row=Math_min(activeRange.row,extendedRange.row);col=Math_min(activeRange.col,extendedRange.col);row2=Math_max(activeRange.row+activeRange.rowCount-1,extendedRange.row+extendedRange.rowCount-1);col2=Math_min(activeRange.col+activeRange.colCount-1,extendedRange.col+extendedRange.colCount-1);rowCount=row2-row+1;colCount=col2-col+1;self._setLeftColumn(self._getFirstVisualColumn());return new spread.Range(row,col,rowCount,colCount)}return keyword_null};Sheet.prototype._searchSelectedRangebyHomeCtrl=function(activeRange,anchorRow,anchorCol){activeRange=this._searchSelectedRangebyLeftCtrl(activeRange,true,anchorRow,anchorCol);activeRange=this._searchSelectedRangebyUpCtrl(activeRange,true,anchorRow,anchorCol);return activeRange};Sheet.prototype._searchSelectedRangebyEnd=function(activeRange,anchorRow,anchorCol){var self=this;var beginCol=self.getColumnCount();var endCol=self._activeColIndex;var startPosition={r:activeRange.row+activeRange.rowCount-1,c:activeRange.col+activeRange.colCount-1};var extendedRange,row,col,row2,col2,rowCount,colCount;while(beginCol>endCol){beginCol--;if(!self._canMoveCurrentTo(startPosition.r,beginCol)){continue}if(activeRange.col+activeRange.colCount-1>=beginCol&&activeRange.col===self._activeColIndex){break}extendedRange=self._getExtendedRange(startPosition.r,beginCol,anchorRow,anchorCol);row=Math_min(activeRange.row,extendedRange.row);col=Math_max(activeRange.col,extendedRange.col);row2=Math_max(activeRange.row+activeRange.rowCount-1,extendedRange.row+extendedRange.rowCount-1);col2=Math_max(activeRange.col+activeRange.colCount-1,extendedRange.col+extendedRange.colCount-1);rowCount=row2-row+1;colCount=col2-col+1;self._setLeftColumn(self._getLastPageLeftColumn());return new spread.Range(row,col,rowCount,colCount)}return keyword_null};Sheet.prototype._searchSelectedRangebyEndCtrl=function(activeRange,anchorRow,anchorCol){activeRange=this._searchSelectedRangebyRightCtrl(activeRange,true,anchorRow,anchorCol);activeRange=this._searchSelectedRangebyDownCtrl(activeRange,true,anchorRow,anchorCol);return activeRange};Sheet.prototype._searchSelectedRangebyPageUp=function(activeRange,anchorRow,anchorCol){var self=this;var prevPageTopRow=self._getPrevPageTopRow();if(prevPageTopRow===keyword_undefined||prevPageTopRow===keyword_null){return keyword_null}var rls=self._getRowLayout(1);var scrolled=self._setTopRow(prevPageTopRow);var beginRow=-1;if(scrolled){beginRow=self._getNextVisualRow(activeRange.row+activeRange.rowCount-1-rls.length)}else if(self.frozenRowCount<=0){beginRow=self._getFirstVisualRow()}if(beginRow<self._scrollTopRow){beginRow=self._scrollTopRow}else if(beginRow>=self._getPageBottomRow()){beginRow=self._getPrevVisualRow(self._getPageBottomRow())}var extendedRange,row,col,row2,col2,rowCount,colCount;extendedRange=self._getExtendedRange(beginRow,activeRange.col,anchorRow,anchorCol);row=Math_min(activeRange.row,extendedRange.row);col=Math_min(activeRange.col,extendedRange.col);row2=Math_min(activeRange.row+activeRange.rowCount-1,extendedRange.row+extendedRange.rowCount-1);col2=Math_max(activeRange.col+activeRange.colCount-1,extendedRange.col+extendedRange.colCount-1);rowCount=row2-row+1;colCount=col2-col+1;return new spread.Range(row,col,rowCount,colCount)};Sheet.prototype._searchSelectedRangebyPageDown=function(activeRange,anchorRow,anchorCol){var self=this;var nextPageTopRow=self._getNextPageTopRow();if(nextPageTopRow===keyword_undefined||nextPageTopRow===keyword_null){return keyword_null}var rls=self._getRowLayout(1);self._setTopRow(nextPageTopRow);var beginRow=self._getPrevVisualRow(activeRange.row+activeRange.rowCount-1+rls.length);if(beginRow<self._scrollTopRow){beginRow=self._scrollTopRow}else if(beginRow>=self._getPageBottomRow()){if(self._scrollTopRow>=self._getLastPageTopRow()){beginRow=self._getPageBottomRow()}else
{beginRow=self._getPrevVisualRow(self._getPageBottomRow())}}var extendedRange,row,col,row2,col2,rowCount,colCount;extendedRange=self._getExtendedRange(beginRow,activeRange.col,anchorRow,anchorCol);row=Math_max(activeRange.row,extendedRange.row);col=Math_min(activeRange.col,extendedRange.col);row2=Math_max(activeRange.row+activeRange.rowCount-1,extendedRange.row+extendedRange.rowCount-1);col2=Math_max(activeRange.col+activeRange.colCount-1,extendedRange.col+extendedRange.colCount-1);rowCount=row2-row+1;colCount=col2-col+1;return new spread.Range(row,col,rowCount,colCount)};Sheet.prototype._getPrevPageTopRow=function(){var self=this;var rls=self._getRowLayout(1);if(!rls||rls.length<=0){return keyword_null}var firstRow=self.frozenRowCount?self._getNextVisualRow(self.frozenRowCount-1):self._getFirstVisualRow();var h=0;var r=self._scrollTopRow;var sheetLayout=self._getSheetLayout();while(r>firstRow){h+=self._getZoomRowHeight(r);if(h>sheetLayout.viewportHeight){break}r--}return r};Sheet.prototype._getPrevPageLeftColumn=function(){var self=this;var rls=self._getColumnLayout(1);if(!rls||rls.length<=0){return keyword_null}var firstColumn=self.frozenColCount?self._getNextVisualColumn(self.frozenColCount-1):self._getFirstVisualColumn();var w=0;var c=self._scrollLeftCol;var sheetLayout=self._getSheetLayout();while(c>firstColumn){w+=self._getZoomColumnWidth(c);if(w>sheetLayout.viewportWidth){break}c--}return c};Sheet.prototype._getNextPageTopRow=function(){var rls=this._getRowLayout(1);if(!rls||rls.length<=0){return keyword_null}if(this._getLastVisualRow()===rls[rls.length-1].row){return this._scrollTopRow}return rls[rls.length-1].row};Sheet.prototype._getLastPageTopRow=function(){var self=this;if(self._getLastVisualRow()===self._getPageBottomRow()){var sheetLayout=self._getSheetLayout();var rls=self._getRowLayout(1);if(rls&&rls.length>=1){var endRowLayout=rls[rls.length-1];if(endRowLayout.y+endRowLayout.height<=sheetLayout.viewportY+sheetLayout.viewportHeight){return self._scrollTopRow}}}var catchTopRow=self._scrollTopRow;try
{self._scrollTopRow=self._getLastVisualRow();var lastPageTopRow=self._getPrevPageTopRow();lastPageTopRow=self._getNextVisualRow(lastPageTopRow);return lastPageTopRow}catch(e){}finally
{self._scrollTopRow=catchTopRow}};Sheet.prototype._getLastPageLeftColumn=function(){var self=this;var sheetLayout;if(self._getLastVisualColumn()===self._getPageRightColumn()){sheetLayout=self._getSheetLayout();var rls=self._getColumnLayout(1);if(rls&&rls.length>=1){var endColLayout=rls[rls.length-1];if(endColLayout.x+endColLayout.width<=sheetLayout.viewportX+sheetLayout.width){return self._scrollLeftCol}}}sheetLayout=self._getSheetLayout();var width=0;var col=self._getLastVisualColumn();while(col>0){width+=self._getZoomColumnWidth(col);if(width>sheetLayout.viewportWidth){break}col--}if(col>0){col=self._getNextVisualColumn(col)}return col};Sheet.prototype._getPageBottomRow=function(){var rls=this._getRowLayout(1);if(!rls||rls.length<=0){return keyword_null}return rls[rls.length-1].row};Sheet.prototype._getPageRightColumn=function(){var rls=this._getColumnLayout(1);if(!rls||rls.length<=0){return keyword_null}return rls[rls.length-1].col};Sheet.prototype._getLastFullyVisibleRow=function(){var rls=this._getRowLayout(1);if(!rls||rls.length<=0){return keyword_null}var layout=this._getSheetLayout();var i=rls.length-1;if(rls[i].y+rls[i].height<=layout.viewportY+layout.viewportHeight){return rls[i].row}else
{return rls[Math_max(i-1,0)].row}};Sheet.prototype._getLastFullyVisibleColumn=function(){var cls=this._getColumnLayout(1);if(!cls||cls.length<=0){return keyword_null}var layout=this._getSheetLayout();var i=cls.length-1;if(cls[i].x+cls[i].width<=layout.viewportX+layout.viewportWidth){return cls[i].col}else
{return cls[Math_max(i-1,0)].col}};Sheet.prototype._getFirstVisualRow=function(){return this._getNextVisualRow(-1)};Sheet.prototype._getLastVisualRow=function(sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}var rowCount=this.getRowCount(sheetArea);if(sheetArea===3||sheetArea===2){rowCount=rowCount-this._frozenTrailingRowCount}return this._getPrevVisualRow(rowCount,sheetArea)};Sheet.prototype._getFirstVisualColumn=function(){return this._getNextVisualColumn(-1)};Sheet.prototype._getLastVisualColumn=function(sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null){sheetArea=3}var colCount=this.getColumnCount(sheetArea);if(sheetArea===3||sheetArea===1){colCount=colCount-this._frozenTrailingColCount}return this._getPrevVisualColumn(colCount,sheetArea)};Sheet.prototype._getFirstPageLeftColumn=function(){var self=this;var firstLeftCol=0;var frozenColCount=isNaN(self.frozenColCount)?0:self.frozenColCount;if(frozenColCount>0){firstLeftCol=self._getNextVisualColumn(frozenColCount-1)}else
{firstLeftCol=self._getFirstVisualColumn()}return firstLeftCol};Sheet.prototype._getFirstPageTopRow=function(){var self=this;var firsTopRow=0;var frozenRowCount=isNaN(self.frozenRowCount)?0:self.frozenRowCount;if(frozenRowCount>0){firsTopRow=self._getNextVisualRow(frozenRowCount-1)}else
{firsTopRow=self._getFirstVisualRow()}return firsTopRow};Sheet.prototype._getNextVisualRow=function(row,ignoreFrozenTrailingRow){var self=this;var endRow=ignoreFrozenTrailingRow?self.getRowCount()-1:self.getRowCount()-1-self._frozenTrailingRowCount;while(row<endRow){row++;if(self.getRowVisible(row)&&self._getZoomRowHeight(row)>0){return row}}return keyword_null};Sheet.prototype._getPrevVisualRow=function(row,sheetArea,ignoreFrozenRow){var minRow=ignoreFrozenRow?0:this.frozenRowCount;while(row>minRow){row--;if(this.getRowVisible(row,sheetArea)&&this._getZoomRowHeight(row,sheetArea)>0){return row}}return keyword_null};Sheet.prototype._getNextVisualColumn=function(col){var self=this;var endCol=self.getColumnCount()-1-self._frozenTrailingColCount;while(col<endCol){col++;if(self.getColumnVisible(col)&&self._getZoomColumnWidth(col)>0){return col}}return keyword_null};Sheet.prototype._getPrevVisualColumn=function(col,sheetArea){while(col>this.frozenColCount){col--;if(this.getColumnVisible(col,sheetArea)&&this._getZoomColumnWidth(col,sheetArea)>0){return col}}return keyword_null};Sheet.prototype._inflateRangeToCoverSpans=function(spans,cellRange){if(spans&&spans.length>0){for(var i=0;i<spans.length;i++){var cr=spans[i];if(cellRange.intersect(cr.row,cr.col,cr.rowCount,cr.colCount)){spans.splice(i--,1);return this._inflateRangeToCoverSpans(spans,cellRange.union(cr))}}}return cellRange};Sheet.prototype._getActiveSelectedRange=function(dir){var self=this;var activeSelectedRange=new spread.Range(-1,-1,0,0);if(self._selectionModel.length<=0){return activeSelectedRange}if(dir===3){self._selectionModel.activeSelectedRangeIndex--;if(self._selectionModel.activeSelectedRangeIndex<0){self._selectionModel.activeSelectedRangeIndex=self._selectionModel.length-1}}else if(dir===4){self._selectionModel.activeSelectedRangeIndex++;if(self._selectionModel.activeSelectedRangeIndex>=self._selectionModel.length){self._selectionModel.activeSelectedRangeIndex=0}}if(self._selectionModel.activeSelectedRangeIndex>=0){activeSelectedRange=self._selectionModel[self._selectionModel.activeSelectedRangeIndex]}return activeSelectedRange};Sheet.prototype._initializeActiveCell=function(){var self=this,activeRowIndex=self._activeRowIndex,activeColIndex=self._activeColIndex,selectionModel=self._selectionModel;if(activeRowIndex===keyword_undefined||activeRowIndex===keyword_null||activeColIndex===keyword_undefined||activeColIndex===keyword_null||selectionModel.length<=0){var row=0;var col=0;var spanCell=self._spanModel.find(row,col);if(!spanCell){selectionModel.add(row,col,1,1);self._activeRowIndex=row;self._activeColIndex=col;self._activeRowCount=1;self._activeColCount=1}else
{selectionModel.add(row,col,spanCell.rowCount,spanCell.colCount);self._activeRowIndex=row;self._activeColIndex=col;self._activeRowCount=spanCell.rowCount;self._activeColCount=spanCell.colCount}if(selectionModel.length>0&&!self._paintSuspended){var currentSelection=selectionModel[0];self._render.repaintSelection(currentSelection)}}};Sheet.prototype._setHoverCell=function(target){var self=this;var hoveredCellChanged=false;var current=self._currentTarget;if(!current){hoveredCellChanged=true}if(!hoveredCellChanged&&!target){hoveredCellChanged=true}if(!hoveredCellChanged){hoveredCellChanged=(target.col!==current.col||target.row!==current.row||target.colViewportIndex!==current.colViewportIndex||target.rowViewportIndex!==current.rowViewportIndex||target.hitTestType!==current.hitTestType)}self._currentTarget=target;var adjX,adjY,gl;if(hoveredCellChanged){self._hoverCell=true;var sheetLayout=self._getSheetLayout(),render=self._render;var r=keyword_null;if(current){if(current.rowViewportIndex<0||current.colViewportIndex<0){r=self.getCellRect(current.row,current.col,current.rowViewportIndex,current.colViewportIndex);if(r&&r.width>0&&r.height>0){adjX=0;adjY=0;gl=self._getGroupLayout();if(gl){adjX=gl.width;adjY=gl.height}if(r.x<sheetLayout.rowHeaderWidth+adjX||r.y<sheetLayout.colHeaderHeight+adjY||r.y>=sheetLayout.height-sheetLayout.footerHeight){render.update(r.x,r.y,r.width,r.height)}}}}if(target){if(target.rowViewportIndex<0||target.colViewportIndex<0){r=self.getCellRect(target.row,target.col,target.rowViewportIndex,target.colViewportIndex);if(r&&r.width>0&&r.height>0){adjX=0;adjY=0;gl=self._getGroupLayout();if(gl){adjX=gl.width;adjY=gl.height}if(r.x<sheetLayout.rowHeaderWidth+adjX||r.y<sheetLayout.colHeaderHeight+adjY||r.y>=sheetLayout.height-sheetLayout.footerHeight){render.update(r.x,r.y,r.width,r.height)}}}}self._hoverCell=false}};Sheet.prototype._getAvailableActiveCell=function(row,col,isHorizontal){var range=this._skipSpanCell(row,col,isHorizontal);return this._skipInvisibleCell(range)};Sheet.prototype._skipSpanCell=function(row,col,isHorizontal){var spanCell=this._spanModel.find(row,col);if(!spanCell){return new spread.Range(row,col,1,1)}else
{if((isHorizontal&&spanCell.rowCount===1)||(!isHorizontal&&spanCell.colCount===1)){return spanCell}}if(isHorizontal){col++}else
{row++}return this._skipSpanCell(row,col,isHorizontal)};Sheet.prototype._skipInvisibleCell=function(range){var self=this;var row=range.row,i;var rowCount=self.getRowCount();for(i=row;i<rowCount;i++){if(self.getRowVisible(i)===true){break}}if(i<rowCount){row=i}var col=range.col;var columnCount=self.getColumnCount();for(i=col;i<columnCount;i++){if(self.getColumnVisible(i)===true){break}}if(i<columnCount){col=i}return new spread.Range(row,col,range.rowCount,range.colCount)};Sheet.prototype._processKeyMap=function(event){var ctrlKey=event.ctrlKey,shiftKey=event.shiftKey,altKey=event.altKey,metaKey=event.metaKey,keyCode=event.keyCode;var ka=this._getKeyAction(keyCode,ctrlKey,shiftKey,altKey,metaKey);if(ka){if(typeof(ka.action)===const_function){var ret=ka.action.call(this);if(ret){spread.util.cancelDefault(event)}return ret}}return false};Sheet.prototype._processFloatingObjectsKeyMap=function(event){if(!spread.features.floatingObject){return false}var isUndoRedo=((event.keyCode===90&&event.ctrlKey===true)||(event.keyCode===89&&event.ctrlKey===true));if(isUndoRedo){return false}var self=this,eventHandler=self._eventHandler;var isPaste=(event.keyCode===86&&event.ctrlKey===true);var ch=self._getFloatingObjectClipboardHelper();var fromSheet=ch.fromSheet,fromSheetEventHandler=fromSheet&&fromSheet._eventHandler;if(eventHandler||(fromSheetEventHandler)){var clipboardData=eventHandler._getClipboardFloatingObjectData();if(!clipboardData&&fromSheetEventHandler){clipboardData=fromSheetEventHandler._getClipboardFloatingObjectData()}if(!clipboardData||!clipboardData.length){isPaste=false}}if(self._hasFloatingObjectsSelected()||isPaste){var ka=self._getFloatingObjectKeyAction(event.keyCode,event.ctrlKey,event.shiftKey,event.altKey,event.metaKey);if(ka&&ka.action){var ret=ka.action.call(self);if(ret){spread.util.cancelDefault(event)}return true}}return false};Sheet.prototype._processCommentKeyMap=function(event){if(!spread.features.comment){return false}var isUndoRedo=((event.keyCode===90&&event.ctrlKey===true)||(event.keyCode===89&&event.ctrlKey===true));if(isUndoRedo){return false}var self=this,activeComment=self._commentManager.getActiveComment();if(activeComment){if(event.keyCode===9){return true}var ka=self._getCommentKeyAction(event.keyCode,event.ctrlKey,event.shiftKey,event.altKey,event.metaKey);if(ka&&ka.action){var ret=ka.action.call(self);if(ret){spread.util.cancelDefault(event)}return true}else if(self._eventHandler.allowEnterEditing(event)){activeComment.commentState(2);return true}}return false};Sheet.prototype._hasFloatingObjectsSelected=function(){var self=this,floatingObjectArray=self._floatingObjectArray;if(spread.features.floatingObject&&floatingObjectArray&&floatingObjectArray.length>0){var i,len;for(i=0,len=floatingObjectArray.length;i<len;i++){var item=floatingObjectArray[i];if(item.isSelected()){return true}}}return false};Sheet.prototype._getRowInfos=function(sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea=3}var self=this;if(sheetArea===3||sheetArea===2){var rowInfos=self._rowInfos;if(!rowInfos){self._rowInfos=rowInfos={}}return rowInfos}else if(sheetArea===1){var colHeaderRowInfos=self._colHeaderRowInfos;if(!colHeaderRowInfos){self._colHeaderRowInfos=colHeaderRowInfos={}}return colHeaderRowInfos}return keyword_null};Sheet.prototype._getZoomRowHeight=function(row,sheetArea){var height=this.getRowHeight(row,sheetArea),zoomFactor=this._zoomFactor;if(zoomFactor!==1){height*=zoomFactor}return Math_floor(height)};Sheet.prototype._getColumnInfos=function(sheetArea){var self=this;if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null){sheetArea===3}if(sheetArea===3||sheetArea===1){var colInfos=self._colInfos;if(!colInfos){self._colInfos=colInfos={}}return colInfos}else if(sheetArea===2){var rowHeaderColInfos=self._rowHeaderColInfos;if(!rowHeaderColInfos){self._rowHeaderColInfos=rowHeaderColInfos={}}return rowHeaderColInfos}return keyword_null};Sheet.prototype._getZoomColumnWidth=function(col,sheetArea){var width=this.getColumnWidth(col,sheetArea),zoomFactor=this._zoomFactor;if(zoomFactor!==1){width*=zoomFactor}return Math_floor(width)};Sheet.prototype._getGroupLayout=function(){var self=this;if(!self._cachedGroupLayout){self._cachedGroupLayout=self._createGroupLayout()}return self._cachedGroupLayout};Sheet.prototype._getGroupButtonWidth=function(){return 17};Sheet.prototype._getGroupButtonHeight=function(){return 17};Sheet.prototype._getGroupPadding=function(){return 2};Sheet.prototype._createGroupLayout=function(){var groupLayout={x:0,y:0,width:0,height:0,rowMaxLevel:-1,colMaxLevel:-1},self=this,GROUPBUTTON_WIDTH=self._getGroupButtonWidth(),GROUPBUTTON_HEIGHT=self._getGroupButtonHeight(),GROUPPADDING=self._getGroupPadding(),rowRangeGroup=self.rowRangeGroup,colRangeGroup=self.colRangeGroup,showRowRangeGroup=self._showRowRangeGroup,showColumnRangeGroup=self._showColumnRangeGroup,zoomFactor=self._zoomFactor;if(showRowRangeGroup&&rowRangeGroup&&!rowRangeGroup._isEmpty()){var rowMaxLevel=rowRangeGroup.getMaxLevel();if(rowMaxLevel>=0){var width=Math_min(GROUPBUTTON_WIDTH,GROUPBUTTON_WIDTH*zoomFactor);groupLayout.width=width*(rowMaxLevel+2)+GROUPPADDING*2;groupLayout.rowMaxLevel=rowMaxLevel}}if(showColumnRangeGroup&&colRangeGroup&&!colRangeGroup._isEmpty()){var colMaxLevel=colRangeGroup.getMaxLevel();if(colMaxLevel>=0){var height=Math_min(GROUPBUTTON_HEIGHT,GROUPBUTTON_HEIGHT*zoomFactor);groupLayout.height=height*(colMaxLevel+2)+GROUPPADDING*2;groupLayout.colMaxLevel=colMaxLevel}}return groupLayout};Sheet.prototype._createLayout=function(){var self=this;var bounds=new spread.Rect(self._bounds.x+self.borderWidth,self._bounds.y+self.borderWidth,Math_max(0,self._bounds.width-2*self.borderWidth),Math_max(0,self._bounds.height-2*self.borderWidth));var totalWidth=bounds.width;var totalHeight=bounds.height;var layout={x:bounds.x,y:bounds.y,width:bounds.width,height:bounds.height,rowHeaderWidth:0,colHeaderHeight:0,frozenWidth:0,frozenHeight:0,frozenTrailingWidth:0,frozenTrailingHeight:0,footerHeight:0,footerWidth:0,footerX:0,footerY:0,frozenX:0,frozenY:0,frozenTrailingX:0,frozenTrailingY:0,viewportX:0,viewportY:0,viewportHeight:0,viewportWidth:0,headerX:0,headerY:0,headerCornerRect:function(){var owner=this;return new spread.Rect(owner.x,owner.y,owner.rowHeaderWidth,owner.colHeaderHeight)},colHeaderRect:function(colViewportIndex){var owner=this;if(colViewportIndex===0){return new spread.Rect(owner.frozenX,owner.y,owner.frozenWidth,owner.colHeaderHeight)}else if(colViewportIndex===1){return new spread.Rect(owner.viewportX,owner.y,owner.viewportWidth,owner.colHeaderHeight)}else if(colViewportIndex===2){return new spread.Rect(owner.frozenTrailingX,owner.y,owner.frozenTrailingWidth,owner.colHeaderHeight)}else
{return keyword_null}},rowHeaderRect:function(rowViewportIndex){var owner=this;if(rowViewportIndex===0){return new spread.Rect(owner.x,owner.frozenY,owner.rowHeaderWidth,owner.frozenHeight)}else if(rowViewportIndex===1){return new spread.Rect(owner.x,owner.viewportY,owner.rowHeaderWidth,owner.viewportHeight)}else if(rowViewportIndex===2){return new spread.Rect(owner.x,owner.frozenTrailingY,owner.rowHeaderWidth,owner.frozenTrailingHeight)}else
{return keyword_null}},viewportRect:function(rowViewportIndex,colViewportIndex){var owner=this;if(rowViewportIndex===0){if(colViewportIndex===0){return new spread.Rect(owner.frozenX,owner.frozenY,owner.frozenWidth,owner.frozenHeight)}else if(colViewportIndex===1){return new spread.Rect(owner.viewportX,owner.frozenY,owner.viewportWidth,owner.frozenHeight)}else if(colViewportIndex===2){return new spread.Rect(owner.frozenTrailingX,owner.frozenY,owner.frozenTrailingWidth,owner.frozenHeight)}else
{return keyword_null}}else if(rowViewportIndex===1){if(colViewportIndex===0){return new spread.Rect(owner.frozenX,owner.viewportY,owner.frozenWidth,owner.viewportHeight)}else if(colViewportIndex===1){return new spread.Rect(owner.viewportX,owner.viewportY,owner.viewportWidth,owner.viewportHeight)}else if(colViewportIndex===2){return new spread.Rect(owner.frozenTrailingX,owner.viewportY,owner.frozenTrailingWidth,owner.viewportHeight)}else
{return keyword_null}}else if(rowViewportIndex===2){if(colViewportIndex===0){return new spread.Rect(owner.frozenX,owner.frozenTrailingY,owner.frozenWidth,owner.frozenTrailingHeight)}else if(colViewportIndex===1){return new spread.Rect(owner.viewportX,owner.frozenTrailingY,owner.viewportWidth,owner.frozenTrailingHeight)}else if(colViewportIndex===2){return new spread.Rect(owner.frozenTrailingX,owner.frozenTrailingY,owner.frozenTrailingWidth,owner.frozenTrailingHeight)}else
{return keyword_null}}else
{return keyword_null}},footerRect:function(colViewportIndex){var owner=this;if(colViewportIndex===0){return new spread.Rect(owner.frozenX,owner.footerY,owner.frozenWidth,owner.footerHeight)}else if(colViewportIndex===1){return new spread.Rect(owner.viewportX,owner.footerY,owner.viewportWidth,owner.footerHeight)}else if(colViewportIndex===2){return new spread.Rect(owner.frozenTrailingX,owner.footerY,owner.frozenTrailingWidth,owner.footerHeight)}else
{return keyword_null}},footerCornerRect:function(){var owner=this;return new spread.Rect(owner.footerX,owner.footerY,owner.footerWidth,owner.footerHeight)}};var groupLayout=self._getGroupLayout();layout.x+=groupLayout.width;layout.y+=groupLayout.height;totalWidth-=groupLayout.width;totalHeight-=groupLayout.height;var r,rc,c,cc;if(self.rowHeaderVisible===keyword_null||self.rowHeaderVisible===keyword_undefined||self.rowHeaderVisible){cc=self.getColumnCount(2);for(c=0;c<cc;c++){layout.rowHeaderWidth+=self._getZoomColumnWidth(c,2)}}if(self.colHeaderVisible===keyword_null||self.colHeaderVisible===keyword_undefined||self.colHeaderVisible){rc=self.getRowCount(1);for(r=0;r<rc;r++){layout.colHeaderHeight+=self._getZoomRowHeight(r,1)}}if(self.frozenColCount>0){cc=self.getColumnCount();for(c=0;c<self.frozenColCount&&c<cc;c++){if(self.getColumnVisible(c)){layout.frozenWidth+=self._getZoomColumnWidth(c)}}}if(self.frozenRowCount>0){rc=self.getRowCount();for(r=0;r<self.frozenRowCount&&r<rc;r++){if(self.getRowVisible(r)){layout.frozenHeight+=self._getZoomRowHeight(r)}}}if(self._frozenTrailingColCount>0){cc=self.getColumnCount();for(c=Math_max(self.frozenColCount,cc-self._frozenTrailingColCount);c<cc;c++){layout.frozenTrailingWidth+=self._getZoomColumnWidth(c)}}if(self._frozenTrailingRowCount>0){rc=self.getRowCount();for(r=Math_max(self.frozenRowCount,rc-self._frozenTrailingRowCount);r<rc;r++){layout.frozenTrailingHeight+=self._getZoomRowHeight(r)}}totalWidth-=layout.rowHeaderWidth;totalHeight-=layout.colHeaderHeight;totalWidth-=layout.frozenWidth;totalHeight-=layout.frozenHeight;totalWidth-=layout.frozenTrailingWidth;totalHeight-=layout.frozenTrailingHeight;totalHeight-=layout.footerHeight;layout.viewportWidth=Math_max(0,totalWidth);layout.viewportHeight=Math_max(0,totalHeight);layout.headerX=layout.x;layout.headerY=layout.y;layout.frozenX=layout.headerX+layout.rowHeaderWidth;layout.frozenY=layout.headerY+layout.colHeaderHeight;layout.viewportX=layout.frozenX+layout.frozenWidth;layout.viewportY=layout.frozenY+layout.frozenHeight;layout.frozenTrailingX=layout.viewportX+layout.viewportWidth;layout.frozenTrailingY=layout.viewportY+layout.viewportHeight;layout.footerX=layout.headerX;layout.footerY=layout.y+layout.height-layout.footerHeight;return layout};Sheet.prototype._getSheetLayout=function(){var self=this;if(!self._layoutModel){self._layoutModel=self._createLayout()}return self._layoutModel};Sheet.prototype._getColumnLayout=function(colViewportIndex,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null||sheetArea===3||sheetArea===1){return this._getViewportColumnLayout(colViewportIndex)}else if(sheetArea===2){return this._getRowHeaderColumnLayout()}return keyword_null};Sheet.prototype._getRowHeaderColumnLayout=function(){var self=this;if(!self._colLayoutCache.rowHeader){self._colLayoutCache.rowHeader=self._createRowHeaderColumnLayout()}return self._colLayoutCache.rowHeader};Sheet.prototype._getViewportColumnLayout=function(colViewportIndex){var self=this;if(!self._colLayoutCache.viewport){self._colLayoutCache.viewport={}}if(!self._colLayoutCache.viewport[colViewportIndex]){self._colLayoutCache.viewport[colViewportIndex]=self._createViewportColumnLayout(colViewportIndex)}return self._colLayoutCache.viewport[colViewportIndex]};Sheet.prototype._createRowHeaderColumnLayout=function(){var colLayouts=new spread._LayoutModel;var layout=this._getSheetLayout();var colX=layout.headerX,colWidth;var colCount=this.getColumnCount(2);for(var col=0;col<colCount;col++){colWidth=this._getZoomColumnWidth(col,2);colLayouts.push(new spread._Layout(-1,col,colX,-1,colWidth,-1));colX+=colWidth}return colLayouts};Sheet.prototype._createViewportColumnLayout=function(colViewportIndex){var self=this;var colLayouts=new spread._LayoutModel;var layout=self._getSheetLayout();var colCount=self.getColumnCount(),col,colX,colWidth,cachePool=self._cachePool;if(colViewportIndex===0){colX=layout.frozenX;colCount=isNaN(self.frozenColCount)?0:Math_min(self.frozenColCount,colCount);for(col=0;col<colCount;col++){colWidth=cachePool.getCachedColumn(col).width;colLayouts.push(new spread._Layout(-1,col,colX,-1,colWidth,-1));colX+=colWidth}}else if(colViewportIndex===1){colX=layout.viewportX;colCount=colCount-self._frozenTrailingColCount;var viewportWidth=layout.viewportWidth;var leftCol=Math_max(self.frozenColCount,self._scrollLeftCol);for(col=leftCol;(viewportWidth>0&&col<colCount);col++){colWidth=cachePool.getCachedColumn(col).width;colLayouts.push(new spread._Layout(-1,col,colX,-1,colWidth,-1));colX+=colWidth;viewportWidth-=colWidth}}else if(colViewportIndex===2){colX=layout.frozenTrailingX;for(col=Math_max(self.frozenColCount,colCount-self._frozenTrailingColCount);col<colCount;col++){colWidth=cachePool.getCachedColumn(col).width;colLayouts.push(new spread._Layout(-1,col,colX,-1,colWidth,-1));colX+=colWidth}}return colLayouts};Sheet.prototype._getRowLayout=function(rowViewportIndex,sheetArea){if(typeof(sheetArea)===const_undefined||sheetArea===keyword_null||sheetArea===3||sheetArea===2){return this._getViewportRowLayout(rowViewportIndex)}else if(sheetArea===1){return this._getColumnHeaderRowLayout()}return keyword_null};Sheet.prototype._getAllRowLayout=function(sheetArea){var rowLayout=new spread._LayoutModel;for(var index=0;index<3;index++){var layout=this._getRowLayout(index,sheetArea);if(layout&&layout.length>0){rowLayout=($.merge(rowLayout,layout))}}return rowLayout};Sheet.prototype._getAllColumnLayout=function(sheetArea){var columnLayout=new spread._LayoutModel;for(var index=0;index<3;index++){var layout=this._getColumnLayout(index,sheetArea);if(layout&&layout.length>0){columnLayout=($.merge(columnLayout,layout))}}return columnLayout};Sheet.prototype._getColumnHeaderRowLayout=function(){var self=this;if(!self._rowLayoutCache.colHeader){self._rowLayoutCache.colHeader=self._createColumnHeaderRowLayout()}return self._rowLayoutCache.colHeader};Sheet.prototype._getViewportRowLayout=function(viewportIndex){var self=this;if(!self._rowLayoutCache.viewport){self._rowLayoutCache.viewport={}}if(!self._rowLayoutCache.viewport[viewportIndex]){self._rowLayoutCache.viewport[viewportIndex]=self._createViewportRowLayout(viewportIndex)}return self._rowLayoutCache.viewport[viewportIndex]};Sheet.prototype._createColumnHeaderRowLayout=function(){var rowLayouts=new spread._LayoutModel;var layout=this._getSheetLayout();var rowY=layout.headerY,rowHeight;var rowCount=this.getRowCount(1);for(var row=0;row<rowCount;row++){rowHeight=this._getZoomRowHeight(row,1);rowLayouts.push(new spread._Layout(row,-1,-1,rowY,-1,rowHeight));rowY+=rowHeight}return rowLayouts};Sheet.prototype._createViewportRowLayout=function(rowViewportIndex){var self=this;var rowLayouts=new spread._LayoutModel;var layout=self._getSheetLayout();var rowCount=self.getRowCount(),row,rowY,rowHeight,cachePool=self._cachePool;if(rowViewportIndex===0){rowY=layout.frozenY;rowCount=isNaN(self.frozenRowCount)?0:Math_min(self.frozenRowCount,rowCount);for(row=0;row<rowCount;row++){rowHeight=cachePool.getCachedRow(row).height;rowLayouts.push(new spread._Layout(row,-1,-1,rowY,-1,rowHeight));rowY+=rowHeight}}else if(rowViewportIndex===1){rowY=layout.viewportY;rowCount=rowCount-self._frozenTrailingRowCount;var viewportHeight=layout.viewportHeight;var topRow=Math_max(self.frozenRowCount,self._scrollTopRow);for(row=topRow;(viewportHeight>0&&row<rowCount);row++){rowHeight=cachePool.getCachedRow(row).height;rowLayouts.push(new spread._Layout(row,-1,-1,rowY,-1,rowHeight));rowY+=rowHeight;viewportHeight-=rowHeight}}else if(rowViewportIndex===2){rowY=layout.frozenTrailingY;for(row=Math_max(self.frozenRowCount,rowCount-self._frozenTrailingRowCount);row<rowCount;row++){rowHeight=cachePool.getCachedRow(row).height;rowLayouts.push(new spread._Layout(row,-1,-1,rowY,-1,rowHeight));rowY+=rowHeight}}return rowLayouts};Sheet.prototype._getCellLayout=function(rowViewportIndex,colViewportIndex,sheetArea){var self=this;var rowCount=self.getRowCount(sheetArea);var colCount=self.getColumnCount(sheetArea);var rowLayoutModel=self._getRowLayout(rowViewportIndex,sheetArea);var colLayoutModel=self._getColumnLayout(colViewportIndex,sheetArea);var cellLayoutModel=new spread._LayoutModel;if(rowLayoutModel&&rowLayoutModel.length>0&&colLayoutModel&&colLayoutModel.length>0){var topRow=rowLayoutModel[0].row;var leftCol=colLayoutModel[0].col;var bottomRow=rowLayoutModel[rowLayoutModel.length-1].row;var rightCol=colLayoutModel[colLayoutModel.length-1].col;var spans=self.getSpans(new spread.Range(topRow,leftCol,bottomRow-topRow+1,rightCol-leftCol+1),sheetArea);if(spans&&spans.length>0){self._addCellLayout(spans,topRow,leftCol,bottomRow,rightCol,cellLayoutModel,rowCount,colCount,sheetArea,rowLayoutModel,colLayoutModel)}}return cellLayoutModel};Sheet.prototype._getCellLayoutByCell=function(rowViewportIndex,colViewportIndex,sheetArea,row,col){var self=this;var rowCount=self.getRowCount(sheetArea);var colCount=self.getColumnCount(sheetArea);var rowLayoutModel=self._getRowLayout(rowViewportIndex,sheetArea);var colLayoutModel=self._getColumnLayout(colViewportIndex,sheetArea);var cellLayoutModel=new spread._LayoutModel;if(rowLayoutModel&&rowLayoutModel.length>0&&colLayoutModel&&colLayoutModel.length>0){var topRow=rowLayoutModel[0].row;var leftCol=colLayoutModel[0].col;var spanCell=self.getSpan(row,col,sheetArea);if(spanCell){var spans=[];spans.push(spanCell);self._addCellLayout(spans,topRow,leftCol,spanCell.row+spanCell.rowCount,spanCell.col+spanCell.colCount,cellLayoutModel,rowCount,colCount,sheetArea,rowLayoutModel,colLayoutModel)}if(cellLayoutModel.length>0){return cellLayoutModel[0]}return keyword_null}return keyword_null};Sheet.prototype._addCellLayout=function(spans,topRow,leftCol,bottomRow,rightCol,cellLayoutModel,rowCount,colCount,sheetArea,rowLayoutModel,colLayoutModel){var spanCount=spans.length;if(spanCount<=0){return}var self=this;var lastRow=bottomRow+1;var lastCol=rightCol+1;var heights=new Array(lastRow);var widths=new Array(lastCol);var xs=new Array(lastCol);var ys=new Array(lastRow);var x=0;var y=0;for(var i=topRow-1;i>=0;i--){heights[i]=self._getZoomRowHeight(i,sheetArea);y-=heights[i];ys[i]=y}y=0;for(var i=topRow;i<lastRow;i++){ys[i]=y;heights[i]=self._getZoomRowHeight(i,sheetArea);y+=heights[i]}for(var i=leftCol-1;i>=0;i--){widths[i]=self._getZoomColumnWidth(i,sheetArea);x-=widths[i];xs[i]=x}x=0;for(var i=leftCol;i<lastCol;i++){xs[i]=x;widths[i]=self._getZoomColumnWidth(i,sheetArea);x+=widths[i]}for(var k=0;k<spanCount;k++){var cellSpan=spans[k];if(cellSpan.intersect(topRow,leftCol,bottomRow-topRow+1,rightCol-leftCol+1)){var lastRow1=cellSpan.row+cellSpan.rowCount;if(lastRow1>lastRow){for(var i=lastRow;i<lastRow1;i++){heights.push(self._getZoomRowHeight(i,sheetArea));ys.push(ys[i-1]+heights[i])}lastRow=lastRow1}var lastCol1=cellSpan.col+cellSpan.colCount;if(lastCol1>lastCol){for(var i=lastCol;i<lastCol1;i++){widths.push(self._getZoomColumnWidth(i,sheetArea));xs.push(xs[i-1]+widths[i])}lastCol=lastCol1}var x=xs[cellSpan.col],y=ys[cellSpan.row],width=0,height=0,row,col;for(col=cellSpan.col;col<cellSpan.col+cellSpan.colCount&&col<colCount;col++)width+=widths[col];for(row=cellSpan.row;row<cellSpan.row+cellSpan.rowCount&&row<rowCount;row++)height+=heights[row];cellLayoutModel.push(new spread._Layout(cellSpan.row,cellSpan.col,colLayoutModel[0].x+x,rowLayoutModel[0].y+y,width,height,cellSpan.rowCount,cellSpan.colCount))}}};Sheet.prototype._getRowViewportIndexNearY=function(y){var layout=this._getSheetLayout();if(this.frozenRowCount>0&&y<layout.frozenY+layout.frozenHeight){return 0}else if(this._frozenTrailingRowCount>0&&y>layout.frozenTrailingY){return 2}else
{return 1}};Sheet.prototype._getColumnViewportIndexNearX=function(x){var layout=this._getSheetLayout();if(this.frozenColCount>0&&x<layout.frozenX+layout.frozenWidth){return 0}else if(this._frozenTrailingColCount>0&&x>layout.frozenTrailingX){return 2}else
{return 1}};Sheet.prototype._getViewportColumnLayoutNearX=function(columnViewportIndex,x){var colLayoutModel=this._getColumnLayout(columnViewportIndex);if(colLayoutModel){return colLayoutModel.findNearX(x)}return keyword_null};Sheet.prototype._getViewportRowLayoutNearY=function(rowViewportIndex,y){var rowLayoutModel=this._getRowLayout(rowViewportIndex);if(rowLayoutModel){return rowLayoutModel.findNearY(y)}return keyword_null};Sheet.prototype._syncHScollbarPosition=function(){var self=this,tempSpread=self.parent;var newLefCol=self._getScrollableColumn(self._scrollLeftCol);if(newLefCol!=-1&&newLefCol!=self._scrollLeftCol){self._scrollLeftCol=newLefCol}if(tempSpread&&tempSpread._scrollbarH){tempSpread._scrollbarH.value(self._scrollLeftCol)}};Sheet.prototype._syncVScrollbarPosition=function(){var self=this,tempSpread=self.parent;var newTopRow=self._getScrollableRow(self._scrollTopRow);if(newTopRow!==-1&&newTopRow!=self._scrollTopRow){self._scrollTopRow=newTopRow}if(tempSpread&&tempSpread._scrollbarV){tempSpread._scrollbarV.value(self._scrollTopRow)}};Sheet.prototype._syncScrollbarSize=function(){var self=this;if(self.parent&&self.parent._resizeScrollBar){self.parent._resizeScrollBar()}};Sheet.prototype._getScrollableRow=function(startRow,previous){var self=this;var min=self.getFrozenRowCount();var max=self.getRowCount()-self.getFrozenTrailingRowCount()-1;if(previous){if(startRow>max){startRow=max}var newTopRow=self._getPrevVisualRow(startRow+1);if(newTopRow!=keyword_null&&newTopRow>=min){return newTopRow}}else
{if(startRow<min){startRow=min}var newTopRow=self._getNextVisualRow(startRow-1);if(newTopRow!=keyword_null&&newTopRow<=max){return newTopRow}}return-1};Sheet.prototype._getScrollableColumn=function(startCol,previous){var self=this;var min=self.getFrozenColumnCount();var max=self.getColumnCount()-self.getFrozenTrailingColumnCount()-1;if(previous){if(startCol>max){startCol=max}var newLeftCol=self._getPrevVisualColumn(startCol+1);if(newLeftCol!=keyword_null&&newLeftCol>=min){return newLeftCol}}else
{if(startCol<min){startCol=min}var newLeftCol=self._getNextVisualColumn(startCol-1);if(newLeftCol!=keyword_null&&newLeftCol<=max){return newLeftCol}}return-1};Sheet.prototype._setTopRow=function(row){var self=this;var oldTopRow=self._scrollTopRow;if(row>=self._getFirstPageTopRow()&&row<=self._getLastVisualRow()&&row!==oldTopRow){self._eventHandler.vScrollTo(row);self._syncVScrollbarPosition();self._trigger(spread.Events.TopRowChanged,{sheet:self,sheetName:self._name,oldTopRow:oldTopRow,newTopRow:row})}};Sheet.prototype._setLeftColumn=function(col){var self=this;var oldLeftCol=self._scrollLeftCol;if(col>=self._getFirstPageLeftColumn()&&col<=self._getLastVisualColumn()&&col!==oldLeftCol){self._eventHandler.hScrollTo(col);self._syncHScollbarPosition();self._trigger(spread.Events.LeftColumnChanged,{sheet:self,sheetName:self._name,oldLeftCol:oldLeftCol,newLeftCol:col})}};Sheet.prototype._getSpanModel=function(sheetArea){if(sheetArea===keyword_undefined||sheetArea===keyword_null||sheetArea===3){return this._spanModel}else if(sheetArea===1){return this._colHeaderSpanModel}else if(sheetArea===2){return this._rowHeaderSpanModel}};Sheet.prototype._clipboardFloatingObjectCopy=function(names,isCutting,ignoreClipboard){if(!spread.features.floatingObject){return}var self=this;var ch=self._getFloatingObjectClipboardHelper(),fromSheet=ch.fromSheet,fromSheetEventHandler=fromSheet&&fromSheet._eventHandler;if(fromSheetEventHandler){fromSheetEventHandler._setClipboardFloatingObjectData(keyword_null)}ch.fromSheet=self;ch.isCutting=isCutting;var floatingObjects=new spread._HelperArray;for(var index=0;index<names.length;index++){var floatingObject=self._findFloatingObjectInternal(names[index]);if(floatingObject){floatingObjects.push(floatingObject)}}self._eventHandler._setClipboardFloatingObjectData(floatingObjects)};Sheet.prototype._clipboardCopy=function(range,isCutting,ignoreClipboard){if(!range){return}var columnDelimiter="\t";var rowDelimiter="\r\n";var cellDelimiter="\"";var self=this,eventHandler=self._eventHandler;var copyData=staticMembers.getRangeText(self,range.row,range.rowCount,range.col,range.colCount,rowDelimiter,columnDelimiter,cellDelimiter,false,0);var ch=self._getClipboardHelper();ch.fromSheet=self;ch.range=range;ch.isCutting=isCutting;try
{var args={sheet:self,sheetName:self._name,copyData:copyData,cancel:false};self._trigger(spread.Events.ClipboardChanging,args);if(args&&args.cancel===false){if(eventHandler&&!ignoreClipboard){eventHandler._switchFocusForClipboard(copyData)}self._trigger(spread.Events.ClipboardChanged,{sheet:self,sheetName:self._name,copyData:copyData});setTimeout(function(){if(eventHandler&&!ignoreClipboard){eventHandler._switchBackFocusAfterClipboard()}},100)}else
{ch.fromSheet=keyword_null;ch.range=keyword_null}}catch(e){}finally
{return copyData}};Sheet.prototype._trySearch=function(source,searchString,searchFlags){if(source){var sf=spread.SearchFlags;source=source.toString();searchString=searchString.toString();var exactMatch=((searchFlags&2)>0);if(exactMatch&&((searchFlags&4)===0)){if((searchFlags&1)>0){var sourceLower=source.toLowerCase();var searchStringLower=searchString.toLowerCase();return sourceLower===searchStringLower}else
{return source===searchString}}else
{var ignoreCase=((searchFlags&1)>0);var useWildCards=((searchFlags&4)>0);var rgExp;if(ignoreCase){rgExp=new RegExp(fixFormulaKeyword(searchString,useWildCards,exactMatch),"i")}else
{rgExp=new RegExp(fixFormulaKeyword(searchString,useWildCards,exactMatch))}var result=source.search(rgExp)>-1;if(exactMatch&&result&&(searchString.search(/\*/)<=-1)){result=(source.length===searchString.length)}return result}}return false};Sheet.prototype._getFilterButtonModel=function(){var self=this;if(!self._filterButtonsModel&&spread.features.filter_ui){self._filterButtonsModel=self._createFilterButtonModle()}return self._filterButtonsModel};Sheet.prototype._createFilterButtonModle=function(){var self=this;var filerBtnInfoModel=new spread._FilterButtonInfoModel;var filter=self.rowFilter();if(filter&&filter.range&&filter.showFilterButton){var cr=filter.range;var col=cr.col<0?0:cr.col;var endCol=cr.col<0?self.getColumnCount():cr.col+cr.colCount;var row,sheetArea;if(cr.row<1){row=self.getRowCount(1)-1;sheetArea=1}else
{row=cr.row-1;sheetArea=3}if(row>=0){while(col<endCol){var btnInfo=new spread._FilterButtonInfo(filter);btnInfo.sheetArea=sheetArea;btnInfo.row=row;var spans=self.getSpans(new spread.Range(row,col,1,1),sheetArea);if(spans&&spans.length>0){var spanCell=spans[0];btnInfo.row=spanCell.row;btnInfo.col=spanCell.col;col+=spanCell.colCount}else
{btnInfo.col=col;col++}filerBtnInfoModel.push(btnInfo)}}}var tables=self.getTables(),count=(tables?tables.length:0),tb;for(var i=0;i<count;i++){tb=tables[i];if(tb&&tb.showHeader()&&tb.rowFilter().showFilterButton){var row=tb.headerIndex();if(row>=0){var cr=tb.range();for(var j=0;j<cr.colCount;j++){var col=cr.col+j;var btnInfo=new spread._FilterButtonInfo(tb.rowFilter(),row,col,3);filerBtnInfoModel.push(btnInfo)}}}}return filerBtnInfoModel};Sheet.prototype._getFilterButtonHitInfo=function(target,x,y){if(!spread.features.filter_ui){return keyword_null}var self=this;var rowViewportIndex=target.rowViewportIndex;var colViewportIndex=target.colViewportIndex;var rowLayout,colLayout,sheetArea;if(target.hitTestType===1){rowLayout=self._getColumnHeaderRowLayout().findY(y);colLayout=self._getViewportColumnLayout(colViewportIndex).findX(x);sheetArea=1}else if(target.hitTestType===3){rowLayout=self._getViewportRowLayout(rowViewportIndex).findY(y);colLayout=self._getViewportColumnLayout(colViewportIndex).findX(x);sheetArea=3}if(!rowLayout||!colLayout){return keyword_null}var row=rowLayout.row;var col=colLayout.col;var spanCell=self.getSpan(row,col,sheetArea);if(spanCell){if(row!==spanCell.row+spanCell.rowCount-1||col!==spanCell.col+spanCell.colCount-1){return keyword_null}row=spanCell.row;col=spanCell.col}var btnInfo=self._getFilterButtonModel().find(row,col,sheetArea);if(btnInfo){var cellRect=self.getCellRect(row,col,rowViewportIndex,colViewportIndex);var btnRect=self._render._getFilterButtonRect(cellRect);if(btnRect.x<=x&&x<=btnRect.x+btnRect.width&&btnRect.y<=y&&y<=btnRect.y+btnRect.height){return new spread._FilterButtonInfo(btnInfo.rowFilter,btnInfo.row,btnInfo.col,btnInfo.sheetArea,btnRect.x,btnRect.y,btnRect.width,btnRect.height)}}return keyword_null};Sheet.prototype._getCellTypeHitInfo=function(target,x,y){var self=this;var r=target.row,c=target.col,sheetArea=target.hitTestType;var cellStyle=self.getActualStyle(r,c,sheetArea);var ct=(cellStyle.cellType||self.getDefaultCellType(sheetArea));if(self.isProtected&&cellStyle.locked){return keyword_null}var cellRect=self.getCellRect(r,c);var context={sheet:self,row:r,col:c,sheetArea:sheetArea};return self._allowEditorReservedLocations?ct.getHitInfo(x,y,cellStyle,cellRect,context):keyword_null};Sheet.prototype._getFloatingObjectHitInfo=function(x,y){var self=this,floatingObjectArray=self._floatingObjectArray,layout=self._getSheetLayout();if(spread.features.floatingObject&&layout&&floatingObjectArray&&floatingObjectArray.length>0){for(var index=floatingObjectArray.length-1;index>=0;index--){var floatingObject=floatingObjectArray[index],posX=floatingObject.position().x*self._zoomFactor+layout.headerX+layout.rowHeaderWidth,posY=floatingObject.position().y*self._zoomFactor+layout.headerY+layout.colHeaderHeight,width=floatingObject.width(),height=floatingObject.height();if(x>=posX&&x<posX+width&&y>=posY&&y<posY+height){return{x:x,y:y,floatingObject:floatingObject}}}}return keyword_null};Sheet.prototype._getCommentHitInfo=function(x,y){if(spread.features.comment){return this._commentManager.getCommentHitInfo(x,y)}return keyword_null};Sheet.prototype._trigger=function(type,data){var eventHandler=this._eventHandler;if(eventHandler._eventSuspended===0){eventHandler.trigger(type,data)}};Sheet.prototype._disposeUserEvents=function(){this.unbindAll();this._unbindAll()};Sheet.prototype._doCommand=function(action){var undoManager=this.undoManager();undoManager.doAction(action)};Sheet.prototype._refreshTabStrip=function(){var self=this;if(self.parent&&self.parent._tab&&self.parent._tab.repaint){self.parent._tab.repaint()}};Sheet.prototype._isAnyCellInRangeLocked=function(range){var ar=this._getActualRange(range),row=ar.row,col=ar.col,endRow=row+ar.rowCount,endCol=col+ar.colCount,style;for(var r=row;r<endRow;r++){for(var c=col;c<endCol;c++){style=this.getActualStyle(r,c);if(style.locked===true){return true}}}return false};Sheet.prototype._isValidRange=function(row,column,rowCount,columnCount,maxRowCount,maxColumnCount){if(-1<=row&&row<maxRowCount&&-1<=column&&column<maxColumnCount){if(row===-1&&column===-1){return true}else if(row===-1){if(columnCount!==0&&column+columnCount<=maxColumnCount){return true}}else if(column===-1){if(rowCount!==0&&row+rowCount<=maxRowCount){return true}}else
{if(columnCount!==0&&column+columnCount<=maxColumnCount&&rowCount!==0&&row+rowCount<=maxRowCount){return true}}}return false};Sheet.prototype._hasPartSpans=function(row,column,rowCount,columnCount){var enumerator,cs;if(row<0&&column<0){return false}else if(row<0){var columnHeaderSpanModel=this._colHeaderSpanModel;if(columnHeaderSpanModel&&columnHeaderSpanModel.length!==0){enumerator=columnHeaderSpanModel.getEnumerator(-1,column,-1,columnCount);cs=keyword_null;while(enumerator.moveNext()){cs=enumerator.current();if(cs.col<column||cs.col+cs.colCount>column+columnCount){return true}}}}else if(column<0){var rowHeaderSpanModel=this._rowHeaderSpanModel;if(rowHeaderSpanModel&&rowHeaderSpanModel.length!==0){enumerator=rowHeaderSpanModel.getEnumerator(row,-1,rowCount,-1);cs=keyword_null;while(enumerator.moveNext()){cs=enumerator.current();if(cs.row<row||cs.row+cs.rowCount>row+rowCount){return true}}}}var spanModel=this._spanModel;if(spanModel&&spanModel.length!==0){var spanEnumerator=spanModel.getEnumerator(row,column,rowCount,columnCount);cs=keyword_null;while(spanEnumerator.moveNext()){cs=spanEnumerator.current();if(row!==-1){if(cs.row<row||cs.row+cs.rowCount>row+rowCount){return true}}if(column!==-1){if(cs.col<column||cs.col+cs.colCount>column+columnCount){return true}}}}return false};Sheet.prototype._hasSpans=function(row,column,rowCount,columnCount){var spans=this._spanModel;if(spans){for(var i=0,count=spans.length;i<count;i++){var span=spans[i];if(span.intersect(row,column,rowCount,columnCount)){return true}}}return false};Sheet.prototype._hasPartTable=function(row,column,rowCount,columnCount){var tables=this.getTables();if(tables&&tables.length>0){var range=new spread.Range(row,column,rowCount,columnCount);var count=tables.length,cr;for(var i=0;i<count;i++){cr=tables[i].range();if(range.intersect(cr.row,cr.col,cr.rowCount,cr.colCount)&&!range.containsRange(cr)){return true}}}return false};Sheet.prototype._hasTable=function(row,column,rowCount,columnCount){if(this._tableManager&&this._tableManager.has(row,column,rowCount,columnCount)){return true}return false};Sheet.prototype._hasPartArrayFormulas=function(row,column,rowCount,columnCount){return this._getSheetSource()&&this._getSheetSource()._getFormulaExps(row,column,rowCount,columnCount,true,true)};Sheet.prototype._getsArrayFormulas=function(row,column,rowCount,columnCount){return this._getSheetSource()&&this._getSheetSource()._getFormulaExps(row,column,rowCount,columnCount,false,true)};Sheet.prototype._hasArrayFormula=function(row,column,rowCount,columnCount){var result=this._getsArrayFormulas(row,column,rowCount,columnCount);return result&&result.formulas&&result.formulas.length>0};Sheet.prototype._raiseDragDropBlock=function(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount,copy,insert,copyOption){var args={sheet:this,sheetName:this._name,fromRow:fromRow,fromCol:fromColumn,toRow:toRow,toCol:toColumn,rowCount:rowCount,colCount:columnCount,copy:copy,insert:insert,copyOption:copyOption,cancel:false};this._trigger(spread.Events.DragDropBlock,args);return args&&args.cancel===true};Sheet.prototype._raiseDragDropBlockCompleted=function(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount,copy,insert,copyOption){var args={sheet:this,sheetName:this._name,fromRow:fromRow,fromCol:fromColumn,toRow:toRow,toCol:toColumn,rowCount:rowCount,colCount:columnCount,copy:copy,insert:insert,copyOption:copyOption};this._trigger(spread.Events.DragDropBlockCompleted,args)};Sheet.prototype._raiseInvalidOperation=function(invalidType,message){var args={sheet:this,sheetName:this._name,invalidType:invalidType,message:message};this._trigger(spread.Events.InvalidOperation,args)};Sheet.prototype._suspendInvalidate=function(){this._layoutSuspended++};Sheet.prototype._resumeInvalidate=function(){var self=this;self._layoutSuspended--;if(self._layoutSuspended<=0){if(!self.isPaintSuspended()){self.invalidateLayout();self.repaint();return true}self._layoutSuspended=0}return false};Sheet.prototype._raiseSelectionChanging=function(oldSelections,newSelections){var self=this;var notEqual=self._eventHandler._notEqualSelecions(oldSelections,newSelections);if(notEqual===true){self._trigger(spread.Events.SelectionChanging,{sheet:self,sheetName:self._name,oldSelections:oldSelections,newSelections:newSelections});return true}return false};Sheet.prototype._raiseSelectionChanged=function(){this._trigger(spread.Events.SelectionChanged,{sheet:this,sheetName:this._name})};Sheet.prototype._raiseDragFillBlock=function(fillRange,fillDirection,fillType){var args={sheet:this,sheetName:this._name,fillRange:fillRange,autoFillType:fillType,fillDirection:fillDirection,cancel:false};this._trigger(spread.Events.DragFillBlock,args);return args&&args.cancel===true};Sheet.prototype._raiseDragFillBlockCompleted=function(fillRange,fillDirection,fillType){var args={sheet:this,sheetName:this._name,fillRange:fillRange,autoFillType:fillType,fillDirection:fillDirection};this._trigger(spread.Events.DragFillBlockCompleted,args)};Sheet.prototype._raiseCellChanged=function(propertyName,row,column,sheetArea){var args={sheet:this,sheetName:this._name,row:row,col:column,sheetArea:sheetArea,propertyName:propertyName};this._trigger(spread.Events.CellChanged,args)};Sheet.prototype._raisePropertyChanged=function(propertyName){};Sheet.prototype._nextNonNullRow=function(row,rowHeader){var self=this;var bm=self._bindingManager,ds=self.getDataSource();row++;var model=rowHeader?self._getModel(2):self._getModel(3);var count=model.rowCount;if(rowHeader===false&&ds){count=Math_max(count,bm.getRowCount())}while(row>=0&&row<count){if(model.dataTable.hasOwnProperty(row)&&model.dataTable[row]){break}if(rowHeader===false&&ds){if(bm.getDataItem(row)){break}}row++}if(row<count){return row}return-1};Sheet.prototype._nextNonNullColumn=function(row,col,columnHeader){var self=this;var bm=self._bindingManager,ds=self.getDataSource();var dr=keyword_null;var model=columnHeader?self._getModel(1):self._getModel(3);if(row>=0&&row<model.rowCount){if(model.dataTable.hasOwnProperty(row)){dr=model.dataTable[row]}}if(columnHeader===false&&!dr&&ds){if(row>=0&&row<bm.getRowCount()){dr=bm.getDataItem(row)}}if(!dr){return-1}col++;while(col>=0&&(col<model.colCount||col<dr.length)){if(dr.hasOwnProperty(col)&&dr[col]){break}if(columnHeader===false&&ds){var value=self._getValueImp(model,row,col);if(value!==keyword_undefined&&value!==keyword_null){break}}col++}if(col<model.colCount||(columnHeader===false&&dr&&col<dr.length)){return col}return-1};Sheet.prototype._closeDragFillPopup=function(){if(this._smartTag){this._smartTag.close()}};Sheet.prototype._cellRangeInflate=function(spans,cellRange){if(spans&&spans.length>0){for(var i=0;i<spans.length;i++){var cr=spans[i];if(cellRange.intersect(cr.row,cr.col,cr.rowCount,cr.colCount)){spans.splice(i--,1);return this._cellRangeInflate(spans,this._unionCellRange(cellRange,cr))}}}return cellRange};Sheet.prototype._unionCellRange=function(range1,range2){var ltr=Math_min(range1.row,range2.row);var ltc=Math_min(range1.col,range2.col);var rbr=Math_max(range1.row+range1.rowCount-1,range2.row+range2.rowCount-1);var rbc=Math_max(range1.col+range1.colCount-1,range2.col+range2.colCount-1);if(ltr>=0&<c>=0){return new spread.Range(ltr,ltc,rbr-ltr+1,rbc-ltc+1)}else if(ltr>=0){return new spread.Range(ltr,-1,rbr-ltr+1,-1)}else if(ltc>=0){return new spread.Range(-1,ltc,-1,rbc-ltc+1)}else
{return new spread.Range(-1,-1,-1,-1)}};Sheet.prototype._getClipboardHelper=function(){var self=this;if(!self._clipboardHelper&&self.parent&&self.parent._clipboardHelper){self._clipboardHelper=self.parent._clipboardHelper}else if(!self._clipboardHelper){self._clipboardHelper={fromSheet:keyword_null,range:keyword_null,isCutting:false}}return self._clipboardHelper};Sheet.prototype._getFloatingObjectClipboardHelper=function(){var self=this;if(!self._floatingObjectClipboardHelper&&self.parent&&self.parent._floatingObjectClipboardHelper){self._floatingObjectClipboardHelper=self.parent._floatingObjectClipboardHelper}else if(!self._floatingObjectClipboardHelper){self._floatingObjectClipboardHelper={fromSheet:keyword_null,isCutting:false}}return self._floatingObjectClipboardHelper};Sheet.prototype._checkPastedRange=function(fromSheet,fromRange,toRange,isCutting,clipboardText,outPara){var msg_sheetViewPasteSouceSheetCellsAreLocked=spread.SR.Exp_PasteSourceCellsLocked;var msg_sheetViewTheCopyAreaAndPasteAreaAreNotTheSameSize=spread.SR.Exp_InvalidCopyPasteSize;var msg_sheetViewPasteDestinationSheetCellsAreLocked=spread.SR.Exp_PasteDestinationCellsLocked;var msg_sheetViewPasteChangeMergeCell=spread.SR.Exp_PasteChangeMergeCell;var msg_sheetViewPasteChangePartOfArrayFormula=spread.SR.Exp_ChangePartOfArray;outPara.pastedInternal=false;outPara.pastedRange=keyword_null;if(!fromSheet&&(!clipboardText||clipboardText==="")){return false}var self=this;var toSheet=self;if(self._isPastedInternal(fromSheet,fromRange,toSheet,clipboardText)||!clipboardText){outPara.pastedInternal=true;if(isCutting&&fromSheet.isProtected&&fromSheet._isAnyCellInRangeLocked(fromRange)){self._raiseInvalidOperation(1,msg_sheetViewPasteSouceSheetCellsAreLocked);return false}outPara.pastedRange=self._getPastedRange(fromSheet,fromRange,toSheet,toRange,isCutting)}else
{outPara.pastedRange=self._getPastedRangefromText(toRange,clipboardText)}if(!outPara.pastedRange){self._raiseInvalidOperation(1,msg_sheetViewTheCopyAreaAndPasteAreaAreNotTheSameSize);return false}if(toSheet.isProtected&&toSheet._isAnyCellInRangeLocked(outPara.pastedRange)){self._raiseInvalidOperation(1,msg_sheetViewPasteDestinationSheetCellsAreLocked);return false}if(outPara.pastedInternal){if(fromSheet._hasPartSpans(fromRange.row,fromRange.col,fromRange.rowCount,fromRange.colCount)){self._raiseInvalidOperation(1,msg_sheetViewPasteChangeMergeCell);return false}if(isCutting&&fromSheet._hasPartArrayFormulas(fromRange.row,fromRange.col,fromRange.rowCount,fromRange.colCount)){self._raiseInvalidOperation(1,msg_sheetViewPasteChangePartOfArrayFormula);return false}var toRowCount=outPara.pastedRange.row<0?toSheet.getRowCount():outPara.pastedRange.rowCount;var toColumnCount=outPara.pastedRange.col<0?toSheet.getColumnCount():outPara.pastedRange.colCount;var rowCount=fromRange.row<0?fromSheet.getRowCount():fromRange.rowCount;var columnCount=fromRange.col<0?fromSheet.getColumnCount():fromRange.colCount;if(toRowCount>rowCount||toColumnCount>columnCount){var toRow=toRange.row;var toColumn=toRange.col;if(toRange.row<0&&rowCount<toSheet.getRowCount()){toRow=0}if(toRange.col<0&&columnCount<toSheet.getColumnCount()){toColumn=0}if(toRowCount%rowCount===0&&toColumnCount===1){toColumnCount=columnCount;outPara.pastedRange=new spread.Range(toRow,toColumn,toRowCount,toColumnCount)}else if(toRowCount===1&&toColumnCount%columnCount===0){toRowCount=rowCount;outPara.pastedRange=new spread.Range(toRow,toColumn,toRowCount,toColumnCount)}else if(toRowCount%rowCount!==0||toColumnCount%columnCount!==0){toRowCount=rowCount;toColumnCount=columnCount;outPara.pastedRange=new spread.Range(toRow,toColumn,toRowCount,toColumnCount)}var rn=Math_floor(toRowCount/rowCount);var cn=Math_floor(toColumnCount/columnCount);for(var r=0;r<rn;r++){for(var c=0;c<cn;c++){if(toSheet._hasPartSpans((toRow<0?-1:toRow+r*rowCount),(toColumn<0?-1:toColumn+c*columnCount),(toRow<0?-1:rowCount),(toColumn<0?-1:columnCount))){self._raiseInvalidOperation(1,msg_sheetViewPasteChangeMergeCell);return false}if(toSheet._hasPartArrayFormulas((toRow<0?-1:toRow+r*rowCount),(toColumn<0?-1:toColumn+c*columnCount),(toRow<0?-1:rowCount),(toColumn<0?-1:columnCount))){self._raiseInvalidOperation(1,msg_sheetViewPasteChangePartOfArrayFormula);return false}}}}else
{if(toSheet._hasPartSpans(outPara.pastedRange.row,outPara.pastedRange.col,outPara.pastedRange.rowCount,outPara.pastedRange.colCount)){self._raiseInvalidOperation(1,msg_sheetViewPasteChangeMergeCell);return false}if(toSheet._hasPartArrayFormulas(outPara.pastedRange.row,outPara.pastedRange.col,outPara.pastedRange.rowCount,outPara.pastedRange.colCount)){self._raiseInvalidOperation(1,msg_sheetViewPasteChangePartOfArrayFormula);return false}}}else
{if(toSheet._hasPartSpans(outPara.pastedRange.row,outPara.pastedRange.col,outPara.pastedRange.rowCount,outPara.pastedRange.colCount)){self._raiseInvalidOperation(1,msg_sheetViewPasteChangeMergeCell);return false}if(toSheet._hasPartArrayFormulas(outPara.pastedRange.row,outPara.pastedRange.col,outPara.pastedRange.rowCount,outPara.pastedRange.colCount)){self._raiseInvalidOperation(1,msg_sheetViewPasteChangePartOfArrayFormula);return false}if((outPara.pastedRange.row+outPara.pastedRange.rowCount>toSheet.getRowCount())||(outPara.pastedRange.col+outPara.pastedRange.colCount>toSheet.getColumnCount())){self._raiseInvalidOperation(1,msg_sheetViewTheCopyAreaAndPasteAreaAreNotTheSameSize);return false}}return true};Sheet.prototype._isPastedInternal=function(srcSheet,srcRange,destSheet,clipboadText){if(srcSheet&&srcRange&&destSheet){var csvText=staticMembers.getRangeText(srcSheet,srcRange.row,srcRange.rowCount,srcRange.col,srcRange.colCount,"\r\n","\t","\"",false,0);var isTextEqual=csvText===clipboadText;if(!isTextEqual&&($.browser.chrome||$.browser.safari||$.browser.webkit)){isTextEqual=csvText===clipboadText+"\r\n"}return isTextEqual}return false};Sheet.prototype._getPastedRange=function(fromSheet,fromRange,toSheet,toRange,isCutting){var fromRow=fromRange.row<0?0:fromRange.row;var fromColumn=fromRange.col<0?0:fromRange.col;var fromRowCount=fromRange.row<0?fromSheet.getRowCount():fromRange.rowCount;var fromColumnCount=fromRange.col<0?fromSheet.getColumnCount():fromRange.colCount;var toRow=toRange.row<0?0:toRange.row;var toColumn=toRange.col<0?0:toRange.col;var toRowCount=toRange.row<0?toSheet.getRowCount():toRange.rowCount;var toColumnCount=toRange.col<0?toSheet.getColumnCount():toRange.colCount;if(isCutting){toRowCount=fromRowCount;toColumnCount=fromColumnCount}else if(toRowCount%fromRowCount===0&&toColumnCount===1){toColumnCount=fromColumnCount}else if(toRowCount===1&&toColumnCount%fromColumnCount===0){toRowCount=fromRowCount}else if(toRowCount%fromRowCount!==0||toColumnCount%fromColumnCount!==0){toRowCount=fromRowCount;toColumnCount=fromColumnCount}if(!this._isValidRange(fromRow,fromColumn,fromRowCount,fromColumnCount,fromSheet.getRowCount(),fromSheet.getColumnCount())){return keyword_null}if(!this._isValidRange(toRow,toColumn,toRowCount,toColumnCount,toSheet.getRowCount(),toSheet.getColumnCount())){return keyword_null}var fixedToRange=new spread.Range(toRow,toColumn,toRowCount,toColumnCount);if(!isCutting&&fromSheet._name===toSheet._name){if(fixedToRange.contains(fromRow,fromColumn,fromRowCount,fromColumnCount)){if((fromRow-toRow)%fromRowCount!==0||(fromColumn-toColumn)%fromColumnCount!==0){return keyword_null}}else if(fixedToRange.intersect(fromRow,fromColumn,fromRowCount,fromColumnCount)){if(toRowCount>fromRowCount||toColumnCount>fromColumnCount){return keyword_null}}}if(toRange.row===-1){toRow=-1;toRowCount=-1}if(toRange.col===-1){toColumn=-1;toColumnCount=-1}return new spread.Range(toRow,toColumn,toRowCount,toColumnCount)};Sheet.prototype._getPastedRangefromText=function(toRange,clipboadText){var ret=keyword_null;var textArray=staticMembers.parseCsv(clipboadText,"\r\n","\t","\"");if(textArray){var row=toRange.row<0?0:toRange.row;var column=toRange.col<0?0:toRange.col;var rowCount=textArray.length;var columnCount=staticMembers.getMaxLength(textArray);if(rowCount>0&&columnCount>0){ret=new spread.Range(row,column,rowCount,columnCount)}}return ret};Sheet.prototype._clipboardPaste=function(fromSheet,fromRange,toSheet,toRange,isCutting,clipboardText,option,istyle){if(fromSheet&&toSheet._name===fromSheet._name&&(toSheet.parent&&!toSheet.parent.sheets.contains(fromSheet))){return}var toRow,toColumn,rowCount,columnCount,r,c;if(fromSheet&&fromRange){var convertPasteOption=spread.UndoRedo.ClipboardPasteRangeUndoAction.convertPasteOption;var pasteOption=convertPasteOption(option);if((pasteOption&2)!==0&&(isCutting&&fromSheet._hasPartArrayFormulas(fromRange.row,fromRange.col,fromRange.rowCount,fromRange.colCount)||toSheet._hasPartArrayFormulas(toRange.row,toRange.col,toRange.rowCount,toRange.colCount))){throw spread.SR.Exp_ChangePartOfArray;}if(isCutting){staticMembers.moveTo(fromSheet,fromRange.row,fromRange.col,toSheet,toRange.row,toRange.col,fromRange.rowCount,fromRange.colCount,pasteOption)}else
{var toRowCount=toRange.row<0?toSheet.getRowCount():toRange.rowCount;var toColumnCount=toRange.col<0?toSheet.getColumnCount():toRange.colCount;rowCount=fromRange.row<0?fromSheet.getRowCount():fromRange.rowCount;columnCount=fromRange.col<0?fromSheet.getColumnCount():fromRange.colCount;if(toRowCount>rowCount||toColumnCount>columnCount){toRow=toRange.row;toColumn=toRange.col;if(toRange.row<0&&rowCount<toSheet.getRowCount()){toRow=0}if(toRange.col<0&&columnCount<toSheet.getColumnCount()){toColumn=0}if(toRowCount%rowCount===0&&toColumnCount===1){toColumnCount=columnCount}else if(toRowCount===1&&toColumnCount%columnCount===0){toRowCount=rowCount}else if(toRowCount%rowCount!==0||toColumnCount%columnCount!==0){toRowCount=rowCount;toColumnCount=columnCount}var rn=Math_floor(toRowCount/rowCount);var cn=Math_floor(toColumnCount/columnCount);fromSheet.suspendCalcService();toSheet.suspendCalcService();try
{for(r=0;r<rn;r++){for(c=0;c<cn;c++){staticMembers.copyTo(fromSheet,fromRange.row,fromRange.col,toSheet,(toRow<0?-1:toRow+r*rowCount),(toColumn<0?-1:toColumn+c*columnCount),(toRow<0?-1:rowCount),(toColumn<0?-1:columnCount),pasteOption,null,istyle)}}}finally
{fromSheet.resumeCalcService();toSheet.resumeCalcService()}}else
{staticMembers.copyTo(fromSheet,fromRange.row,fromRange.col,toSheet,toRange.row,toRange.col,fromRange.rowCount,fromRange.colCount,pasteOption,null,istyle)}}}else
{toRow=toRange.row;toColumn=toRange.col;rowCount=toRange.rowCount;columnCount=toRange.colCount;var spanEnumerator=toSheet._spanModel.getEnumerator(toRow,toColumn,rowCount,columnCount),removedSpans=[];while(spanEnumerator.moveNext()){var cs=spanEnumerator.current();if(cs){removedSpans.push(cs)}}for(var i=0,len=removedSpans.length;i<len;i++){toSheet._spanModel.remove(removedSpans[i])}if((!clipboardText)||(clipboardText==="")){for(r=0;r<rowCount;r++){for(c=0;c<columnCount;c++){toSheet.setValue(toRow+r,toColumn+c,keyword_null)}}}else
{toSheet.setCsv(toRow,toColumn,clipboardText,"\r\n","\t",16)}}};Sheet.prototype._raiseClipboardPasting=function(cellRange,pasteOption){var args={sheet:this,sheetName:this._name,cellRange:cellRange,pasteOption:pasteOption,cancel:false};this._trigger(spread.Events.ClipboardPasting,args);return args.cancel===true};Sheet.prototype._raiseClipboardPasted=function(cellRange,pasteOption){var args={sheet:this,sheetName:this._name,cellRange:cellRange,pasteOption:pasteOption};this._trigger(spread.Events.ClipboardPasted,args)};Sheet.prototype._raiseValueChanged=function(row,column){var args={sheet:this,sheetName:this._name,row:row,col:column};this._trigger(spread.Events.ValueChanged,args)};Sheet.prototype._raiseRangeDataChanged=function(row,column,rowCount,columnCount){var args={sheet:this,sheetName:this._name,row:row,column:column,rowCount:rowCount,columnCount:columnCount};this._trigger(spread.Events.RangeChanged,args)};Sheet.prototype._copyFormula=function(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount){staticMembers.copyFormula(this,fromRow,fromColumn,this,toRow,toColumn,rowCount,columnCount)};Sheet.prototype._getAutoFitType=function(){if(this.parent!=keyword_null){var pSpread=this.parent;return pSpread.autoFitType()}return 0};Sheet.prototype._doCut=function(ignoreClipboard){if(!this.isEditing()){var sels=this.getSelections();if(sels&&sels.length===1){return this._clipboardCopy(sels[0],true,ignoreClipboard)}}return keyword_null};Sheet.prototype._doCopy=function(ignoreClipboard){if(!this.isEditing()){var sels=this.getSelections();if(sels&&sels.length===1){return this._clipboardCopy(sels[0],false,ignoreClipboard)}}return keyword_null};Sheet.prototype._doFloatingObjectCopy=function(ignoreClipboard){var self=this;if(self._hasFloatingObjectsSelected()){var selectedFloatingObjects=[];var i,len,floatingObjectArray=self._floatingObjectArray;for(i=0,len=floatingObjectArray.length;i<len;i++){var item=floatingObjectArray[i];if(item.isSelected()){selectedFloatingObjects.push(item.name())}}self._clipboardFloatingObjectCopy(selectedFloatingObjects,false,ignoreClipboard)}};Sheet.prototype._doFloatingObjectCut=function(ignoreClipboard){var self=this;if(self._hasFloatingObjectsSelected()){var selectedFloatingObjects=[];var i,len,floatingObjectArray=self._floatingObjectArray;for(i=0,len=floatingObjectArray.length;i<len;i++){var item=floatingObjectArray[i];if(item.isSelected()){selectedFloatingObjects.push(item.name())}}self._clipboardFloatingObjectCopy(selectedFloatingObjects,true,ignoreClipboard);var deleteExtent={names:selectedFloatingObjects};var deleteFloationgObjectUndoAction=new spread.UndoRedo.DeleteFloatingObjectUndoAction(self,deleteExtent);self._doCommand(deleteFloationgObjectUndoAction)}};Sheet.prototype._doFloatingObjectPaste=function(pasteData,callback){var sheet=this;if(sheet.isEditing()||!spread.features.floatingObject){return}var ch=sheet._getFloatingObjectClipboardHelper();var fromSheet=ch.fromSheet,fromSheetEventHandler=fromSheet._eventHandler;var isCutting=ch.isCutting;setTimeout(function(){var clipboardData=pasteData;if(fromSheetEventHandler&&!pasteData){clipboardData=fromSheetEventHandler._getClipboardFloatingObjectData()}if(clipboardData&&clipboardData.length){var names=[];var i,len;for(i=0,len=clipboardData.length;i<len;i++){names.push(clipboardData[i].name())}var clipboardPasteFloatingObjectUndoAction=new spread.UndoRedo.ClipboardPasteFloatingObjectUndoAction(sheet,{names:names},fromSheet);sheet._doCommand(clipboardPasteFloatingObjectUndoAction)}if(callback){callback()}},100)};Sheet.prototype._doPaste=function(pasteData,callback,istyle){var sheet=this,eventHandler=sheet._eventHandler;if(sheet.isEditing()){return}var msg_spreadActionPasteSizeDifferent=spread.SR.Exp_InvalidPastedArea;var ch=sheet._getClipboardHelper();var fromSheet=ch.fromSheet;var fromRange=ch.range;if(eventHandler&&!pasteData){eventHandler._switchFocusForClipboard("")}setTimeout(function(){var clipboardText=pasteData;if(eventHandler&&!pasteData){clipboardText=eventHandler._getClipboardData();eventHandler._switchBackFocusAfterClipboard()}var isCutting=ch.isCutting;if(isCutting){ch.fromSheet=keyword_null;ch.range=keyword_null;ch.isCutting=false}if(isCutting&&fromSheet&&fromRange&&fromSheet.isProtected&&fromSheet._isAnyCellInRangeLocked(fromRange)){isCutting=false}var outPara={pastedRange:keyword_null,pastedInternal:false};var pastedRanges=[];var selections=sheet.getSelections();var toRange;if(selections.length>1){for(var i=0;i<selections.length;i++){toRange=selections[i];if(!sheet._checkPastedRange(fromSheet,fromRange,toRange,isCutting,clipboardText,outPara)){return}if(toRange.containsRange(outPara.pastedRange)&&!toRange.equals(outPara.pastedRange)){sheet._raiseInvalidOperation(1,msg_spreadActionPasteSizeDifferent);return}pastedRanges.push(outPara.pastedRange)}}else if(selections.length>0){toRange=selections[0];if(!sheet._checkPastedRange(fromSheet,fromRange,toRange,isCutting,clipboardText,outPara)){return}pastedRanges.push(outPara.pastedRange)}else
{toRange=sheet._getSpanModel().find(sheet._activeRowIndex,sheet._activeColIndex);if(!toRange){toRange=new spread.Range(sheet._activeRowIndex,sheet._activeColIndex,1,1)}if(!sheet._checkPastedRange(fromSheet,fromRange,toRange,isCutting,clipboardText,outPara)){return}pastedRanges.push(outPara.pastedRange)}if(pastedRanges.length>0){if(!outPara.pastedInternal){fromSheet=keyword_null;fromRange=keyword_null}var pasteOption=sheet.clipBoardOptions();if(isCutting){pasteOption=0}var pasteExtent={fromRange:fromRange,pastedRanges:pastedRanges.slice(0),isCutting:isCutting,clipboardText:clipboardText};var pasteUndoAction=new spread.UndoRedo.ClipboardPasteUndoAction(sheet,fromSheet,sheet,pasteExtent,pasteOption,istyle);sheet._doCommand(pasteUndoAction)}if(callback){callback()}},100)};Sheet.prototype._getImageLoader=function(){if(!this.imageLoader){var self=this;this.imageLoader=new spread._GcImageLoader(function(){self.repaint()})}return this.imageLoader};Sheet.prototype._getContainerDiv=function(){var self=this;if(!self._containerDiv&&self._canvas&&self._canvas.parentNode){self._containerDiv=document.createElement('div');$(self._containerDiv).css({position:'absolute',left:0,top:0,width:0,height:0});$(self._canvas.parentNode).prepend(self._containerDiv)}return self._containerDiv};Sheet.prototype.setComment=function(row,col,value){if(!spread.features.comment){return}var self=this,commentManager=this._commentManager;var oldComment=self.getComment(row,col);if(oldComment){if(commentManager&&commentManager.containsComment(oldComment)){commentManager.removeComment(oldComment)}}var model=self._getModel(3);model.setComment(row,col,value);commentManager.addComment(row,col,value);self._raiseCellChanged("comment",row,col,3)};Sheet.prototype.getComment=function(row,col){if(!spread.features.comment){return keyword_null}var model=this._getModel(3);return model.getComment(row,col)};Sheet.prototype.getComments=function(){if(!spread.features.comment){return}return this._commentManager.getCommentList()};return Sheet})();spread.Sheet=Sheet;var _CatchMgr=(function(){function _CatchMgr(){}_CatchMgr.startCatch=function(sheet,startRow,startColumn,endRow,endColumn){var mgr=_CatchMgr;mgr._catched=true;var rowCount=sheet.getRowCount();if(sheet._hasTable(startRow,startColumn,endRow-startRow+1,endColumn-startColumn+1)){var vIndex=-1;var vIndexCatch=mgr._visibleRowIndexCatch=[];for(var r=0;r<=endRow;r++){if(sheet.getRowVisible(r)){vIndex++;vIndexCatch[r]=vIndex}else
{vIndexCatch[r]=-1}}}};_CatchMgr.clearCatch=function(){_CatchMgr._visibleRowIndexCatch=null;_CatchMgr._catched=false};_CatchMgr._catched=false;return _CatchMgr})();spread._CatchMgr=_CatchMgr})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("core.spread",["core.common","core.theme","core.sheet_event","core.sheet_action","core.sheet","core.spreadpanelex","core.stringResource","core.imageLoader"]);var keyword_null=null,keyword_undefined=undefined,Math_round=Math.round,Math_max=Math.max,Math_min=Math.min,const_undefined="undefined";var document=window.document;var cmd_refresh="refresh",cmd_scroll="scroll",cmd_resize="resize",dir_horizontal="horizontal",dir_vertical="vertical",tag_input="input",tag_div="div",pixel="px",zero="0",thousands="3000",cssHidden="hidden",cssVisible="visible",cssTop="top",cssNone="none",ns_spread=".gcSpread",data_postfix="_data",ns_scrollbar='.gcScrollbar',cssScrollerHandle="scroll-handle",cssScrollbar="scroll-bar",e_mousedown="mousedown",e_mouseup="mouseup";var Spread=(function(){function Spread(name,count,host){var self=this;self._host=keyword_null;self._allowUndo=true;self._paintSuspended=false;self._availableSheetIndex=-1;self._useTouchLayout=false;self.sheets=keyword_null;self.name=keyword_null;self.useWijmoTheme=false;self._tabStripRatio=0.5;self._tabStripRatioUserSet=0.5;self._activeSheetIndex=0;self._allowUserZoom=true;self._allowUserResize=true;self._allowSheetReorder=true;self._tabStripVisible=true;self._tabEditable=true;self._newTabVisible=true;self._firstTabUserSet=0;self._canUserEditFormula=true;self._highlightInvalidData=false;self._autoFitType=0;self._allowDragDrop=true;self._allowDragFill=true;self._showScrollTip=0;self._showResizeTip=0;self._showDragDropTip=true;self._showDragFillTip=true;self._tooltip=keyword_null;self._showVerticalScrollbar=true;self._showHorizontalScrollbar=true;self._backColor="white";self._backgroundImage=keyword_null;self._backgroundImageLayout=0;self._grayAreaBackColor="white";self._imageLoader=keyword_null;self._suspendSetFocus=false;self._cutCopyIndicatorVisible=true;self._cutCopyIndicatorBorderColor="#217346";self._defaultSheetCount=1;self._defaultActiveSheetIndex=0;self._windowResizeTimer=keyword_null;self._init(name,count,host)}Spread.prototype._init=function(name,count,host){var self=this;self.name=name;if(spread.util.hasCalc()){self.calcService=new spread.Calc.Service(self)}self._userEvents=[];self._userEventsElem=document.createElement(tag_input);self._eventSuspended=0;self._undoManager=new spread._UndoManager(self,-1,self.allowUndo());self._clipboardHelper={fromSheet:keyword_null,range:keyword_null,isCutting:false};self._floatingObjectClipboardHelper={fromSheet:keyword_null,isCutting:false};self._containerDiv=keyword_null;if(spread.features.touch){self._touchEventProvider=new spread.TouchEventProvider}self.sheets=[];self._namedStyles={};if(spread.features.sparklineEx){self._sparklineExs={};self.addSparklineEx(new spread.PieSparkline);self.addSparklineEx(new spread.AreaSparkline);self.addSparklineEx(new spread.ScatterSparkline);self.addSparklineEx(new spread.LineSparkline);self.addSparklineEx(new spread.ColumnSparkline);self.addSparklineEx(new spread.WinlossSparkline)}var i;for(i=0;i<count;i++){self.sheets.push(self._createSheet(self._getDefaultSheetName(i)))}if(self.sheets.length>0&&spread.util.hasCalc()){var defSource=keyword_null;for(i=0;!defSource&&i<self.sheets.length;i++){defSource=self.sheets[i]._getSheetSource()}if(defSource){for(i=0;i<self.sheets.length;i++){var sheetSource=self.sheets[i]._getSheetSource();if(sheetSource){sheetSource.shareCalculations(defSource)}}}}if(host){self._setHost(host)}if(spread.features.touch&&!self.touchToolStrip){self.touchToolStrip=new spread.TouchToolStrip(self)}};Spread.prototype._getContainerDiv=function(){var self=this;if(!self._containerDiv&&self._host){self._containerDiv=document.createElement("div");$(self._containerDiv).css({position:'relative',left:0,top:0,width:0,height:0});$(self._host).prepend(self._containerDiv)}return self._containerDiv};Spread.prototype._getDefaultSheetName=function(sheetIndex){var self=this;if(self._availableSheetIndex<self.getSheetCount()){self._availableSheetIndex=self.getSheetCount()}else
{self._availableSheetIndex++}if(sheetIndex===keyword_undefined||sheetIndex===keyword_null||sheetIndex<self._availableSheetIndex){sheetIndex=self._availableSheetIndex}var conflict=false,name;do
{name="Sheet"+(sheetIndex+1);var len=self.sheets.length;if(len>0){for(var i=0;i<len;i++){if(i in self.sheets){var sheet=self.sheets[i];if(sheet._name===name){sheetIndex++;conflict=true;break}else if(conflict){conflict=false}}}}}while(conflict);return name};Spread.prototype._createSheet=function(sheetName){var sheet=new spread.Sheet(sheetName);sheet.calcService=this.calcService;sheet.parent=this;return sheet};Spread.prototype._slSetHost=function(host){var self=this;$(host).data("spread",self);var canvas=document.createElement("canvas");canvas.setAttribute("width",""+host.clientWidth);canvas.setAttribute("height",""+host.clientHeight);host.appendChild(canvas);self.canvas=canvas;canvas.setAttribute('renderMethod','auto');canvas.setAttribute('gcSpreadsheet','true');canvas.setAttribute("onload","$.wijmo.wijspread.util.initPaint(\'"+host.id+"\')");this._resizeHandler=spread.util.createEventHandler(self,self._doResize);$(window).bind("resize.gcSpread",this._resizeHandler)};Spread.prototype._setHost=function(host){var self=this;if(host){var isStandardCanvas=spread.util._isStandardCanvas(),isSilverlightCanvas=spread.util._isSilverlightCanvas();if(!isStandardCanvas&&isSilverlightCanvas){self._slSetHost(host);if(window.slcanvas&&window.slcanvas.autoLoad){window.slcanvas.autoLoad()}return}self._host=host;$(host).data("spread",self);host.setAttribute("gcUIElement","gcSpread");spread.Global.prototype._createDummyObjects();var tmp=[],i,j;for(i=0;i<host.children.length;i++){tmp.push(host.children[i])}host.innerHTML="<table cellspacing=0 cellpadding=0 border=0>"+"<tr><td></td><td></td></tr>"+"<tr><td></td><td></td></tr></table>";var table=host.firstChild;$(host).bind(spread.Events.CultureChanged,self,self._onCultureChanged);$(host).addClass("gc-host-none-user-select");while(tmp.length>0){host.insertBefore(tmp.pop(),table)}self._vp=document.createElement(tag_div);self._vp.id=host.id+"vp";table.rows[0].cells[0].insertBefore(self._vp,keyword_null);var full="100%";table.style.width=full;table.style.height=full;table.style.border=zero;table.style.margin=zero;for(i=0;i<table.rows.length;i++){for(j=0;j<table.rows[i].cells.length;j++){table.rows[i].cells[j].style.padding=zero;table.rows[i].cells[j].style.border=zero}}self._scrollbarV=new $.wijmo.wijspread.Scrollbar(false);var vScrollbar=self._scrollbarV.getScrollbar();table.rows[0].cells[1].insertBefore(vScrollbar,keyword_null);$(vScrollbar).bind(cmd_scroll+ns_scrollbar,function(e,args){var sheet=self.getActiveSheet(),scrollEventType=args.scrollEventType,scrollOrientation=args.scrollOrientation;e.data=self;if(scrollOrientation===1){switch(scrollEventType){case 0:case 1:case 2:case 3:case 5:self._vscrollDelegate(e,args);break;case 4:self._vScrollStop(e);break;default:break}}});$(vScrollbar).bind(e_mousedown+ns_scrollbar,function(e,args){e.data=self;self._vScrollMouseDown(e)});$(vScrollbar).bind(e_mouseup+ns_scrollbar,function(e,args){e.data=self;self._scrollMouseUp(e)});table.rows[1].cells[0].innerHTML="<table cellspacing=0 cellpadding=0 border=0><tr><td></td><td></td></tr></table>";var t1=table.rows[1].cells[0].firstChild;t1.style.border=zero;t1.style.margin=zero;$(t1).css("user-select","none");for(i=0;i<t1.rows.length;i++){for(j=0;j<t1.rows[i].cells.length;j++){t1.rows[i].cells[j].style.padding=zero;t1.rows[i].cells[j].style.border=zero}}self._tabs=document.createElement(tag_div);self._tabs.style.width=""+self._getActualTabStripRatio()*$(self._host).width()+pixel;self._tabs.style.height=""+self._getScrollbarSize()+pixel;self._tabs.style.fontSize="10pt";self._tabs.style.fontFamily="Arial";t1.rows[0].cells[0].insertBefore(self._tabs,keyword_null);self._tab=new _GcTab(host.getAttribute("id")+"_tabStrip");self._tab.setOwner(self);self._tab._setHost(self._tabs);self._scrollbarH=new $.wijmo.wijspread.Scrollbar(true);var hScrollbar=self._scrollbarH.getScrollbar();t1.rows[0].cells[1].insertBefore(hScrollbar,keyword_null);$(hScrollbar).bind(cmd_scroll+ns_scrollbar,function(e,args){var sheet=self.getActiveSheet(),scrollEventType=args.scrollEventType,scrollOrientation=args.scrollOrientation;e.data=self;if(scrollOrientation===0){switch(scrollEventType){case 0:case 1:case 2:case 3:case 5:self._hscrollDelegate(e,args);break;case 4:self._hScrollStop(e);break;default:break}}});$(hScrollbar).bind(e_mousedown+ns_scrollbar,function(e,args){e.data=self;self._hScrollMouseDown(e)});$(hScrollbar).bind(e_mouseup+ns_scrollbar,function(e,args){e.data=self;self._scrollMouseUp(e)});this._resizeHandler=spread.util.createEventHandler(self,self._doWindowResize);$(window).bind(cmd_resize+ns_spread,this._resizeHandler);if(spread.features.comment){self._commentRender=new spread.CommentRender(self._getContainerDiv())}var sheet=self.getActiveSheet();if(sheet){sheet._setHost(self._vp);$(window).unbind('resize.gcSheet')}self._doResize();if(Object.defineProperty){Object.defineProperty(self,'useWijmoTheme',{set:function(newValue){var scrollbarH=self._scrollbarH,scrollbarV=self._scrollbarV;if(scrollbarH){scrollbarH.useWijmoTheme(newValue)}if(scrollbarV){scrollbarV.useWijmoTheme(newValue)}this._useWijmoTheme=newValue},get:function(){return!!this._useWijmoTheme}})}}};Spread.prototype._onCultureChanged=function(e,data){var spreadTmp=e.data;spreadTmp.invalidateLayout();if(spreadTmp.touchToolStrip){spreadTmp.touchToolStrip._updateResource()}for(var i=0,len=spreadTmp.sheets.length;i<len;i++){var sheet=spreadTmp.sheets[i];var rowCount=sheet.getRowCount();var colCount=sheet.getColumnCount();for(var row=0;row<rowCount;row++){for(var col=0;col<colCount;col++){var value=sheet.getValue(row,col);if(value===keyword_null){continue}var style=sheet.getStyle(row,col);if(style){style._setActualAutoFormatter(value)}}}}spreadTmp.repaint()};Spread.prototype._hscrollDelegate=function(e,data){var hostSpread=e.data;var sheet=hostSpread.getActiveSheet();if(sheet&&data){var v=parseInt(data.newValue,10);if(data.oldValue===keyword_undefined||data.oldValue===keyword_null){data.oldValue=0}data.oldValue=parseInt(data.oldValue,10);if(data.scrollEventType===2||data.scrollEventType===0){if(data.scrollEventType===2){v=sheet._getPrevPageLeftColumn()}var newV=sheet._getScrollableColumn(v,true);if(newV!=-1&&newV!=v){v=newV}}else if(data.scrollEventType===3||data.scrollEventType===1){if(data.scrollEventType===3){v=sheet._getPageRightColumn()}var newV=sheet._getScrollableColumn(v);if(newV!=-1&&newV!=v){v=newV}}var firstPageLeftColumn=sheet._getFirstPageLeftColumn();if(v<firstPageLeftColumn){v=firstPageLeftColumn}if(v>sheet._getLastVisualColumn()){v=sheet._getLastVisualColumn()}if(data.newValue!==v){data.newValue=v}if(data.oldValue!==data.newValue){sheet._eventHandler.doHScroll(v);sheet._trigger(spread.Events.LeftColumnChanged,{sheet:sheet,sheetName:sheet._name,oldLeftCol:data.oldValue,newLeftCol:data.newValue})}}};Spread.prototype._hScrollStop=function(e){var hostSpread=e.data;var sheet=hostSpread.getActiveSheet();if(sheet){var scrollbarH=hostSpread._scrollbarH,value=scrollbarH.value();if(value<sheet._getFirstPageLeftColumn()){scrollbarH.value(sheet._getFirstPageLeftColumn())}else if(value>sheet._getLastVisualColumn()){scrollbarH.value(sheet._getLastVisualColumn())}sheet._eventHandler._removeTooltip()}};Spread.prototype._hScrollMouseDown=function(e){var hostSpread=e.data;if(!hostSpread){return}var showScrollTip=hostSpread.showScrollTip();if(showScrollTip===1||showScrollTip===3){var ele=$(e.srcElement?e.srcElement:e.target);var parent=ele.parent();if((ele&&ele.hasClass(cssScrollerHandle))||(parent&&parent.hasClass(cssScrollerHandle))||(ele&&ele.hasClass(cssScrollbar))||(parent&&parent.hasClass(cssScrollbar))){if(ele||parent){var sheet=hostSpread.getActiveSheet(),eventHandler=sheet&&sheet._eventHandler;if(eventHandler){eventHandler._showScrollTooltip(false,e)}}}}};Spread.prototype._vscrollDelegate=function(e,data){var hostSpread=e.data;var sheet=hostSpread.getActiveSheet();if(sheet&&data){var v=parseInt(data.newValue,10);if(data.oldValue===keyword_undefined||data.oldValue===keyword_null){data.oldValue=0}data.oldValue=parseInt(data.oldValue,10);if(data.scrollEventType===2||data.scrollEventType===0){if(data.scrollEventType===2){v=sheet._getPrevPageTopRow()}var newV=sheet._getScrollableRow(v,true);if(newV!=-1&&newV!=v){v=newV}}else if(data.scrollEventType===3||data.scrollEventType===1){if(data.scrollEventType===3){v=sheet._getPageBottomRow()}var newV=sheet._getScrollableRow(v);if(newV!=-1&&newV!=v){v=newV}}var firstPageTopRow=sheet._getFirstPageTopRow();if(v<firstPageTopRow){v=firstPageTopRow}if(v>sheet._getLastVisualRow()){v=sheet._getLastVisualRow()}if(data.newValue!==v){data.newValue=v}if(data.oldValue!==v){sheet._eventHandler.doVScroll(v);sheet._trigger(spread.Events.TopRowChanged,{sheet:sheet,sheetName:sheet._name,oldTopRow:data.oldValue,newTopRow:v})}}};Spread.prototype._initPaint=function(){var isStandardCanvas=spread.util._isStandardCanvas();if(isStandardCanvas){return}var self=this;var sheet=self.getActiveSheet();if(!sheet){return}var control=sheet._getCanvas();if(control&&control.firstChild&&control.firstChild.loaded){self.invalidateLayout();self.repaint()}else
{window.setTimeout(function(){self._initPaint.call(self)},10)}};Spread.prototype._vScrollStop=function(e){var hostSpread=e.data;var sheet=hostSpread.getActiveSheet();if(sheet){var scrollbarV=hostSpread._scrollbarV,value=scrollbarV.value();if(value<sheet._getFirstPageTopRow()){scrollbarV.value(sheet._getFirstPageTopRow())}else if(value>sheet._getLastVisualRow()){scrollbarV.value(sheet._getLastVisualRow())}sheet._eventHandler._removeTooltip()}};Spread.prototype._vScrollMouseDown=function(e){var hostSpread=e.data;if(!hostSpread){return}var showScrollTip=hostSpread.showScrollTip();if(showScrollTip===2||showScrollTip===3){var ele=$(e.srcElement?e.srcElement:e.target);if(ele){var parent=ele.parent();if(ele.hasClass(cssScrollerHandle)||(parent&&parent.hasClass(cssScrollerHandle))||ele.hasClass(cssScrollbar)||(parent&&parent.hasClass(cssScrollbar))){var sheet=hostSpread.getActiveSheet(),eventHandler=sheet&&sheet._eventHandler;if(eventHandler){eventHandler._showScrollTooltip(true,e)}}}}};Spread.prototype._scrollMouseUp=function(e){var hostSpread=e.data;if(!hostSpread){return}var sheet=hostSpread.getActiveSheet(),eventHandler=sheet&&sheet._eventHandler;if(eventHandler){eventHandler._removeTooltip()}};Spread.prototype._dispose=function(){var self=this;$(window).unbind(cmd_resize+ns_spread,this._resizeHandler);if(self._scrollbarH){self._scrollbarH.dispose()}if(self._scrollbarV){self._scrollbarV.dispose()}if(self._touchEventProvider){self._touchEventProvider.dispose()}self._disposeUserEvents();var sheet=self.getActiveSheet();if(sheet){sheet._dispose()}if(self._host){self._host.innerHTML="";self._host.removeAttribute("gcUIElement");var $host=$(self._host);$host.unbind(spread.Events.CultureChanged);$host.removeClass("gc-host-none-user-select");if(!$host.attr("class")){$host.removeAttr("class")}}if(self.touchToolStrip){self.touchToolStrip._dispose();self.touchToolStrip=keyword_null}if(self._commentRender){self._commentRender=keyword_null}};Spread.prototype._disposeUserEvents=function(){$(this._userEventsElem).unbind(ns_spread);for(var i=0;i<this.sheets.length;i++){var sheet=this.sheets[i];sheet._disposeUserEvents()}};Spread.prototype._getCalcContexts=function(){var t=[];for(var i=0;i<this.sheets.length;i++){var e=this.sheets[i];var ct=e._getCalcContexts();if(ct){while(ct.length>0){t.push(ct.pop())}}}return t};Spread.prototype._doWindowResize=function(){var self=this;if(self._windowResizeTimer){window.clearTimeout(self._windowResizeTimer)}self._windowResizeTimer=window.setTimeout(function(){self._doResize();self._windowResizeTimer=keyword_null},100)};Spread.prototype._doResize=function(){var self=this;if($.browser.msie&&(parseInt($.browser.version,10)<9)){var canvas=self.canvas;if(canvas){var ssContainer=canvas.parentElement;var spContainer=ssContainer.parentElement;var control=canvas.firstChild;if(control&&spContainer){var isAutoSize=function(w){return w===""||w==="auto"||/%$/ig.test(w)};if(isAutoSize(ssContainer.style.width)&&spContainer.offsetWidth>12){control.width=spContainer.offsetWidth-12}if(isAutoSize(ssContainer.style.height&&spContainer.offsetHeight>10)){control.height=spContainer.offsetHeight-10}}}}var scrollbarSize=self._getScrollbarSize();var host=self._host;if(!host){return}var $host=$(host),w=$host.width(),h=$(host).height();if(self.showVerticalScrollbar()){self._vp.style.width=""+(w-scrollbarSize)+pixel}else
{self._vp.style.width=""+w+pixel}if(self.showHorizontalScrollbar()||self._tabStripVisible){self._vp.style.height=""+(h-scrollbarSize)+pixel}else
{self._vp.style.height=""+h+pixel}var availableWidth=$(self._vp).width();var tabStripWidth=self._getActualTabStripRatio()*availableWidth;self._tabs.style.width=""+(tabStripWidth-1)+pixel;self._tabs.style.height=""+scrollbarSize+pixel;self._scrollbarV.width(scrollbarSize);self._scrollbarV.height($(self._vp).height());var hsWidth=w-(self._tabStripVisible?tabStripWidth:0)-(self.showVerticalScrollbar()?scrollbarSize:0);self._scrollbarH.width(hsWidth>0?hsWidth:1);self._scrollbarH.height(scrollbarSize);var sheet=self.getActiveSheet();if(sheet){if(sheet._scrollTopRow===0){sheet._scrollTopRow=sheet._getFirstPageTopRow()}if(sheet._scrollLeftCol===0){sheet._scrollLeftCol=sheet._getFirstPageLeftColumn()}}if(sheet){sheet._eventHandler.doResize()}self._resizeScrollBar();if(self._tabStripVisible===true){$(self._tabs).show()}else
{$(self._tabs).hide()}self._tab.doResize();var fixWidth=$host.width();if(w!==fixWidth&&!self._haveLayoutFixing){self._haveLayoutFixing=true;setTimeout(function(){delete self._haveLayoutFixing;self._doResize()},1)}};Spread.prototype._resizeScrollBar=function(){var sheet=this.getActiveSheet();if(!sheet){return}var columnCount=sheet.getColumnCount()-sheet._frozenTrailingColCount-sheet.frozenColCount,rowCount=sheet.getRowCount()-sheet._frozenTrailingRowCount-sheet.frozenRowCount,sheetHeight=1,sheetWidth=1,startColumn=sheet.frozenColCount,startRow=sheet.frozenRowCount,layout=sheet._getSheetLayout();for(var row=startRow;row<startRow+rowCount;row++){sheetHeight+=sheet.getRowHeight(row)}for(var col=startColumn;col<startColumn+columnCount;col++){sheetWidth+=sheet.getColumnWidth(col)}var screenWidth=layout.width-layout.rowHeaderWidth-layout.frozenWidth-layout.frozenTrailingWidth,screenHeight=layout.height-layout.colHeaderHeight-layout.frozenHeight-layout.frozenTrailingHeight,scrollbarH=this._scrollbarH,scrollbarV=this._scrollbarV,pageValueH=Math_round(columnCount*screenWidth/sheetWidth),pageValueV=Math_round(rowCount*screenHeight/sheetHeight);if(pageValueH<0){pageValueH=1}if(pageValueV<0){pageValueV=1}if(scrollbarH){scrollbarH.minimum(sheet.frozenColCount);scrollbarH.maximum(sheet.frozenColCount+columnCount-1);scrollbarH.pageValue(pageValueH);scrollbarH.refreshLayout();scrollbarH.value(sheet._scrollLeftCol)}if(scrollbarV){scrollbarV.minimum(sheet.frozenRowCount);scrollbarV.maximum(sheet.frozenRowCount+rowCount-1);scrollbarV.pageValue(pageValueV);scrollbarV.refreshLayout();scrollbarV.value(sheet._scrollTopRow)}};Spread.prototype._doTabHSResize=function(){var self=this;var scrollbarSize=self._getScrollbarSize();var host=self._host;if(!host){return}var $host=$(host),w=$host.width();var availableWidth=$(self._vp).width();var tabStripWidth=self._getActualTabStripRatio()*availableWidth;self._tabs.style.width=""+(tabStripWidth-1)+pixel;self._tabs.style.height=""+scrollbarSize+pixel;var hsWidth=w-(self._tabStripVisible?tabStripWidth:0)-(self.showVerticalScrollbar()?scrollbarSize:0);self._scrollbarH.width(hsWidth>0?hsWidth:1);self._scrollbarH.height(scrollbarSize);self._scrollbarH.refreshLayout();var sheet=self.getActiveSheet();if(sheet){if(sheet._scrollLeftCol===0){sheet._scrollLeftCol=sheet._getFirstPageLeftColumn()}self._scrollbarH.value(sheet._scrollLeftCol)}if(self._tabStripVisible===true){$(self._tabs).show()}else
{$(self._tabs).hide()}self._tab.doResize()};Spread.prototype._trigger=function(type,data){if(this._eventSuspended===0){$(this._userEventsElem).trigger(type,[data])}};Spread.prototype._copyUserEvents=function(sheet){sheet._eventHandler._eventSuspended=this._eventSuspended;for(var e=0;e<this._userEvents.length;e++){var item=this._userEvents[e];sheet.bind(item.type,item.data,item.fn)}};Spread.prototype._suspendInvalidate=function(){var sheet=this.getActiveSheet();if(sheet){sheet._suspendInvalidate()}};Spread.prototype._resumeInvalidate=function(){var sheet=this.getActiveSheet();if(sheet){return sheet._resumeInvalidate()}return false};Spread.prototype._paintSpreadBackgroundImage=function(){var self=this;var sheet=self.getActiveSheet();if(sheet){if(!self._backgroundImage){return}var canvas=$(sheet._getCanvas());canvas.css("background-image","url('"+self._backgroundImage+"')").css("background-repeat","no-repeat");if(self._backgroundImageLayout===keyword_null||self._backgroundImageLayout===keyword_undefined){return}var imgSrc=self._backgroundImage;if(!self._imageLoader){self._imageLoader=new spread._GcImageLoader(function(){self._paintSpreadBackgroundImage()})}try
{if(self._imageLoader.getState(imgSrc)){var img=self._imageLoader.getImage(imgSrc),contentWidth=canvas.width(),contentHeight=canvas.height();spread.util._applyBackgroundImageLayout(sheet._getCanvas(),contentWidth,contentHeight,img.width,img.height,self._backgroundImageLayout)}else
{self._imageLoader.addImage(imgSrc)}}catch(ex){}}};Spread.prototype.showVerticalScrollbar=function(value){var self=this;if(arguments.length===0){return self._showVerticalScrollbar}if(self._showVerticalScrollbar!==value){self._showVerticalScrollbar=value;if(value){$(self._scrollbarV.getScrollbar()).show()}else
{$(self._scrollbarV.getScrollbar()).hide()}self._doResize()}return self};Spread.prototype.showHorizontalScrollbar=function(value){var self=this;if(arguments.length===0){return self._showHorizontalScrollbar}if(self._showHorizontalScrollbar!==value){self._showHorizontalScrollbar=value;if(value){$(self._scrollbarH.getScrollbar()).show();self.setTabStripRatio(self.getTabStripRatio())}else
{$(self._scrollbarH.getScrollbar()).hide();self._setActualTabStripRatio(1)}self._doResize()}return self};Spread.prototype.allowUserZoom=function(value){if(arguments.length===0){return this._allowUserZoom}this._allowUserZoom=value;return this};Spread.prototype.allowSheetReorder=function(value){if(arguments.length===0){return this._allowSheetReorder}this._allowSheetReorder=value;return this};Spread.prototype.allowUserResize=function(value){if(arguments.length===0){return this._allowUserResize}this._allowUserResize=value;return this};Spread.prototype.tabStripVisible=function(value){var self=this;if(arguments.length===0){return self._tabStripVisible}if(self._tabStripVisible!==value){self._tabStripVisible=value;self._doResize()}return self};Spread.prototype.tabEditable=function(value){if(arguments.length===0){return this._tabEditable}this._tabEditable=value;return this};Spread.prototype.newTabVisible=function(value){var self=this;if(arguments.length===0){return self._newTabVisible}if(self._newTabVisible!==value){self._newTabVisible=value;self._doTabHSResize()}return self};Spread.prototype.cutCopyIndicatorVisible=function(value){var self=this;if(arguments.length===0){return self._cutCopyIndicatorVisible}if(self._cutCopyIndicatorVisible===value){return self}var sheet=self.getActiveSheet();if(sheet){return sheet._bindToAutoRefresh(function(value){self._cutCopyIndicatorVisible=value;return self})(value)}else
{self._cutCopyIndicatorVisible=value;return self}};Spread.prototype.cutCopyIndicatorBorderColor=function(value){var self=this;if(arguments.length===0){return self._cutCopyIndicatorBorderColor}if(self._cutCopyIndicatorBorderColor===value){return self}var sheet=self.getActiveSheet();if(sheet){return sheet._bindToAutoRefresh(function(value){self._cutCopyIndicatorBorderColor=value;return self})(value)}else
{self._cutCopyIndicatorBorderColor=value;return self}};Spread.prototype.canUserEditFormula=function(value){if(arguments.length===0){return spread.util.hasCalc()&&this._canUserEditFormula}this._canUserEditFormula=value;return this};Spread.prototype.autoFitType=function(value){if(arguments.length===0){return this._autoFitType}this._autoFitType=value;return this};Spread.prototype.startSheetIndex=function(value){var self=this;if(arguments.length===0){return(self._tab)?self._firstTabUserSet:0}if(self._tab&&0<=value&&value<self.getSheetCount()){self._firstTabUserSet=value;if(self.sheets[value].visible()){self._tab._firstTab=value}else
{var actualFirstTab=self._tab._getNextVisibleIndex(value);if(actualFirstTab!==-1){self._tab._firstTab=actualFirstTab}}}self._doTabHSResize();return self};Spread.prototype.highlightInvalidData=function(value){if(arguments.length===0){return this._highlightInvalidData}var self=this;var sheet=this.getActiveSheet();if(sheet){return sheet._bindToAutoRefresh(function(value){self._highlightInvalidData=value;return self})(value)}else
{self._highlightInvalidData=value}};Spread.prototype.isPaintSuspended=function(value){var self=this;if(arguments.length===0){return self._paintSuspended}else
{if(self._paintSuspended!==value){self._paintSuspended=value;for(var i=0;i<self.sheets.length;i++){self.sheets[i].isPaintSuspended(value)}if(self._tab){self._tab.isPaintSuspended(value)}}return self}};Spread.prototype.repaint=function(){var self=this;if(self._tab){self._tab.repaint()}if(self.touchToolStrip){self.touchToolStrip.repaint()}var sheet=self.getActiveSheet();if(sheet){sheet.repaint()}};Spread.prototype.invalidateLayout=function(){var sheet=this.getActiveSheet();if(sheet){sheet.invalidateLayout()}};Spread.prototype.getActiveSheet=function(){if(this.sheets.length>0){return this.sheets[this._activeSheetIndex]}else
{return keyword_null}};Spread.prototype.setActiveSheet=function(name){var sheets=this.sheets;for(var i=0;i<sheets.length;i++){if(sheets[i].getName()===name){this.setActiveSheetIndex(i)}}};Spread.prototype.getActiveSheetIndex=function(){return this._activeSheetIndex};Spread.prototype.setActiveSheetIndex=function(value){if(typeof value!=="number"){return}var self=this;if(value===self._activeSheetIndex){return}var newSheet=self.sheets[value];if(!(newSheet&&newSheet.visible())){return}var sheet=self.getActiveSheet();self._activeSheetIndex=value;if(newSheet!==sheet){if(sheet){sheet._dispose()}self._setActiveSheetImp(newSheet)}self._doResize()};Spread.prototype.addNamedStyle=function(style){this._addNamedStyleImp(style,true)};Spread.prototype._addNamedStyleImp=function(style,refresh){var self=this;if(style!==keyword_null&&style!==keyword_undefined){if(style.name===keyword_null||style.name===keyword_undefined||style.name===''){throw new Error(spread.SR.Exp_EmptyNamedStyle);}if(refresh){var name=style.name.toUpperCase();var sheet=self.getActiveSheet();if(sheet){sheet._bindToAutoRefresh(function(style){self._namedStyles[name]=style})(style)}else
{self._namedStyles[name]=style}}else
{var name=style.name.toUpperCase();self._namedStyles[name]=style}}};Spread.prototype.getNamedStyle=function(name){var namedStyles=this._namedStyles;if(namedStyles&&name){name=name.toUpperCase();return(namedStyles[name]||keyword_null)}return keyword_null};Spread.prototype.removeNamedStyle=function(name){var namedStyles=this._namedStyles;if(namedStyles&&name){name=name.toUpperCase();if(namedStyles.hasOwnProperty(name)){delete namedStyles[name];var sheet=this.getActiveSheet();if(sheet){sheet.invalidate()}}}};Spread.prototype.getNamedStyles=function(){var namedStylesClone=[],namedStyles=this._namedStyles;if(namedStyles){$.each(namedStyles,function(index,item){namedStylesClone.push(item)})}return namedStylesClone};Spread.prototype._setActiveSheetImp=function(sheet){sheet._setHost(this._vp);window.gcGlobal.activeElement=keyword_null;if(!this._suspendSetFocus){sheet.setFocus()}sheet._syncHScollbarPosition();sheet._syncVScrollbarPosition()};Spread.prototype.addSheet=function(index,sheet){var self=this;if(!sheet){sheet=self._createSheet(self._getDefaultSheetName(index))}if(!sheet._name){sheet._name=self._getDefaultSheetName(index)}var i,length=self.sheets.length;for(i=0;i<length;i++){if(self.sheets[i]._name===sheet._name){throw spread.SR.Exp_NotSupport;}}self._copyUserEvents(sheet);var defSheetSource=keyword_null;if(self.sheets.length>0){for(i=0;!defSheetSource&&i<self.sheets.length;i++){defSheetSource=self.sheets[i]._getSheetSource()}}var oldActiveSheet=self.getActiveSheet();var oldActiveSheetIndex=self._activeSheetIndex;var p=self.sheets.length-index;var tmp=[];for(i=0;i<p&&self.sheets.length>0;i++){tmp.push(self.sheets.pop())}var oldIsPaintSuspended=self.isPaintSuspended();if(sheet._paintSuspended!==oldIsPaintSuspended){sheet._paintSuspended=oldIsPaintSuspended}self.sheets.push(sheet);sheet.parent=self;sheet.calcService=self.calcService;sheet.updateCalcContexts();if(defSheetSource){var sheetSource=sheet._getSheetSource();if(sheetSource){sheetSource.shareCalculations(defSheetSource)}}while(tmp.length>0){self.sheets.push(tmp.pop())}if(self.sheets.length===1){if(self._vp){sheet._setHost(self._vp)}self._activeSheetIndex=0}else
{self._activeSheetIndex=oldActiveSheetIndex}var newActiveSheet=self.getActiveSheet();if(newActiveSheet!==oldActiveSheet){if(oldActiveSheet){oldActiveSheet._dispose()}if(newActiveSheet){self._setActiveSheetImp(newActiveSheet)}self._doResize()}if(self._tab){self._tab.repaint()}};Spread.prototype.removeSheet=function(index){var self=this;if(isNaN(index)||index<0||index>=self.sheets.length){throw new Error(spread.SR.Exp_IndexOutOfRange);}var activeSheetChanged=index<=self._activeSheetIndex||index===self.sheets.length-1;var oldActiveSheet=self.getActiveSheet();if(index<self._activeSheetIndex){self._activeSheetIndex--}var removedSheet=self.sheets[index];removedSheet._disposeUserEvents();self.sheets.splice(index,1);var sheets=self.sheets;var sheetCounts=sheets.length;if(sheetCounts===0){self._activeSheetIndex=-1}else
{if(self._activeSheetIndex>=sheetCounts){self._activeSheetIndex=self._tab._getPreVisibleIndex(sheetCounts)}else
{for(var i=self._activeSheetIndex;i<sheetCounts;i++){if(sheets[i]._visible){self._activeSheetIndex=i;break}}if(i>=sheetCounts){self._activeSheetIndex=-1}}}if(activeSheetChanged){var newSheet=self.sheets[self._activeSheetIndex];if(oldActiveSheet!==newSheet){if(oldActiveSheet){oldActiveSheet._dispose()}if(newSheet){self._setActiveSheetImp(newSheet)}}}if(self.calcService){self.calcService.contextChanged()}if(self._tab){var length=self.sheets.length;if(self._tab._firstTab>=length){self.startSheetIndex(self._tab._getPreVisibleIndex(length))}else if(self._tab._firstTab<0){self.startSheetIndex(0)}else
{self._doResize()}}};Spread.prototype.clearSheets=function(){var self=this,sheets=self.sheets;var oldSheet=self.getActiveSheet();for(var i=0;i<sheets.length;i++){sheets[i]._disposeUserEvents();sheets[i]._dispose()}sheets.splice(0,sheets.length);if(self.calcService){self.calcService.contextChanged()}self._activeSheetIndex=-1;if(self._tab){self._tab._firstTab=0;self._tab.repaint()}};Spread.prototype.getSheet=function(index){if(index>=0&&index<this.sheets.length){return this.sheets[index]}else
{return keyword_null}};Spread.prototype.getSheetFromName=function(name){var sheets=this.sheets;for(var i=0;i<sheets.length;i++){if(sheets[i].getName()===name){return sheets[i]}}return keyword_null};Spread.prototype.getSheetIndex=function(name){var sheets=this.sheets;for(var i=0;i<sheets.length;i++){if(sheets[i].getName()===name){return i}}return keyword_null};Spread.prototype.getSheetCount=function(){return this.sheets.length};Spread.prototype.setSheetCount=function(count){var self=this;if(count<0){throw spread.SR.Exp_ArgumentOutOfRange;}else if(count===0){self.clearSheets()}var length=self.sheets.length,i;if(count<length){for(i=length-1;i>=count;i--){self.removeSheet(i)}}else if(count>length){for(i=length;i<count;i++){self.addSheet(i)}}};Spread.prototype.search=function(searchCondition){if(!searchCondition||!spread.features.search){return keyword_null}var self=this;var SearchFoundFlags_None=0;if(!searchCondition.searchString||searchCondition.searchTarget===SearchFoundFlags_None||self.getSheetCount()<=0){return new spread.SearchResult}if(searchCondition.startSheetIndex===-1){searchCondition.startSheetIndex=0}if(searchCondition.endSheetIndex===-1){searchCondition.endSheetIndex=self.getSheetCount()-1}if(searchCondition.endSheetIndex>=searchCondition.startSheetIndex&&0<=searchCondition.startSheetIndex&&searchCondition.startSheetIndex<self.getSheetCount()&&0<=searchCondition.endSheetIndex&&searchCondition.endSheetIndex<self.getSheetCount()){for(var sheetIndex=searchCondition.startSheetIndex;sheetIndex<=searchCondition.endSheetIndex;sheetIndex++){var sheet=self.getSheet(sheetIndex);var searchResult=sheet.search(searchCondition);if(searchResult&&searchResult.searchFoundFlag!==SearchFoundFlags_None){searchResult.foundSheetIndex=sheetIndex;return searchResult}}}return new spread.SearchResult};Spread.prototype.showCell=function(row,col,verticalPosition,horizontalPosition){var sheet=this.getActiveSheet();if(sheet){sheet.showCell(row,col,verticalPosition,horizontalPosition)}};Spread.prototype.showColumn=function(col,horizontalPosition){var sheet=this.getActiveSheet();if(sheet){sheet.showColumn(col,horizontalPosition)}};Spread.prototype.showRow=function(row,verticalPosition){var sheet=this.getActiveSheet();if(sheet){sheet.showRow(row,verticalPosition)}};Spread.prototype.showActiveCell=function(verticalPosition,horizontalPosition){var sheet=this.getActiveSheet();if(sheet){sheet.showCell(sheet._activeRowIndex,sheet._activeColIndex,verticalPosition,horizontalPosition)}};Spread.prototype.getCustomName=function(name){return this._names?this._names[name]:keyword_null};Spread.prototype.getCustomNames=function(){var result=[];if(this._names){$.each(this._names,function(p,v){result.push(v)})}return result};Spread.prototype.addCustomName=function(name,formula,baseRow,baseCol){if(name===keyword_undefined||name===keyword_null||name===''||formula===keyword_undefined||formula===keyword_null||formula===''){throw new Error(spread.SR.Exp_InvalidCustomName);}var self=this;if(!self._names){self._names={}}if(self.calcService){var expr=self.calcService.parse(formula,baseRow,baseCol);self._names[name]=new spread.NameInfo(name,expr,baseRow,baseCol);self._recalcAll()}};Spread.prototype.removeCustomName=function(name){var self=this;if(self._names&&name!==keyword_undefined&&name!==keyword_null&&name!==''&&self._names.hasOwnProperty(name)){delete self._names[name];self._recalcAll()}};Spread.prototype.clearCustomNames=function(){if(this._names){delete this._names;this._recalcAll()}};Spread.prototype._findCustomName=function(name){if(name===keyword_undefined||name===keyword_null||name===''){return keyword_null}var fn=this.getCustomName(name);return fn};Spread.prototype.addCustomFunction=function(fn){if(!spread.util.hasCalc()){return}if(fn===keyword_undefined||fn===keyword_null||!(fn instanceof spread.Calc.Functions.Function)){throw new Error(spread.SR.Exp_InvalidCustomFunction);}var self=this;var fnName=fn.name.toUpperCase();if(!self._functions){self._functions=[]}self._functions[fnName]=fn;self._recalcAll()};Spread.prototype.getCustomFunction=function(name){if(this._functions&&name!==keyword_undefined&&name!==keyword_null&&name!==''){return this._functions[name.toUpperCase()]}return keyword_null};Spread.prototype.removeCustomFunction=function(name){var self=this;if(self._functions&&name!==keyword_undefined&&name!==keyword_null&&name!==''){name=name.toUpperCase();if(self._functions.hasOwnProperty(name)){delete self._functions[name];self._recalcAll()}}};Spread.prototype.clearCustomFunctions=function(){if(this._functions){this._functions=keyword_null;this._recalcAll()}};Spread.prototype._recalcAll=function(){if(this.calcService&&!this.calcService.IsSuspended()){this.calcService.recalculateAll()}};Spread.prototype.addCustomFunctionDescription=function(fnd){if(!fnd||!fnd.name||this.getCustomFunctionDescription(fnd.name)){return}var fnds=this._functionDescriptions;if(!fnds){fnds=this._functionDescriptions=[]}fnds.push(fnd)};Spread.prototype.getCustomFunctionDescription=function(name){var fnds=this._functionDescriptions;if(fnds&&name){name=name.toUpperCase();var count=fnds.length,fnd;for(var i=0;i<count;i++){fnd=fnds[i];if(fnd.name&&fnd.name.toUpperCase()===name){return fnd}}}return keyword_null};Spread.prototype.removeCustomFunctionDescription=function(name){var fnds=this._functionDescriptions;if(!fnds||!name){return}name=name.toUpperCase();var count=fnds.length,fnd;for(var i=0;i<count;i++){fnd=fnds[i];if(fnd.name&&fnd.name.toUpperCase()===name){fnds.splice(i,1);break}}};Spread.prototype.clearCustomFunctionDescriptions=function(){if(this._functionDescriptions){this._functionDescriptions=keyword_null}};Spread.prototype.referenceStyle=function(value){var self=this;var R1C1=1,A1=0;if(arguments.length===0){if(self.calcService){return self.calcService.useR1C1?R1C1:A1}else
{return A1}}if(self.calcService){self.calcService.useR1C1=(value===R1C1)}return self};Spread.prototype.bind=function(type,data,fn){var self=this;self._userEvents.push({type:type,data:data,fn:fn});$(self._userEventsElem).bind(type+ns_spread,data,fn);for(var i=0;i<self.sheets.length;i++){var sheet=self.sheets[i];sheet.bind(type,data,fn)}};Spread.prototype.unbind=function(type,fn){var self=this;for(var e=0;e<self._userEvents.length;e++){var item=self._userEvents[e];if(item.type===type){self._userEvents.splice(e,1)}}$(self._userEventsElem).unbind(type+ns_spread,fn);for(var i=0;i<self.sheets.length;i++){var sheet=self.sheets[i];sheet.unbind(type,fn)}};Spread.prototype.unbindAll=function(){var self=this;self._userEvents.length=0;$(self._userEventsElem).unbind(ns_spread);for(var i=0;i<self.sheets.length;i++){var sheet=self.sheets[i];sheet.unbindAll()}};Spread.prototype.suspendEvent=function(){this._eventSuspended++;for(var i=0;i<this.sheets.length;i++){var sheet=this.sheets[i];sheet.suspendEvent()}};Spread.prototype.resumeEvent=function(){var self=this;self._eventSuspended--;if(self._eventSuspended<0){self._eventSuspended=0}for(var i=0;i<self.sheets.length;i++){var sheet=self.sheets[i];sheet.resumeEvent()}};Spread.prototype.saveData=function(){var self=this;if(!self._host){return}var id=self._host.id;var dataField=document.getElementById(id+data_postfix);if(dataField===keyword_undefined||dataField===keyword_null){return}var sheetCount=self.getSheetCount();var t=[];var sdata={activeSheetIndex:self.getActiveSheetIndex(),sheetCount:sheetCount,tabStripRatio:self.getTabStripRatio(),tabStripVisible:self._tabStripVisible,tabEditable:self._tabEditable,newTabVisible:self._newTabVisible,allowCellOverflow:self.getActiveSheet()?self.getActiveSheet()._allowCellOverflow:false,theme:self.getActiveSheet().currentTheme().name()};t.push(JSON.stringify(sdata));for(var i=0;i<sheetCount;i++){var sheet=self.getSheet(i);var deletedRowsString="";if(sheet.deletedRows){deletedRowsString=JSON.stringify(sheet.deletedRows)}var rInfos={};for(var j in sheet._rowInfos){if(typeof(j)!=="function"){var rx=sheet._rowInfos[j];if(rx&&rx.dirty){rInfos[j]=rx}}}var cInfos={};for(j in sheet._colInfos){if(typeof(j)!=="function"){var cx=sheet._colInfos[j];if(cx&&cx.dirty){cInfos[j]=cx}}}var state={name:sheet._name,ar:sheet._activeRowIndex,ac:sheet._activeColIndex,columns:cInfos,rows:rInfos,rowCount:sheet.getRowCount(),columnCount:sheet.getColumnCount(),data:sheet._dataModel.dirtyNodes,deletedRows:deletedRowsString,spans:sheet._getSpanModel(),rowHeaderAutoText:sheet.rowHeaderAutoText,colHeaderAutoText:sheet.colHeaderAutoText,referenceStyle:sheet.referenceStyle(),gridline:sheet.gridline,frozenRowCount:sheet.frozenRowCount,frozenColCount:sheet.frozenColCount,frozenTrailingRowCount:sheet._frozenTrailingRowCount,frozenTrailingColCount:sheet._frozenTrailingColCount};t.push(JSON.stringify(state))}dataField.value=JSON.stringify(t)};Spread.prototype.doCommand=function(action){this._undoManager.doAction(action)};Spread.prototype.allowUndo=function(value){var self=this;if(arguments.length===0){return self._allowUndo}self._allowUndo=value;if(self._undoManager){self._undoManager._allowUndo=value}return self};Spread.prototype.undoManager=function(){var self=this;if(!self._undoManager){self._undoManager=new spread._UndoManager(self,-1,self.allowUndo())}return self._undoManager};Spread.prototype.canUserDragDrop=function(value){if(arguments.length===0){return this._allowDragDrop}else
{this._allowDragDrop=value;return this}};Spread.prototype.canUserDragFill=function(value){var self=this;if(arguments.length===0){if(!spread.features.fill){return false}return self._allowDragFill}else
{if(self._allowDragFill!==value){self._allowDragFill=value;var sheet=self.getActiveSheet();if(sheet){if(sheet.getSelections().length===1){sheet._render.repaintSelection(sheet.getSelections().toArray()[0])}}}return self}};Spread.prototype.toJSON=function(){var self=this;var sheetCount=self.getSheetCount();var dataDic={activeSheetIndex:self.getActiveSheetIndex(),sheetCount:sheetCount,tabStripRatio:self.getTabStripRatio(),tabStripVisible:self._tabStripVisible,tabEditable:self._tabEditable,newTabVisible:self._newTabVisible,referenceStyle:self.referenceStyle(),useWijmoTheme:self.useWijmoTheme,canUserEditFormula:self._canUserEditFormula,startSheetIndex:self.startSheetIndex(),allowUndo:self._allowUndo,allowUserZoom:self._allowUserZoom,allowUserResize:self._allowUserResize,allowDragDrop:self._allowDragDrop,allowDragFill:self._allowDragFill,allowSheetReorder:self._allowSheetReorder,highlightInvalidData:self._highlightInvalidData,autoFitType:self._autoFitType,showScrollTip:self._showScrollTip,showResizeTip:self._showResizeTip,showDragDropTip:self._showDragDropTip,showDragFillTip:self._showDragFillTip,showHorizontalScrollbar:self._showHorizontalScrollbar,showVerticalScrollbar:self._showVerticalScrollbar,backColor:self._backColor,backgroundImage:self._backgroundImage,backgroundImageLayout:self._backgroundImageLayout,grayAreaBackColor:self._grayAreaBackColor,cutCopyIndicatorVisible:self._cutCopyIndicatorVisible,cutCopyIndicatorBorderColor:self._cutCopyIndicatorBorderColor,useTouchLayout:self._useTouchLayout};var sdata={version:"2.0"};for(var item in dataDic){var value=dataDic[item];if(!self._isDefaultValue(item,value)){sdata[item]=value}}var sheets={};for(var i=0;i<sheetCount;i++){var sheet=self.getSheet(i);sheets[sheet._name]=sheet.toJSON()}if(!$.isEmptyObject(sheets)){sdata["sheets"]=sheets}var namedStyles=[];if(self._namedStyles){for(var item in self._namedStyles){namedStyles.push(self._namedStyles[item])}}if(namedStyles.length>0){sdata["namedStyles"]=namedStyles}var names=[];if(self._names&&self.calcService){for(var n in self._names){if(self._names.hasOwnProperty(n)){var ni=self._names[n];var name=ni.getName(),row=ni.getRow(),col=ni.getColumn(),expr=ni.getExpression();var f=self.calcService.unparse(expr,row,col);names.push({name:name,formula:f,row:row,col:col})}}}if(names.length>0){sdata["names"]=names}return sdata};Spread.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"activeSheetIndex":return value===this._defaultActiveSheetIndex;case"sheetCount":return value===this._defaultSheetCount;case"tabStripRatio":return value===0.5;case"tabStripVisible":return value===true;case"tabEditable":return value===true;case"newTabVisible":return value===true;case"referenceStyle":return value===0;case"useWijmoTheme":return value===false;case"canUserEditFormula":return value===true;case"startSheetIndex":return value===0;case"allowUndo":return value===true;case"allowUserZoom":return value===true;case"allowUserResize":return value===true;case"allowDragDrop":return value===true;case"allowDragFill":return value===true;case"allowSheetReorder":return value===true;case"highlightInvalidData":return value===false;case"autoFitType":return value===0;case"showScrollTip":return value===0;case"showResizeTip":return value===0;case"showDragDropTip":return value===true;case"showDragFillTip":return value===true;case"showHorizontalScrollbar":return value===true;case"showVerticalScrollbar":return value===true;case"backColor":return value==="white";case"backgroundImage":return value===keyword_null;case"backgroundImageLayout":return value===0;case"grayAreaBackColor":return value==="gray";case"cutCopyIndicatorVisible":return value===true;case"cutCopyIndicatorBorderColor":return value==="#217346";case"useTouchLayout":return value===false;default:return}};Spread.prototype.fromJSON=function(spreadData){if(!spreadData){return}var self=this;self._suspendSetFocus=true;var oldState=self.isPaintSuspended();self.isPaintSuspended(true);self.suspendEvent();try
{if(spread.util.hasCalc()){self.calcService=new spread.Calc.Service(self)}self._availableSheetIndex=-1;self.clearSheets();var sheetCount=spreadData.sheetCount;if(typeof sheetCount===const_undefined){sheetCount=self._defaultSheetCount}self.setSheetCount(sheetCount);if(spreadData.referenceStyle!==keyword_null&&spreadData.referenceStyle!==keyword_undefined){self.referenceStyle(spreadData.referenceStyle)}self._namedStyles={};if(spreadData.namedStyles){for(var i=0;i<spreadData.namedStyles.length;i++){var item=spreadData.namedStyles[i];var style=new spread.Style;style.copyFrom(item);if(typeof(item.validator)!==const_undefined){var dv;if(spread.features.dataValidator){dv=new wijmo.spread.DefaultDataValidator;dv.fromJSON(item.validator)}style.validator=dv}self._addNamedStyleImp(style,false)}}var i=0,sheet,sheets=spreadData.sheets;if(sheets){for(var s in sheets){if(typeof(s)==="string"){var sheetData=sheets[s];var index=sheetData.index!==keyword_undefined?sheetData.index:sheetData._index;if(index!=keyword_undefined){sheet=self.sheets[index]}else
{sheet=self.sheets[i]}sheet.fromJSON(sheetData,false);i++}}}var activeSheetIndex=spreadData.activeSheetIndex;if(typeof activeSheetIndex===const_undefined){activeSheetIndex=self._defaultActiveSheetIndex}self.setActiveSheetIndex(activeSheetIndex);if(typeof spreadData.tabStripRatio!==const_undefined){self.setTabStripRatio(spreadData.tabStripRatio)}if(typeof spreadData.tabStripVisible!==const_undefined){self._tabStripVisible=spreadData.tabStripVisible}if(typeof spreadData.tabEditable!==const_undefined){self._tabEditable=spreadData.tabEditable}if(typeof spreadData.newTabVisible!==const_undefined){self._newTabVisible=spreadData.newTabVisible}self.gcSpreadsheet=spreadData.gcSpreadsheet;if(typeof(spreadData.useWijmoTheme)!==const_undefined){self.useWijmoTheme=spreadData.useWijmoTheme}if(typeof spreadData.canUserEditFormula!==const_undefined){self._canUserEditFormula=spreadData.canUserEditFormula}if(typeof spreadData.startSheetIndex!==const_undefined){self.startSheetIndex(spreadData.startSheetIndex)}if(typeof spreadData.allowUndo!==const_undefined){self.allowUndo(spreadData.allowUndo)}if(typeof spreadData.allowUserZoom!==const_undefined){self._allowUserZoom=spreadData.allowUserZoom}if(typeof spreadData.allowUserResize!==const_undefined){self._allowUserResize=spreadData.allowUserResize}if(typeof spreadData.allowDragDrop!==const_undefined){self._allowDragDrop=spreadData.allowDragDrop}if(typeof spreadData.allowDragFill!==const_undefined){self._allowDragFill=spreadData.allowDragFill}if(typeof spreadData.allowSheetReorder!==const_undefined){self._allowSheetReorder=spreadData.allowSheetReorder}if(typeof spreadData.highlightInvalidData!==const_undefined){self._highlightInvalidData=spreadData.highlightInvalidData}if(typeof spreadData.autoFitType!==const_undefined){self.autoFitType(spreadData.autoFitType)}if(typeof spreadData.showResizeTip!==const_undefined){self._showResizeTip=spreadData.showResizeTip}if(typeof spreadData.showScrollTip!==const_undefined){self._showScrollTip=spreadData.showScrollTip}if(typeof spreadData.showDragDropTip!==const_undefined){self._showDragDropTip=spreadData.showDragDropTip}if(typeof spreadData.showDragFillTip!==const_undefined){self._showDragFillTip=spreadData.showDragFillTip}if(typeof spreadData.showHorizontalScrollbar!==const_undefined){self.showHorizontalScrollbar(spreadData.showHorizontalScrollbar)}if(typeof spreadData.showVerticalScrollbar!==const_undefined){self.showVerticalScrollbar(spreadData.showVerticalScrollbar)}if(typeof spreadData.backColor!==const_undefined){self.backColor(spreadData.backColor)}if(typeof spreadData.backgroundImage!==const_undefined){self.backgroundImage(spreadData.backgroundImage)}if(typeof spreadData.backgroundImageLayout!==const_undefined){self.backgroundImageLayout(spreadData.backgroundImageLayout)}if(typeof spreadData.grayAreaBackColor!==const_undefined){self.grayAreaBackColor(spreadData.grayAreaBackColor)}if(typeof spreadData.cutCopyIndicatorVisible!==const_undefined){self.cutCopyIndicatorVisible(spreadData.cutCopyIndicatorVisible)}if(typeof spreadData.cutCopyIndicatorBorderColor!==const_undefined){self.cutCopyIndicatorBorderColor(spreadData.cutCopyIndicatorBorderColor)}if(typeof(spreadData.useTouchLayout!==const_undefined)){self.useTouchLayout(spreadData.useTouchLayout)}if(self.calcService){self.calcService.suspend()}self.clearCustomNames();if(spreadData.names){for(var n=0;n<spreadData.names.length;n++){var ni=spreadData.names[n];self.addCustomName(ni.name,ni.formula,ni.row,ni.col)}}if(sheets){i=0;for(var s in sheets){if(typeof(s)==="string"){var sheetData=sheets[s];var index=sheetData.index!==keyword_undefined?sheetData.index:sheetData._index;if(index!=keyword_undefined){sheet=self.sheets[index]}else
{sheet=self.sheets[i]}sheet.formulaFromJSON(sheetData);i++}}}if(self.calcService){if(spreadData.noRecalc){self.calcService.resumeWithoutCalc()}else
{self.calcService.resume(true)}}}finally
{self._suspendSetFocus=false;self.getActiveSheet().setFocus();self.resumeEvent();self.isPaintSuspended(oldState)}};Spread.prototype.setTabStripRatio=function(tabStripRatio,skipRefreshScrollbar){if(typeof skipRefreshScrollbar==="undefined"){skipRefreshScrollbar=false}var ratio;if(isNaN(ratio=tabStripRatio)){throw spread.SR.Exp_InvalidArgument;}var self=this;var totalWidth=$(self._vp).width();var minRatio=self._tab._resizeBarWidth/totalWidth;if(ratio<minRatio){self._tabStripRatio=minRatio}else if(ratio>1){self._tabStripRatio=1}else
{self._tabStripRatio=ratio}if(ratio<0){self._tabStripRatioUserSet=0}else if(ratio>1){self._tabStripRatioUserSet=1}else
{self._tabStripRatioUserSet=ratio}self._doTabHSResize()};Spread.prototype.getTabStripRatio=function(){return this._tabStripRatioUserSet};Spread.prototype._getActualTabStripRatio=function(){if(this.showHorizontalScrollbar()){return this._tabStripRatio}return 1};Spread.prototype._setActualTabStripRatio=function(tabStripRatio){this._tabStripRatio=tabStripRatio};Spread.prototype.showScrollTip=function(value){if(arguments.length===0){return this._showScrollTip}else
{this._showScrollTip=value;return this}};Spread.prototype.showResizeTip=function(value){if(arguments.length===0){return this._showResizeTip}else
{this._showResizeTip=value;return this}};Spread.prototype.showDragDropTip=function(value){if(arguments.length===0){if(!spread.util.hasCalc()){return false}return this._showDragDropTip}else
{this._showDragDropTip=value;return this}};Spread.prototype.showDragFillTip=function(value){if(arguments.length===0){if(!spread.features.fill){return false}return this._showDragFillTip}else
{this._showDragFillTip=value;return this}};Spread.prototype.grayAreaBackColor=function(value){if(arguments.length===0){return this._grayAreaBackColor}var self=this;var sheet=this.getActiveSheet();if(sheet){return sheet._bindToAutoRefresh(function(value){self._grayAreaBackColor=value;return self})(value)}else
{self._grayAreaBackColor=value}};Spread.prototype.backColor=function(value){if(arguments.length===0){return this._backColor}var self=this;var sheet=this.getActiveSheet();if(sheet){return sheet._bindToAutoRefresh(function(value){self._backColor=value;return self})(value)}else
{self._backColor=value}};Spread.prototype.backgroundImage=function(value){var self=this;if(arguments.length===0){return self._backgroundImage}var sheet=self.getActiveSheet();if(sheet){return sheet._bindToAutoRefresh(function(value){self._backgroundImage=value;self._paintSpreadBackgroundImage();return self})(value)}else
{self._backgroundImage=value;return self}};Spread.prototype.backgroundImageLayout=function(value){var self=this;if(arguments.length===0){return self._backgroundImageLayout}else
{self._backgroundImageLayout=value;self._paintSpreadBackgroundImage();return self}};Spread.prototype._findTable=function(name){if(!this.sheets||this.sheets.length===0){return keyword_null}var sheets=this.sheets,count=sheets.length;for(var i=0;i<count;i++){var sheet=sheets[i];var table=sheet.findTableByName(name);if(table){return table}}return keyword_null};Spread.prototype.addSparklineEx=function(sparklineEx){var sparklineExs=this._sparklineExs;if(sparklineEx&&sparklineExs){sparklineExs[sparklineEx.name()]=sparklineEx}};Spread.prototype.getSparklineEx=function(name){var sparklineExs=this._sparklineExs;return sparklineExs&&sparklineExs[name]};Spread.prototype.removeSparklineEx=function(name){var sparklineExs=this._sparklineExs;if(sparklineExs){sparklineExs[name]=keyword_undefined}};Spread.prototype.useTouchLayout=function(value){var self=this;if(arguments.length===0){return self._useTouchLayout}self._useTouchLayout=value;self._doResize();return self};Spread.prototype._getScrollbarSize=function(){return 18};Spread.prototype.suspendCalcService=function(ignoreDirty){if(this.calcService){this.calcService.suspend(ignoreDirty)}};Spread.prototype.resumeCalcService=function(recalcAll){if(this.calcService){this.calcService.resume(recalcAll)}};return Spread})();spread.Spread=Spread;var gcTab_ns=".gcTab",tabNameEditor_ns=".tabNameEditor",spliter_ns=".spliter";var mouse="mouse",e_down="down",e_move="move",e_up="up",e_out="out",e_focusin="focusin",e_focusout="focusout",e_keydown="keydown";var spliter_mousemove=mouse+e_move+spliter_ns,spliter_mouseup=mouse+e_up+spliter_ns;var tabNameEditor_keydown=e_keydown+tabNameEditor_ns,tabNameEditor_focusin=e_focusin+tabNameEditor_ns,tabNameEditor_focusout=e_focusout+tabNameEditor_ns;var gcTab_mousedown=mouse+e_down+gcTab_ns,gcTab_mousemove=mouse+e_move+gcTab_ns,gcTab_mouseup=mouse+e_up+gcTab_ns,gcTab_mouseout=mouse+e_out+gcTab_ns,gcTable_dbclick="dblclick"+gcTab_ns;var tag_canvas="canvas",dc_2d="2d";var hit_element_resizebar="resizeBar",hit_element_navbutton="navButton",hit_element_tab="tab",hit_element_newTab="newTab";var color_FFFFFF="#FFFFFF",color_D8E7FA="#D8E7FA",color_D5E5F9="#D5E5F9",color_B6D2F5="#B6D2F5",color_D9E7F9="#D9E7F9",color_688CAF="#688CAF",color_92A5C7="#92A5C7",color_black="black",color_white="white";var tabIndicatorHeight=4;var tabTipClass="tab-tip-span";var _GcTab=(function(){function _GcTab(name){var self=this;self._spread=keyword_null;self._activeIndex=0;self._firstTab=0;self._tabLeftPadding=12;self._tabRightPadding=8;self._tabSpace=3;self._activePos=70;self._hoverNavButton=-1;self._hoverTab=-1;self._newTabSize=48;self._firstTabSpace=5;self._font="10pt Arial";self._resizeBarWidth=8;self._tabSizes=[];self._targetTabIndex=-1;self._sourceTabIndex=-1;self._reorderSpeedTimeout=keyword_null;self._paintSuspended=false;self._init(name)}_GcTab.prototype._init=function(name){this._bounds=new spread.Rect(0,0,200,20);this.name=name};_GcTab.prototype._setHost=function(host){var self=this;var canvas=document.createElement(tag_canvas);canvas.setAttribute("id",self.name);self._tabIndicator=self._getTabIndicator();host.appendChild(self._tabIndicator[0]);host.appendChild(canvas);canvas.gcObject=true;if(self.canvas){$(self.canvas).unbind(gcTab_mousedown).unbind(gcTab_mousemove).unbind(gcTab_mouseup).unbind(gcTab_mouseout).unbind(gcTable_dbclick);self._unbindTouchEvents();self.canvas.parentNode.removeChild(self.canvas)}self.canvas=canvas;if(!spread.util._isStandardCanvas()&&spread.util._isSilverlightCanvas()){canvas.setAttribute('renderMethod','auto');canvas.setAttribute('onload',self._test(self))}$(canvas).bind(gcTab_mousedown,spread.util.createEventHandler(self,self.doMouseDown)).bind(gcTab_mousemove,spread.util.createEventHandler(self,self.doMouseMove)).bind(gcTab_mouseup,spread.util.createEventHandler(self,self.doMouseUp)).bind(gcTab_mouseout,spread.util.createEventHandler(self,self.doMouseOut)).bind(gcTable_dbclick,spread.util.createEventHandler(self,self.doMouseDbClick));self._bindTouchEvents();self.doResize()};_GcTab.prototype._unbindTouchEvents=function(){if(this._touchManager){this._touchManager.unbindTouchEvents()}};_GcTab.prototype._bindTouchEvents=function(){if(!spread.features.touch){return}var self=this;var touchManager=new spread.TabStripTouchManager(self.canvas,self,self._spread._touchEventProvider);touchManager.bindTouchEvents();self._touchManager=touchManager;self._resizeBarWidth=12};_GcTab.prototype._getTabIndicator=function(){return $("<div>").css({position:"absolute","border-style":"solid","border-color":color_black,"border-width":tabIndicatorHeight,display:"none",width:"0","border-bottom":"0","border-left-color":"transparent","border-right-color":"transparent"})};_GcTab.prototype._getNavigationButtonWidth=function(){var width=0,sp=this._spread;if(sp){if(sp.useTouchLayout()){width=sp._getScrollbarSize()*2}else
{width=sp._getScrollbarSize()}}return width};_GcTab.prototype._getNavigationButtonHeight=function(){return this._spread?this._spread._getScrollbarSize():0};_GcTab.prototype._getTabStartPosition=function(){return this._getNavigationButtonWidth()*4+2};_GcTab.prototype._test=function(tab){return tab._spread.initPaint(tab._spread)};_GcTab.prototype.setOwner=function(owner){this._spread=owner;if(owner&&owner._font&&owner._font.length>0){this._font=owner._font}};_GcTab.prototype._dispose=function(){var canvas=this.canvas;if(canvas){$(canvas).unbind(gcTab_mousedown).unbind(gcTab_mousemove).unbind(gcTab_mouseup).unbind(gcTable_dbclick).unbind(gcTab_mouseout);canvas.parentNode.removeChild(canvas)}};_GcTab.prototype.getBounds=function(){return this._bounds};_GcTab.prototype.setBounds=function(rect){var bounds=this._bounds;bounds.x=rect.x;bounds.y=rect.y;bounds.width=rect.width;bounds.height=rect.height};_GcTab.prototype._clearRepeatDown=function(){if(this._repeatDown){window.clearTimeout(this._repeatDown);this._repeatDown=keyword_null}};_GcTab.prototype.doNavButtonClick=function(btnClicked,ignoreRepeat){var self=this;self._clearRepeatDown();var visibleTabs=self._getVisibleTabs();if(visibleTabs.length<=0){return}var repeatClickIntevel=200;switch(btnClicked){case 0:self._navigateToFirst(visibleTabs);break;case 1:if(!ignoreRepeat){self._repeatDown=window.setTimeout(function(){self.doNavButtonClick(1)},repeatClickIntevel)}self._navigateToPrevious(visibleTabs);break;case 2:if(!ignoreRepeat){self._repeatDown=window.setTimeout(function(){self.doNavButtonClick(2)},repeatClickIntevel)}self._navigateToNext(visibleTabs);break;case 3:self._navigateToLast(visibleTabs);break;default:return}};_GcTab.prototype._getVisibleTabs=function(){var visibleTabs=[],index;for(index=0;index<this._spread.sheets.length;index++){if(this._tabVisible(index)){visibleTabs.push(index)}}return visibleTabs};_GcTab.prototype._navigateToFirst=function(visibleTabs){if(visibleTabs.length<=0){return}if(this._firstTab!=visibleTabs[0]){this._spread.startSheetIndex(visibleTabs[0])}};_GcTab.prototype._navigateToPrevious=function(visibleTabs){if(visibleTabs.length<=0){return}var self=this;if(self._firstTab>visibleTabs[0]){var preVisibleIndex=self._getPreVisibleIndex(self._firstTab);if(preVisibleIndex!==-1){self._spread.startSheetIndex(preVisibleIndex)}}};_GcTab.prototype._navigateToNext=function(visibleTabs){if(visibleTabs.length<=0){return}var self=this;if(self._firstTab<visibleTabs[visibleTabs.length-1]){var currTabIndex=self._reCalculateFirstTabIndex(visibleTabs);if(currTabIndex!==-1){self._spread.startSheetIndex(self._getNextVisibleIndex(self._firstTab))}}};_GcTab.prototype._navigateToLast=function(visibleTabs){if(visibleTabs.length<=0){return}if(this._firstTab<visibleTabs[visibleTabs.length-1]){var currTabIndex=this._reCalculateFirstTabIndex(visibleTabs);if(currTabIndex!==-1){this._spread.startSheetIndex(currTabIndex)}}};_GcTab.prototype._reCalculateFirstTabIndex=function(visibleTabs){if(visibleTabs.length<=0){return-1}var self=this;var availableWidth=self._bounds.width-self._resizeBarWidth;var tabSumWidth=0;var tabsWidth=self._tabSizes,i,index;var tabOverlapWidth=self._bounds.height;var basisWidth=self._getTabStartPosition()+tabOverlapWidth;if(self._spread._newTabVisible){basisWidth+=self._newTabSize;basisWidth+=self._tabSpace}var startIndex=self._getVisibleTabIndex(self._firstTab,visibleTabs);if(startIndex===-1){startIndex=0}for(i=visibleTabs.length-1;i>=startIndex;i--){index=visibleTabs[i];var itemWidth=tabsWidth[index];tabSumWidth+=itemWidth;if(i!==visibleTabs.length-1){tabSumWidth+=self._tabSpace}var totalWidth=basisWidth+tabSumWidth;if(i!==0){totalWidth+=self._firstTabSpace}if(totalWidth>availableWidth){var currIndex;if(i+1<visibleTabs.length){currIndex=visibleTabs[i+1]}else
{currIndex=visibleTabs[visibleTabs.length-1]}if(self._firstTab<currIndex){return currIndex}else
{return-1}}}return-1};_GcTab.prototype._getPreVisibleIndex=function(tabIndex){var tabCount=this._spread.sheets.length;var index;for(index=tabIndex-1;index>=0;index--){if(this._tabVisible(index)){return index}}return-1};_GcTab.prototype._getNextVisibleIndex=function(tabIndex){var tabCount=this._spread.sheets.length;var index;for(index=tabIndex+1;index<tabCount;index++){if(this._tabVisible(index)){return index}}return-1};_GcTab.prototype._getVisibleTabIndex=function(tabIndex,visibleTabs){var index;for(index=0;index<=visibleTabs.length-1;index++){if(tabIndex===visibleTabs[index]){return index}}return-1};_GcTab.prototype._tabVisible=function(tabIndex){return this._spread.sheets[tabIndex].visible()};_GcTab.prototype._hitTest=function(left,top){var self=this;var rect=self.getBounds();if(rect.x+rect.width-self._resizeBarWidth<left&&left<rect.x+rect.width){if(self._spread.showHorizontalScrollbar()){return{element:hit_element_resizebar}}}var navButton=-1;var x=0,i,navigationButtonWidth=self._getNavigationButtonWidth();for(i=0;i<4;i++){if(x<=left&&left<x+navigationButtonWidth){navButton=i;break}x+=navigationButtonWidth}if(navButton!==-1){return{element:hit_element_navbutton,index:i}}x=self._getTabStartPosition();var preTabIndex=self._getPreVisibleIndex(self._firstTab);if(preTabIndex!==-1){if(x<left&&left<x+self._firstTabSpace+self._tabSpace){return{element:hit_element_tab,index:preTabIndex,position:x}}x+=self._firstTabSpace}var tabSize=0;if(self._firstTab>-1){for(i=self._firstTab;i<self._spread.sheets.length&&i<self._tabSizes.length;i++){if(self._spread.sheets[i].visible()){tabSize=self._tabSizes[i];if(x<left&&left<x+tabSize+self._tabSpace){return{element:hit_element_tab,index:i,position:x}}x+=(tabSize+self._tabSpace)}}}if(self._spread._newTabVisible){if(left>x&&left<x+self._newTabSize){return{element:hit_element_newTab,position:x}}}return{element:""}};_GcTab.prototype.doSheetTabClick=function(index,position){var self=this;var E=spread.Events;self._activeIndex=index;self._activePos=position;var oldStatus=self._spread.isPaintSuspended();self._spread.isPaintSuspended(true);var activeSheet=self._spread.getActiveSheet();var sheet=self._spread.getSheet(index);if(sheet&&sheet.isEditing()){sheet.endEdit()}self._spread._trigger(E.SheetTabClick,{sheet:sheet,sheetName:sheet._name,sheetTabIndex:index});if(index!==self._spread._activeSheetIndex){var args={oldSheet:activeSheet,newSheet:sheet,cancel:false};self._spread._trigger(E.ActiveSheetChanging,args);if(args&&args.cancel===false){self._spread.setActiveSheetIndex(index);this._spread._trigger(E.ActiveSheetChanged,{oldSheet:activeSheet,newSheet:sheet});var nextIndex=self._getNextVisibleIndex(self._firstTab);if(self._activeIndex>self._firstTab&&self._activePos+self._tabSizes[self._activeIndex]>self.getBounds().width-self._resizeBarWidth&&nextIndex!=-1){self._firstTab=nextIndex}}}if(self._activeIndex<self._firstTab){self._firstTab=self._getPreVisibleIndex(self._firstTab)}self._spread.isPaintSuspended(oldStatus);self.repaint()};_GcTab.prototype.doNewTabClick=function(position){var self=this;var E=spread.Events;var spreadTmp=self._spread;var activeSheet=spreadTmp.getActiveSheet();spreadTmp._trigger(E.SheetTabClick,{sheet:keyword_null,sheetName:keyword_null,sheetTabIndex:-1});var index=spreadTmp.sheets.length;var sheet=spreadTmp._createSheet(spreadTmp._getDefaultSheetName(index));spreadTmp.addSheet(index,sheet);self._activeIndex=index;self._activePos=position;var args={oldSheet:activeSheet,newSheet:sheet,cancel:false};spreadTmp._trigger(E.ActiveSheetChanging,args);if(args&&args.cancel===false){spreadTmp.setActiveSheetIndex(index);spreadTmp._trigger(E.ActiveSheetChanged,{oldSheet:activeSheet,newSheet:sheet});while(self._activeIndex>self._firstTab&&self._activePos+self._tabSizes[self._activeIndex]+self._newTabSize>self.getBounds().width-self._resizeBarWidth){if(spreadTmp.sheets[self._firstTab].visible()){self._activePos-=self._tabSizes[self._firstTab]}self._firstTab++}self.repaint()}};_GcTab.prototype.doMouseDown=function(e){var device=spread.util.device();var needIgnoreMouseEvent=device.ipad||device.iphone;if(needIgnoreMouseEvent){return}var self=this;if(self._touchManager&&self._touchManager.preProcessMouseDown(e)){spread.util.cancelDefault(e);return false}var t=$(self._getCanvas()).offset();var left=e.pageX-t.left;var top=e.pageY-t.top;var activeSheet=self._spread.getActiveSheet();var args;if(self._tabNameEditor){self.endSheetTabEditing(activeSheet,false)}var hitTestInfo=self._hitTest(left,top);var E=spread.Events;if(e.button===0){if(hitTestInfo.element===hit_element_resizebar){self.resizeTab=true;self.activeX=e.pageX;self.handleDocumentMouseMove()}else if(hitTestInfo.element===hit_element_navbutton){self.doNavButtonClick(hitTestInfo.index)}else if(hitTestInfo.element===hit_element_tab){self.doSheetTabClick(hitTestInfo.index,hitTestInfo.position);self._initTabReorder(hitTestInfo)}else if(hitTestInfo.element===hit_element_newTab){self.doNewTabClick(hitTestInfo.position)}activeSheet=self._spread.getActiveSheet();var eventHandler=activeSheet&&activeSheet._eventHandler;if(eventHandler&&!activeSheet.isEditing()){try
{eventHandler._tabStripHitTestResult={left:e.pageX,top:e.pageY};activeSheet.setFocus()}finally
{eventHandler._tabStripHitTestResult=keyword_null}}}self._isMouseDownInTab=true;return false};_GcTab.prototype._initTabReorder=function(hitTestInfo){var self=this;if(this._spread._allowSheetReorder){self._sourceTabIndex=hitTestInfo.index;self._reorderSheet=true;self._tabTip=self._getTabTip(self._sourceTabIndex);self.handleDocumentMouseMove()}else
{self._reorderSheet=false}};_GcTab.prototype._getTabTip=function(index){var sheets=this._spread.sheets;var len=sheets.length;if(index>=len||index<0){return}var name=sheets[index]._name;if(!name){name="sheet"}var tip=$("<span>").text(name).css({position:"absolute",cursor:"default","border-radius":"5px",opacity:".7"});if(this._spread.useWijmoTheme){tip.addClass("ui-widget-header")}else
{tip.addClass("tab-tip-span")}return tip};_GcTab.prototype.doMouseMove=function(e){var device=spread.util.device();var needIgnoreMouseEvent=device.ipad||device.iphone;if(needIgnoreMouseEvent){return}var self=this;if(self._touchManager&&self._touchManager.preProcessMouseMove(e)){spread.util.cancelDefault(e);return false}var cursor_default="default",cursor_wresize="w-resize";if(self.resizeTab){self.canvas.style.cursor=cursor_wresize;var d=e.pageX-self.activeX;var totalWidth=self._spread._vp.clientWidth;var ss=self._spread;ss.setTabStripRatio(ss._getActualTabStripRatio()+d/totalWidth,true);var minRatio=self._resizeBarWidth/totalWidth;var maxRatio=1;if(ss._getActualTabStripRatio()<minRatio){ss.setTabStripRatio(minRatio,true);self.activeX=self._resizeBarWidth}else if(ss._getActualTabStripRatio()>=maxRatio){ss.setTabStripRatio(maxRatio,true);self.activeX=totalWidth}else
{self.activeX=e.pageX}}else if(self._reorderSheet){self._showTabTip(e.pageX,e.pageY);self._setTabIndicator(e)}else
{self._hoverNavButton=-1;self._hoverTab=-1;var t=$(self._getCanvas()).offset();var left=e.pageX-t.left;var top=e.pageY-t.top;var hitTestInfo=self._hitTest(left,top);if(hitTestInfo.element===""){self.canvas.style.cursor=cursor_default;self.repaint();return false}else if(hitTestInfo.element===hit_element_resizebar){self.canvas.style.cursor=cursor_wresize}else
{self.canvas.style.cursor=cursor_default;if(hitTestInfo.element===hit_element_navbutton){self._hoverNavButton=hitTestInfo.index}else if(hitTestInfo.element===hit_element_tab){self._hoverTab=hitTestInfo.index}else if(hitTestInfo.element===hit_element_newTab){self._hoverTab=-2}}self.repaint()}return false};_GcTab.prototype._showTabTip=function(x,y){var self=this;if(self._tabTip&&$("."+tabTipClass).length===0){self._tabTip.appendTo(document.body);self._tabTip.hide()}var tipWidth=self._tabTip.width();var tipHeight=self._tabTip.height();self._tabTip.css({left:x-tipWidth/2,top:y-tipHeight/2});self._tabTip.show()};_GcTab.prototype._setTabIndicator=function(e){var self=this;var $canvas=$(self._getCanvas());var t=$canvas.position();var offset=$canvas.offset();var left=e.pageX-offset.left;var top=e.pageY-offset.top;var hitTestInfo=self._hitTest(left,top);var rect=self.getBounds();var tabStartPosition=self._getTabStartPosition();var sheetLength=self._spread.sheets.length;var timeInterval=100;if(left>rect.x+rect.width-self._resizeBarWidth){if(self._reorderSpeedTimeout===keyword_null&&self._targetTabIndex<sheetLength){self._reorderSpeedTimeout=setInterval(function(){self._navigateToNext(self._getVisibleTabs());if(self._targetTabIndex===sheetLength){self._clearSpeedTimeout();self._tabIndicator.css({left:t.left+self._getLastTabPos()-tabIndicatorHeight,top:t.top-tabIndicatorHeight});self._tabIndicator.show()}else
{self._targetTabIndex++;self._tabIndicator.hide()}},timeInterval)}}else if(left<tabStartPosition){if(self._reorderSpeedTimeout===keyword_null&&self._targetTabIndex>0){self._reorderSpeedTimeout=setInterval(function(){self._navigateToPrevious(self._getVisibleTabs());if(self._targetTabIndex===0){self._clearSpeedTimeout();self._tabIndicator.css({left:t.left+tabStartPosition-tabIndicatorHeight,top:t.top-tabIndicatorHeight});self._tabIndicator.show()}else
{self._targetTabIndex--;self._tabIndicator.hide()}},timeInterval)}}else
{self._clearSpeedTimeout();if(hitTestInfo.element===hit_element_tab||hitTestInfo.element===hit_element_newTab){if(typeof hitTestInfo.index!==const_undefined){self._targetTabIndex=hitTestInfo.index}else
{self._targetTabIndex=self._spread.sheets.length}self._tabIndicator.css({left:t.left+hitTestInfo.position-tabIndicatorHeight,top:t.top-tabIndicatorHeight});self._tabIndicator.show()}}};_GcTab.prototype._getLastTabPos=function(){var self=this;var tabsWidth=self._tabSizes;var visibleTabs=self._getVisibleTabs();var startIndex=self._getVisibleTabIndex(self._firstTab,visibleTabs);var index=0;var tabOverlapWidth=self._bounds.height;var tabSumWidth=self._getTabStartPosition()+self._firstTabSpace;for(var i=startIndex;i<visibleTabs.length;i++){index=visibleTabs[i];var itemWidth=tabsWidth[index];tabSumWidth+=itemWidth;tabSumWidth+=self._tabSpace}return tabSumWidth};_GcTab.prototype.doMouseUp=function(e){var device=spread.util.device();var needIgnoreMouseEvent=device.ipad||device.iphone;if(needIgnoreMouseEvent){return}var self=this;if(self._touchManager&&self._touchManager.preProcessMouseUp(e)){spread.util.cancelDefault(e);return false}if(self.resizeTab){self.resizeTab=false;self._spread._doTabHSResize()}self._clearSpeedTimeout();if(self._reorderSheet){self._reorderSheet=false;self._tabTip.remove();self._reorderTab();self._tabIndicator.hide()}self._clearRepeatDown();self.unhandleDocumentMouseMove();if(!self._isMouseDownInTab){return true}else
{self._isMouseDownInTab=false;return false}};_GcTab.prototype._reorderTab=function(){var self=this;var tarIndex=self._targetTabIndex;var sourIndex=self._sourceTabIndex;var activeSheetIndex=-1;if(tarIndex!==-1&&sourIndex!==-1&&sourIndex!==tarIndex&&sourIndex!==tarIndex-1&&self._tabIndicator.is(":visible")){var sheets=self._spread.sheets;var sourceSheet=sheets[sourIndex];if(sourIndex>tarIndex){for(var i=sourIndex;i>tarIndex;i--){sheets[i]=sheets[i-1]}sheets[tarIndex]=sourceSheet;activeSheetIndex=tarIndex}else if(sourIndex<tarIndex-1){for(var i=sourIndex;i<tarIndex-1;i++){sheets[i]=sheets[i+1]}sheets[tarIndex-1]=sourceSheet;activeSheetIndex=tarIndex-1}self._spread._activeSheetIndex=activeSheetIndex;self.doResize()}};_GcTab.prototype._clearSpeedTimeout=function(){if(this._reorderSpeedTimeout!==keyword_null){window.clearInterval(this._reorderSpeedTimeout);this._reorderSpeedTimeout=keyword_null}};_GcTab.prototype.doMouseOut=function(e){var device=spread.util.device();var needIgnoreMouseEvent=device.ipad||device.iphone;if(needIgnoreMouseEvent){return}var self=this;self._clearRepeatDown();var oldNav=self._hoverNavButton;self._hoverNavButton=-1;var oldTab=self._hoverTab;self._hoverTab=-1;if(self._hoverNavButton!==oldNav||self._hoverTab!==oldTab){self.repaint()}return false};_GcTab.prototype._doMouseDbClickImp=function(left,top){var self=this;if(!self._spread._tabEditable){return false}var hitTestInfo=self._hitTest(left,top);if(hitTestInfo.element===hit_element_tab){var element=window.gcGlobal.activeElement;if(element&&element.endEdit){element.endEdit()}window.gcGlobal.activeElement=keyword_null;var tabIndex=self._activeIndex;var currentSheet=self._spread.sheets[tabIndex];var currentTabSize=self._tabSizes[tabIndex];var canvasOffset=$(self._getCanvas()).offset();self._spread._trigger(spread.Events.SheetTabDoubleClick,{sheet:currentSheet,sheetName:currentSheet._name,sheetTabIndex:tabIndex});var t=document.createElement(tag_input),tStyle=t.style;t.type="text";t.value=currentSheet._name;t.setAttribute("contentEditable","true");t.setAttribute("autocomplete","off");tStyle.position="absolute";tStyle.margin=zero;tStyle.padding=zero;tStyle.margin=zero;tStyle.left=canvasOffset.left+self._activePos+self._tabLeftPadding+pixel;tStyle.top=canvasOffset.top+1+pixel;tStyle.width=currentTabSize-self._tabLeftPadding-self._tabRightPadding+2+pixel;tStyle.backgroundColor=color_white;tStyle.borderWidth="0px";tStyle.outline=cssNone;document.body.insertBefore(t,keyword_null);self._tabNameEditor=t;$(t).addClass("sheetTabEditor").bind(tabNameEditor_keydown,function(e){if(e.keyCode===13){self.endSheetTabEditing(currentSheet,false);return false}else if(e.keyCode===27){self.endSheetTabEditing(currentSheet,true);return false}}).bind(tabNameEditor_focusin,function(e){t.selectionStart=0;t.selectionEnd=t.value.length}).bind(tabNameEditor_focusout,function(e){self.endSheetTabEditing(currentSheet,false)});t.focus()}return false};_GcTab.prototype.doMouseDbClick=function(e){var device=spread.util.device();var needIgnoreMouseEvent=device.ipad||device.iphone;if(needIgnoreMouseEvent){return}var offset=$(this._getCanvas()).offset();var left=e.pageX-offset.left;var top=e.pageY-offset.top;return this._doMouseDbClickImp(left,top)};_GcTab.prototype._isValidSheetName=function(sheetName){if(sheetName===keyword_undefined||sheetName===keyword_null||sheetName===""){return false}var length=this._spread.sheets.length;for(var i=0;i<length;i++){var sheet=this._spread.sheets[i];if(sheetName===sheet._name){return false}}return true};_GcTab.prototype.endSheetTabEditing=function(sheet,cancel){var self=this;if(self._tabNameEditor){var newName=self._tabNameEditor.value;if(cancel===false&&newName!==keyword_undefined&&newName!==keyword_null&&newName!==""&&self._isValidSheetName(newName)){var args={sheet:sheet,oldValue:sheet.getName(),newValue:newName,cancel:false};sheet._trigger(spread.Events.SheetNameChanging,args);if(args&&args.cancel===false){var action=new spread.UndoRedo.SheetRenameUndoAction(sheet,newName);sheet._doCommand(action);var argsEdited={sheet:sheet,oldValue:sheet.getName(),newValue:newName};sheet._trigger(spread.Events.SheetNameChanged,argsEdited)}}$(self._tabNameEditor).unbind(tabNameEditor_keydown).unbind(tabNameEditor_focusin).unbind(tabNameEditor_focusout);self._tabNameEditor.parentNode.removeChild(self._tabNameEditor);delete self._tabNameEditor}};_GcTab.prototype.handleDocumentMouseMove=function(){var self=this;if(!self._isCapture){$(document).bind(spliter_mousemove,function(e){self.doMouseMove(e)}).bind(spliter_mouseup,function(e){self.doMouseUp(e)});var sheet=self._spread.getActiveSheet();if(sheet){sheet._continueMouseUpBubble=true}self._isCapture=true}};_GcTab.prototype.unhandleDocumentMouseMove=function(){if(this._isCapture){this._isCapture=false;$(document).unbind(spliter_mousemove).unbind(spliter_mouseup);var sheet=this._spread.getActiveSheet();if(sheet){delete sheet._continueMouseUpBubble}}};_GcTab.prototype.isPaintSuspended=function(value){var self=this;if(arguments.length===0){return self._paintSuspended}else
{if(self._paintSuspended!==value){self._paintSuspended=value;if(!value){self.repaint()}}return self}};_GcTab.prototype.repaint=function(clipRect){var c=this._getCanvas();if(c){if(!c.getContext&&spread.util._isSilverlightCanvas()){if(!c.getContext){return}}if(!c.getContext&&typeof window.FlashCanvas!==const_undefined){window.FlashCanvas.initElement(c)}if(c.getContext){this.paint(c.getContext(dc_2d),clipRect)}}};_GcTab.prototype.doResize=function(){var self=this;var canvas=self._getCanvas();if(!canvas||!canvas.parentNode){return}var $parent=$(canvas.parentNode);if($parent.width()===0||$parent.height()===0){return}canvas.style.display=cssNone;canvas.width=Math_max($parent.width(),0);canvas.height=Math_max($parent.height(),0);canvas.style.display="";self._bounds.width=canvas.clientWidth||canvas.width;self._bounds.height=canvas.clientHeight||canvas.height;self.repaint()};_GcTab.prototype.paint=function(ctx,clipRect){var self=this;if(self._paintSuspended){return}var rect=self.getBounds();if(clipRect){if(clipRect.x>=rect.x+rect.width){return}if(clipRect.y>=rect.y+rect.height){return}if(clipRect.x+clipRect.width>rect.width){clipRect.width=rect.width-clipRect.x;if(clipRect.width<=0){return}}if(clipRect.y+clipRect.height>rect.height){clipRect.height=rect.height-clipRect.y;if(clipRect.height<=0){return}}if(clipRect.width<=0||clipRect.height<=0){return}}var bufferCtx,useDoubleBuffer=spread.util._useDoubleBuffer();if(useDoubleBuffer){var buffer=self.buffer;if(!buffer||buffer.width!==rect.width||buffer.height!==rect.height){self.buffer=buffer=document.createElement(tag_canvas);buffer.width=rect.width;buffer.height=rect.height}if(!buffer.getContext){if(spread.util._isSilverlightCanvas()){if(!buffer.getContext){return}}else if(typeof window.FlashCanvas!==const_undefined){var c=self._getCanvas();window.FlashCanvas.initElement(c);if(!buffer.getContext){return}}}}bufferCtx=useDoubleBuffer?self.buffer.getContext(dc_2d):ctx;bufferCtx.clearRect(0,0,rect.width,rect.height);bufferCtx.translate(-rect.x,-rect.y);self.paintTabs(bufferCtx,clipRect);bufferCtx.translate(rect.x,rect.y);if(useDoubleBuffer){var x=(rect.x>=0)?0:-rect.x;var y=(rect.y>=0)?0:-rect.y;if(clipRect){x=rect.x+clipRect.x;y=rect.y+clipRect.y;rect=new spread.Rect(rect.x+clipRect.x,rect.y+clipRect.y,clipRect.width,clipRect.height)}bufferCtx=self.buffer.getContext(dc_2d);var imgData=keyword_null;try
{if(!clipRect){var canvas=self._getCanvas();if(canvas){imgData=bufferCtx.getImageData(x,y,Math_min(rect.width-x,Math_max(canvas.width-rect.x,3)),Math_min(rect.height-y,Math_max(canvas.height-rect.y,3)))}else
{imgData=bufferCtx.getImageData(x,y,Math_max(rect.width-x,0),Math_max(rect.height-y,0))}}else
{imgData=bufferCtx.getImageData(clipRect.x,clipRect.y,clipRect.width,clipRect.height)}}catch(ex){return}x=(rect.x>=0)?rect.x:0;y=(rect.y>=0)?rect.y:0;if(imgData&&rect.width>0&&rect.height>0){ctx.putImageData(imgData,x,y)}}};_GcTab.prototype._getCanvas=function(){var c=this.canvas;if(c&&!c.getContext&&c.firstChild){c.getContext=c.firstChild.getContext}return c};_GcTab.prototype._getTabStripBackColor=function(ctx,rect){var gradFill=keyword_null,headerStyle;if(this._spread.useWijmoTheme){gradFill=ctx.createLinearGradient(rect.x,rect.y,rect.width,rect.height);headerStyle=window.gcGlobal.getWijmoThemeStyle(0);gradFill.addColorStop(0,"#DDDDDD");gradFill.addColorStop(1,headerStyle.backgroundColor)}else
{gradFill=ctx.createLinearGradient(rect.x+0.7*rect.height,rect.y+0,0.7*rect.height,rect.height);gradFill.addColorStop(0,"#7FA1D1");gradFill.addColorStop(0.3,"#A1BADD");gradFill.addColorStop(1,"#9AB5DB")}return gradFill};_GcTab.prototype.paintTabs=function(ctx,clipRect){var self=this,sp=self._spread;if(!ctx||!sp){return}var rect=self.getBounds();ctx.save();ctx.font=self._font;if(clipRect){ctx.rect(clipRect.x,clipRect.y,clipRect.width,clipRect.height)}else
{ctx.rect(rect.x,rect.y,rect.width,rect.height)}ctx.clip();ctx.beginPath();ctx.fillStyle=self._getTabStripBackColor(ctx,rect);ctx.fillRect(rect.x,rect.y,rect.width,rect.height);var tabSize=60,tabStartPosition=self._getTabStartPosition(),pos=tabStartPosition;self._tabSizes=[];var i,sheets=sp.sheets;for(i=0;i<sheets.length;i++){tabSize=ctx.measureText(sheets[i]._name).width+self._tabRightPadding+self._tabLeftPadding;self._tabSizes.push(tabSize)}var tabs=[],firstTab=self._firstTab;if(firstTab>0&&self._getPreVisibleIndex(firstTab)>=0){pos+=self._firstTabSpace}if(firstTab>=0){for(i=firstTab;i<sheets.length;i++){var visible=sheets[i].visible();tabSize=self._tabSizes[i];if(pos>rect.x+rect.width){break}tabs.push({i:i,x:pos,w:tabSize,t:sheets[i]._name,visible:visible});if(visible){pos+=(tabSize+self._tabSpace)}}}var hoverTab=self._hoverTab;if(sp._newTabVisible){self._newTabSize=ctx.measureText(spread.SR.NewTab).width+self._tabLeftPadding;self.drawTab(ctx,pos,0,self._newTabSize,rect.height,5,false,hoverTab===-2,spread.SR.NewTab)}self._activeIndex=sp.getActiveSheetIndex();var activeIndex=self._activeIndex;if(sheets.length>0){for(i=tabs.length-1;i>=0;i--){var t=tabs[i];if(t.i!==activeIndex&&t.visible){self.drawTab(ctx,t.x,0,t.w,rect.height,5,false,t.i===hoverTab,t.t)}}if(firstTab>0&&self._getPreVisibleIndex(firstTab)>=0){var index=firstTab-1;tabSize=self._tabSizes[index];self.drawTab(ctx,tabStartPosition+self._firstTabSpace-tabSize-self._tabSpace,0,tabSize,rect.height,5,activeIndex===index,hoverTab===index,"")}var at=tabs[activeIndex-firstTab];if(activeIndex>=firstTab&&activeIndex<sheets.length&&at&&at.visible){self.drawTab(ctx,at.x,0,at.w,rect.height,5,true,false,at.t)}}ctx.fillStyle=color_92A5C7;ctx.fillRect(rect.x,rect.y,tabStartPosition-1,rect.height);var triangleSize=5,navigationButtonWidth=self._getNavigationButtonWidth(),navigationButtonHeight=self._getNavigationButtonHeight();var x=navigationButtonWidth/2;var y=navigationButtonHeight/2;var hoverNavButton=self._hoverNavButton;self.drawNavButton(ctx,x,y,x+triangleSize,y+triangleSize,x+triangleSize,y-triangleSize,true,x-triangleSize,(hoverNavButton===0));x+=navigationButtonWidth;self.drawNavButton(ctx,x,y,x+triangleSize,y+triangleSize,x+triangleSize,y-triangleSize,true,keyword_null,(hoverNavButton===1));x+=navigationButtonWidth;self.drawNavButton(ctx,x,y,x-triangleSize,y+triangleSize,x-triangleSize,y-triangleSize,false,keyword_null,(hoverNavButton===2));x+=navigationButtonWidth;self.drawNavButton(ctx,x,y,x-triangleSize,y+triangleSize,x-triangleSize,y-triangleSize,false,x+4,(hoverNavButton===3));var _width=self._resizeBarWidth;if(sp.useWijmoTheme){var getWijmoThemeStyle=window.gcGlobal.getWijmoThemeStyle;var hoverStyle=getWijmoThemeStyle(4),headerStyle=getWijmoThemeStyle(0);if(sp.showHorizontalScrollbar()){x=rect.x+rect.width-_width;ctx.fillStyle=headerStyle.backgroundColor;ctx.fillRect(x,rect.y,_width,rect.height);ctx.fillStyle=hoverStyle.backgroundColor;ctx.fillRect(x+1,rect.y+1,_width-2,rect.height-2);ctx.fillStyle=hoverStyle.color;ctx.fillRect(x+_width/2-1,rect.y+4,2,rect.height-8)}}else
{if(sp.showHorizontalScrollbar()){x=rect.x+rect.width-_width;ctx.fillStyle=color_688CAF;ctx.fillRect(x,rect.y,_width,rect.height);ctx.fillStyle="#D7E6F7";ctx.fillRect(x+1,rect.y+1,_width-2,rect.height-2);ctx.fillStyle=color_white;ctx.fillRect(x+_width/2-1,rect.y+4,4,rect.height-8);ctx.fillStyle=color_688CAF;ctx.fillRect(x+_width/2-1,rect.y+4,1,rect.height-8)}}ctx.beginPath();ctx.restore()};_GcTab.prototype.drawNavButton=function(ctx,x1,y1,x2,y2,x3,y3,left,linePosition,highlight){ctx.save();var hoverStyle=keyword_null;var tmpStyle=keyword_null;var self=this;var rect=self.getBounds(),navigationButtonWidth=self._getNavigationButtonWidth();if(self._spread.useWijmoTheme){var getWijmoThemeStyle=window.gcGlobal.getWijmoThemeStyle;hoverStyle=getWijmoThemeStyle(4);tmpStyle=getWijmoThemeStyle(0);if(highlight){ctx.fillStyle=hoverStyle.backgroundColor;ctx.fillRect(x1-navigationButtonWidth/2+2,rect.y+2,navigationButtonWidth-4,rect.height-4)}else
{ctx.fillStyle=tmpStyle.backgroundColor;ctx.fillRect(x1-navigationButtonWidth/2,rect.y+1,navigationButtonWidth,rect.height-2)}}else
{if(highlight){ctx.fillStyle="orange";ctx.fillRect(x1-navigationButtonWidth/2+1,rect.y+1,navigationButtonWidth-2,rect.height-2);ctx.fillStyle="lightyellow";ctx.fillRect(x1-navigationButtonWidth/2+2,rect.y+2,navigationButtonWidth-4,rect.height-4)}else
{var fill=ctx.createLinearGradient(rect.x+0.7*rect.height,rect.y+0,0.7*rect.height,rect.height);fill.addColorStop(0,color_FFFFFF);fill.addColorStop(0.1,color_D8E7FA);fill.addColorStop(0.45,color_D5E5F9);fill.addColorStop(0.45,color_B6D2F5);fill.addColorStop(0.9,color_D9E7F9);fill.addColorStop(1,color_FFFFFF);ctx.fillStyle=fill;ctx.fillRect(x1-navigationButtonWidth/2,rect.y+1,navigationButtonWidth,rect.height-2)}}if(self._spread.useWijmoTheme){if(highlight){ctx.fillStyle=hoverStyle.color}else
{ctx.fillStyle=tmpStyle.color}}else
{ctx.fillStyle=color_black}if(linePosition!==keyword_undefined&&linePosition!==keyword_null){ctx.fillRect(linePosition,Math_min(y2,y3),1,Math_max(y2,y3)-Math_min(y2,y3))}if(left){x1-=2;x2-=2;x3-=2}else
{x1+=2;x2+=2;x3+=2}ctx.beginPath();ctx.moveTo(x1,y1);ctx.lineTo(x2,y2);ctx.lineTo(x3,y3);ctx.lineTo(x1,y1);ctx.fill();ctx.restore()};_GcTab.prototype._getTabBackColor=function(ctx,isActive,isHover,text,wijmoThemeStyle){var self=this;var rect=self.getBounds();var fillStyle=ctx.createLinearGradient(rect.x+0.7*rect.height,rect.y+0,0.7*rect.height,rect.height);var sheet=self._spread.getSheetFromName(text);if(text===""&&self._firstTab>0){sheet=self._spread.getSheet(self._firstTab-1)}var fillStyleSet=false;if(wijmoThemeStyle){fillStyle.addColorStop(0,wijmoThemeStyle.backgroundColor);fillStyleSet=true}else if(sheet&&sheet._sheetTabColor){var transparentColor="rgba(0, 0, 0, 0)";ctx.fillStyle=transparentColor;ctx.fillStyle=spread._ThemeContext.getColor(sheet,sheet._sheetTabColor);var color=ctx.fillStyle;if(color===transparentColor){fillStyleSet=false}else
{if(isHover||isActive){fillStyle.addColorStop(0,color_FFFFFF);fillStyle.addColorStop(0.45,"#F1F6FD");fillStyle.addColorStop(0.9,color);fillStyle.addColorStop(1,color_FFFFFF)}else
{fillStyle=color}fillStyleSet=true}}if(!fillStyleSet){if(isHover||isActive){fillStyle.addColorStop(0,color_FFFFFF);fillStyle.addColorStop(0.6,"#F1F6FD");fillStyle.addColorStop(0.9,"#BCD5F6");fillStyle.addColorStop(1,color_FFFFFF)}else
{fillStyle.addColorStop(0,color_D8E7FA);fillStyle.addColorStop(0.45,color_D5E5F9);fillStyle.addColorStop(0.6,color_B6D2F5);fillStyle.addColorStop(1,color_D9E7F9)}}return fillStyle};_GcTab.prototype._getTabForeColor=function(wijmoThemeStyle,solidBackColor){var foreColor=color_black;if(wijmoThemeStyle){foreColor=wijmoThemeStyle.color}else if(solidBackColor){var c=spread._Color.parse(solidBackColor);if(c&&c.getBrightness()<255/2){foreColor=color_white}}return foreColor};_GcTab.prototype.drawTab=function(ctx,x,y,width,height,cornerRadius,isActive,isHover,text){ctx.save();ctx.beginPath();ctx.moveTo(x,y);ctx.lineTo(x,y+height-cornerRadius);ctx.arcTo(x,y+height,x+width,y+height,cornerRadius);ctx.lineTo(x+width,y+height);ctx.lineTo(x+width+height,y);if(!isActive){ctx.lineTo(x,y)}var self=this;var wijmoThemeStyle=keyword_null;if(self._spread.useWijmoTheme){var visualStata=0;if(isActive||isHover){visualStata=4}wijmoThemeStyle=window.gcGlobal.getWijmoThemeStyle(visualStata)}var backColor=self._getTabBackColor(ctx,isActive,isHover,text,wijmoThemeStyle);ctx.fillStyle=backColor;ctx.fill();ctx.strokeStyle=color_92A5C7;ctx.stroke();ctx.textBaseline=cssTop;var solidBackColor;if(typeof(backColor)==="string"){solidBackColor=backColor}ctx.fillStyle=self._getTabForeColor(wijmoThemeStyle,solidBackColor);var adjX=self._tabLeftPadding;ctx.textBaseline="middle";ctx.fillText(text,x+adjX,y+height/2);ctx.restore()};return _GcTab})()})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(_spread){_spread.feature("core.spread_ui",["core.migrate","core.common","core.spread"]);var const_string="string",const_boolean="boolean",const_number="number";var $=jQuery;var WijspreadOptions=(function(){function WijspreadOptions(){var self=this;self.sheetCount=1;self.name="";self.font="10pt Arial";self.allowUserZoom=true;self.allowUserResize=true;self.tabStripVisible=true;self.tabEditable=true;self.newTabVisible=true;self.useWijmoTheme=false;self.tabStripRatio=0.5;self.activeSheetIndex=0;self.sheets=[]}return WijspreadOptions})();_spread.WijspreadOptions=WijspreadOptions;var wijspreadOptions=new WijspreadOptions;function createSpread(host,options){if(!host){return}var ss=new _spread.Spread(host.id,options.sheetCount);if(typeof(options.name)===const_string&&options.name.length>0){ss.name=options.name}if(typeof(options.font)===const_string&&options.font.length>0){ss._font=options.font}if(typeof(options.allowUserZoom)===const_boolean){ss._allowUserZoom=options.allowUserZoom}if(typeof(options.allowUserResize)===const_boolean){ss._allowUserResize=options.allowUserResize}if(typeof(options.tabStripVisible)===const_boolean){ss._tabStripVisible=options.tabStripVisible}if(typeof(options.tabEditable)===const_boolean){ss._tabEditable=options.tabEditable}if(typeof(options.newTabVisible)===const_boolean){ss._newTabVisible=options.newTabVisible}if(typeof(options.useWijmoTheme)===const_boolean){ss.useWijmoTheme=options.useWijmoTheme}if(typeof(options.tabStripRatio)===const_number){ss._tabStripRatio=options.tabStripRatio}if(typeof(options.activeSheetIndex)===const_number){ss._activeSheetIndex=options.activeSheetIndex}var isStandardCanvas=_spread.util._isStandardCanvas(),isSilverlightCanvas=_spread.util._isSilverlightCanvas();if(isStandardCanvas){ss._suspendInvalidate()}if(!isStandardCanvas&&isSilverlightCanvas){ss._slSetHost(host)}else
{ss._setHost(host)}if(options.sheets&&options.sheets.length>0){var sheet;if(ss.getSheetCount()<options.sheets.length){var n=ss.getSheetCount();while(n<options.sheets.length){sheet=ss._createSheet(ss._getDefaultSheetName(n));ss.addSheet(n,sheet);n=ss.getSheetCount()}}for(var i=0;i<options.sheets.length;i++){sheet=ss.getSheet(i);sheet.applyOptions(options.sheets[i])}}if(isStandardCanvas){var repained=ss._resumeInvalidate();if(!repained){ss.invalidateLayout();ss.repaint()}}else if(isSilverlightCanvas){if(window.slcanvas&&window.slcanvas.autoLoad){window.slcanvas.autoLoad()}}}if($.ui&&$.widget){$.widget("wijmo.wijspread",{_init:function(){var host=this.element.context;createSpread(host,this.options)},spread:function(){return this.element.data("spread")},destroy:function(){var spreadTmp=this.spread();if(spreadTmp){$(window).unbind("resize.gcSpread",spreadTmp._resizeHandler);spreadTmp._dispose()}},refresh:function(){var spreadTmp=this.spread();if(spreadTmp){spreadTmp._doResize();spreadTmp.repaint()}},repaint:function(){var spreadTmp=this.spread();if(spreadTmp){spreadTmp.repaint()}},options:wijspreadOptions})}else
{var methods={init:function(options){options=$.extend(true,wijspreadOptions,options);var host=this.get(0);createSpread(host,options)},spread:function(){return this.data("spread")},destroy:function(){var spreadTmp=this.data("spread");if(spreadTmp){$(window).unbind("resize.gcSpread",spreadTmp._resizeHandler);spreadTmp._dispose()}},refresh:function(){var spreadTmp=this.data("spread");if(spreadTmp){spreadTmp._doResize();spreadTmp.repaint()}},repaint:function(){var spreadTmp=this.data("spread");if(spreadTmp){spreadTmp.repaint()}}};$.fn.wijspread=function(method){if(methods[method]){return methods[method].apply(this,Array.prototype.slice.call(arguments,1))}else if(typeof method==='object'||!method){return methods.init.apply(this,arguments)}}}($.wijmo.wijspread=wijmo.spread);var ko=window.ko;if(ko){ko.wijmo=ko.wijmo||{};ko.wijmo.wijspreadBinding={init:function(element,valueAccessor,allBindingsAccessor,viewModel){$("#"+element.id).wijspread(valueAccessor())},update:function(element,valueAccessor,allBindingsAccessor,viewModel){}};ko.bindingHandlers["wijspread"]=ko.wijmo.wijspreadBinding}})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var __extends=this.__extends||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __};var wijmo;(function(wijmo){(function(_spread){(function(Calc){_spread.feature("calc.common",["core.migrate","core.stringResource","core.common","core.globalize"]);var const_undefined="undefined",const_number="number",const_string="string",const_boolean="boolean",const_true="TRUE",const_false="FALSE",const_array="ARRAY",const_arrayRow="ARRAYROW",const_null="#NULL!",const_div0="#DIV/0!",const_value="#VALUE!",const_ref="#REF!",const_name="#NAME?",const_na="#N/A",const_num="#NUM!",ErrorList=[const_null,const_div0,const_value,const_ref,const_name,const_na,const_num],ErrorCodeList=[0x00,0x07,0x0F,0x17,0x1D,0x2A,0x24],LetterPows=[1,26,676],keyword_null=null,keyword_undefined=undefined,Math_min=Math.min,Math_max=Math.max,Math_abs=Math.abs,Math_pow=Math.pow;Calc.missingArgument={};var CalcError=(function(){function CalcError(error,errorCode){this._error=error;this._code=errorCode}CalcError.prototype.toString=function(){return this._error};CalcError.parse=function(value){var err=CalcError._parseCore(value);if(err===keyword_undefined){throw'Incorrect error!';}return err};CalcError._parseCore=function(value){if(typeof value!==const_undefined&&value!==keyword_null&&value!==''){for(var i=0;i<ErrorList.length;i++){var errItem=ErrorList[i];if(errItem===value||errItem===value.toUpperCase()){return new CalcError(errItem,ErrorCodeList[i])}}}return keyword_undefined};return CalcError})();Calc.CalcError=CalcError;Calc.Error=CalcError;var CalcErrorsNull=new CalcError(const_null,0x00),CalcErrorsDivideByZero=new CalcError(const_div0,0x07),CalcErrorsValue=new CalcError(const_value,0x0F),CalcErrorsReference=new CalcError(const_ref,0x17),CalcErrorsName=new CalcError(const_name,0x1D),CalcErrorsNotAvailable=new CalcError(const_na,0x2A),CalcErrorsNumber=new CalcError(const_num,0x24);var Errors=(function(){function Errors(){}Errors.Null=CalcErrorsNull;Errors.DivideByZero=CalcErrorsDivideByZero;Errors.Value=CalcErrorsValue;Errors.Reference=CalcErrorsReference;Errors.Name=CalcErrorsName;Errors.NotAvailable=CalcErrorsNotAvailable;Errors.Number=CalcErrorsNumber;return Errors})();Calc.Errors=Errors;;var CalcArray=(function(){function CalcArray(){}CalcArray.prototype.getRowCount=function(){return 1};CalcArray.prototype.getColumnCount=function(){return 1};CalcArray.prototype.length=function(){return this.getRowCount()*this.getColumnCount()};CalcArray.prototype.getValueByIndex=function(index){var rc=this.getColumnCount(),r=parseInt((index/rc),10),c=index%rc;return this.getValue(r,c)};CalcArray.prototype.getValue=function(row,column){return keyword_null};CalcArray.prototype.getAllValue=function(row,col,rowCount,colCount){var reulst=[];for(var i=row;i<row+rowCount;i++){reulst[i]=[];for(var j=col;j<col+colCount;j++){reulst[i][j]=this.getValue(i,j)}}return reulst};return CalcArray})();Calc.CalcArray=CalcArray;Calc.Array=CalcArray;var _ConcreteArray=(function(_super){__extends(_ConcreteArray,_super);function _ConcreteArray(value,columnCount){_super.call(this);var self=this,valueLength=value.length;self._array=value;self._rowCount=valueLength;if(arguments.length<2){columnCount=0;for(var r=0;r<valueLength;r++){columnCount=Math_max(value[r].length,columnCount)}}self._columnCount=columnCount}_ConcreteArray.prototype.getRowCount=function(){return this._rowCount};_ConcreteArray.prototype.getColumnCount=function(){return this._columnCount};_ConcreteArray.prototype.getValue=function(row,column){return this._array[row][column]};_ConcreteArray.prototype.getAllValue=function(row,col,rowCount,colCount){if(row===undefined){return this._array}var reulst=[];for(var i=row;i<row+rowCount;i++){reulst[i]=[];for(var j=col;j<col+colCount;j++){reulst[i][j]=this._array[i][j]}}return reulst};return _ConcreteArray})(CalcArray);Calc._ConcreteArray=_ConcreteArray;var _SliceArray=(function(_super){__extends(_SliceArray,_super);function _SliceArray(array,row,column,rowCount,columnCount){_super.call(this);var self=this;self._array=array;self._row=row;self._column=column;self._rowCount=rowCount;self._columnCount=columnCount}_SliceArray.prototype.getRowCount=function(){return this._rowCount};_SliceArray.prototype.getColumnCount=function(){return this._columnCount};_SliceArray.prototype.getValue=function(row,column){var self=this;return _ArrayHelper.getValue(self._array,self._row+row,self._column+column)};return _SliceArray})(CalcArray);Calc._SliceArray=_SliceArray;var _ArrayWrappingRange=(function(_super){__extends(_ArrayWrappingRange,_super);function _ArrayWrappingRange(value){_super.call(this);this._value=value}_ArrayWrappingRange.prototype.getRowCount=function(){return this._value.getRowCount(0)};_ArrayWrappingRange.prototype.getColumnCount=function(){return this._value.getColumnCount(0)};_ArrayWrappingRange.prototype.getValue=function(row,column){return this._value.getValue(0,row,column)};return _ArrayWrappingRange})(CalcArray);Calc._ArrayWrappingRange=_ArrayWrappingRange;var _ArrayWrappingScalar=(function(_super){__extends(_ArrayWrappingScalar,_super);function _ArrayWrappingScalar(value){_super.call(this);this._value=value}_ArrayWrappingScalar.prototype.getRowCount=function(){return 1};_ArrayWrappingScalar.prototype.getColumnCount=function(){return 1};_ArrayWrappingScalar.prototype.getValue=function(row,column){return this._value};return _ArrayWrappingScalar})(CalcArray);Calc._ArrayWrappingScalar=_ArrayWrappingScalar;var _OneDimensionalArray=(function(_super){__extends(_OneDimensionalArray,_super);function _OneDimensionalArray(value){_super.call(this);this._value=value}_OneDimensionalArray.prototype.getRowCount=function(){return this._value.length};_OneDimensionalArray.prototype.getColumnCount=function(){return 1};_OneDimensionalArray.prototype.getValue=function(row,column){return this._value[row]};return _OneDimensionalArray})(CalcArray);Calc._OneDimensionalArray=_OneDimensionalArray;var Reference=(function(){function Reference(){}Reference.prototype.getRangeCount=function(){return 1};Reference.prototype.getRow=function(range){return 0};Reference.prototype.getColumn=function(range){return 0};Reference.prototype.getRowCount=function(range){return 0};Reference.prototype.getColumnCount=function(range){return 0};Reference.prototype.getValue=function(range,rowOffset,columnOffset){return keyword_null};Reference.prototype.isSubtotal=function(range,rowOffset,columnOffset){return false};Reference.prototype.getSource=function(){return keyword_null};Reference.prototype.getAllValue=function(range,row,col,rowCount,colCount){var reulst=[];var sr=range===undefined?0:range;var lr=range===undefined?this.getRangeCount():range;for(var r=sr;r<=lr;r++){reulst[r]=[];for(var i=row;i<row+rowCount;i++){reulst[r][i]=[];for(var j=col;j<col+colCount;j++){reulst[r][i][j]=this.getValue(r,i,j)}}}return reulst};return Reference})();Calc.Reference=Reference;var _SheetRangeReference=(function(_super){__extends(_SheetRangeReference,_super);function _SheetRangeReference(references){_super.call(this);if(!references||references.length===0){throw _spread.SR.Exp_InvalidArgument;}var sourceReference=keyword_null;for(var i=0;i<references.length;i++){var ref=references[i];if(!sourceReference){sourceReference=ref}else
{if(ref.getRangeCount()!==sourceReference.getRangeCount()){throw _spread.SR.Exp_InvalidArgument;}for(var r=0;r<ref.getRangeCount();r++){if(ref.getColumn(r)!==sourceReference.getColumn(r)||ref.getColumnCount(r)!==sourceReference.getColumnCount(r)||ref.getRow(r)!==sourceReference.getRow(r)||ref.getRowCount(r)!==sourceReference.getRowCount(r)){throw _spread.SR.Exp_InvalidArgument;}}}}this._references=references.slice(0)}_SheetRangeReference.prototype.getSheetCount=function(){return this._references.length};_SheetRangeReference.prototype.getRangeCount=function(){return this._references[0].getRangeCount()};_SheetRangeReference.prototype.getRow=function(range){return this._references[0].getRow(range)};_SheetRangeReference.prototype.getColumn=function(range){return this._references[0].getColumn(range)};_SheetRangeReference.prototype.getRowCount=function(range){return this._references[0].getRowCount(range)};_SheetRangeReference.prototype.getColumnCount=function(range){return this._references[0].getColumnCount(range)};_SheetRangeReference.prototype.getValue=function(range,rowOffset,columnOffset){return keyword_null};_SheetRangeReference.prototype.isSubtotal=function(range,rowOffset,columnOffset){return false};_SheetRangeReference.prototype.getSource=function(){return keyword_null};return _SheetRangeReference})(Reference);Calc._SheetRangeReference=_SheetRangeReference;(function(sheetRangeReferencePrototype){sheetRangeReferencePrototype.getSource=function(sourceIndex){return this._references[sourceIndex].getSource()};sheetRangeReferencePrototype.getValue=function(sourceIndex,range,rowOffset,columnOffset){if(typeof sourceIndex===const_undefined||sourceIndex===keyword_null){sourceIndex=0}return this._references[sourceIndex].getValue(range,rowOffset,columnOffset)};sheetRangeReferencePrototype.isSubtotal=function(sourceIndex,range,rowOffset,columnOffset){if(typeof sourceIndex===const_undefined||sourceIndex===keyword_null){sourceIndex=0}return this._references[sourceIndex].isSubtotal(range,rowOffset,columnOffset)}})(_SheetRangeReference.prototype);var _ConcreteReference=(function(_super){__extends(_ConcreteReference,_super);function _ConcreteReference(source,ranges,range){_super.call(this);var self=this;self._source=source;self._ranges=ranges;self._range=arguments.length>2?range:-1}_ConcreteReference.prototype.getRangeCount=function(){return this._ranges.length};_ConcreteReference.prototype.getRow=function(range){return this._ranges[range].row};_ConcreteReference.prototype.getColumn=function(range){return this._ranges[range].col};_ConcreteReference.prototype.getRowCount=function(range){return this._ranges[range].rowCount};_ConcreteReference.prototype.getColumnCount=function(range){return this._ranges[range].colCount};_ConcreteReference.prototype.getValue=function(range,rowOffset,columnOffset){var self=this;var sourceArea=self._range<0?range:self._range;var source=self._source;return source.getValue(sourceArea,self.getRow(range)-source.getRow(sourceArea)+rowOffset,self.getColumn(range)-source.getColumn(sourceArea)+columnOffset)};_ConcreteReference.prototype.getActualValue=function(range,rowOffset,columnOffset){var self=this;var sourceArea=self._range<0?range:self._range;var source=self._source;return source.getValue(sourceArea,self.getRow(range)-source.getRow(sourceArea)+rowOffset,self.getColumn(range)-source.getColumn(sourceArea)+columnOffset)};_ConcreteReference.prototype.isSubtotal=function(range,rowOffset,columnOffset){var self=this;var sourceArea=self._range<0?range:self._range;var source=self._source;return source.isSubtotal(sourceArea,self.getRow(range)-source.getRow(sourceArea)+rowOffset,self.getColumn(range)-source.getColumn(sourceArea)+columnOffset)};_ConcreteReference.prototype.getSource=function(){return this._source.getSource()};_ConcreteReference.prototype.getAllValue=function(range,row,col,rowCount,colCount){var self=this;var source=self._source;rowCount=rowCount===undefined?self.getRowCount(0):rowCount;colCount=colCount===undefined?self.getColumnCount(0):colCount;if(range===undefined){var result=[];for(var i=0;i<self._ranges.length;i++){var startRow=self.getRow(i)-source.getRow(i);var startCol=self.getColumn(i)-source.getColumn(i);result[i]=source.getAllValue(range,startRow,startCol,rowCount,colCount)[0]}}else
{var sourceArea=self._range<0?range:self._range;var startRow=self.getRow(sourceArea)-source.getRow(sourceArea);var startCol=self.getColumn(sourceArea)-source.getColumn(sourceArea);result=source.getAllValue(sourceArea,startRow,startCol,rowCount,colCount)}return result};return _ConcreteReference})(Reference);Calc._ConcreteReference=_ConcreteReference;var _SheetReference=(function(_super){__extends(_SheetReference,_super);function _SheetReference(sheetSource){_super.call(this);this._sheet=sheetSource}_SheetReference.prototype.getRangeCount=function(){return 1};_SheetReference.prototype.getRow=function(range){return 0};_SheetReference.prototype.getColumn=function(range){return 0};_SheetReference.prototype.getRowCount=function(range){return this._sheet.getRowCount()};_SheetReference.prototype.getColumnCount=function(range){return this._sheet.getColumnCount()};_SheetReference.prototype.getValue=function(range,rowOffset,columnOffset){if(rowOffset>=0||columnOffset>=0){return this._sheet.getValue(rowOffset,columnOffset)}return CalcErrorsReference};_SheetReference.prototype.isSubtotal=function(range,rowOffset,columnOffset){var sheetSource=this._sheet;if(range===0&&rowOffset<sheetSource.getRowCount()&&columnOffset<sheetSource.getColumnCount()){var expr=sheetSource.getExpression(rowOffset,columnOffset);return expr&&expr instanceof Expressions.FunctionExpression&&expr.getFunctionName().toUpperCase()==="SUBTOTAL"}return false};_SheetReference.prototype.getSource=function(){return this};_SheetReference.prototype.getAllValue=function(range,row,col,rowCount,colCount){return this._sheet.getAllValue(range,row,col,rowCount,colCount)};return _SheetReference})(Reference);Calc._SheetReference=_SheetReference;var _TernaryCompositeConcreteReference=(function(_super){__extends(_TernaryCompositeConcreteReference,_super);function _TernaryCompositeConcreteReference(source,row,column,rowCount,columnCount,action,operand1,operand2){_super.call(this,source,[new _spread.Range(row,column,rowCount,columnCount)]);var self=this;self.Action=action;self.Operand1=operand1;self.Operand2=operand2}_TernaryCompositeConcreteReference.prototype.getValue=function(range,rowOffset,columnOffset){var self=this;return self.Action(self.getActualValue(range,rowOffset,columnOffset),self.Operand1,self.Operand2)};return _TernaryCompositeConcreteReference})(_ConcreteReference);Calc._TernaryCompositeConcreteReference=_TernaryCompositeConcreteReference;var _UnaryCompositeConcreteReference=(function(_super){__extends(_UnaryCompositeConcreteReference,_super);function _UnaryCompositeConcreteReference(source,row,column,rowCount,columnCount,action){_super.call(this,source,[new _spread.Range(row,column,rowCount,columnCount)]);this.Action=action}_UnaryCompositeConcreteReference.prototype.getValue=function(range,rowOffset,columnOffset){return this.Action(this.getActualValue(range,rowOffset,columnOffset))};return _UnaryCompositeConcreteReference})(_ConcreteReference);Calc._UnaryCompositeConcreteReference=_UnaryCompositeConcreteReference;var _BinaryCompositeConcreteReference=(function(_super){__extends(_BinaryCompositeConcreteReference,_super);function _BinaryCompositeConcreteReference(source,row,column,rowCount,columnCount,action,operand1,switchOrder){_super.call(this,source,[new _spread.Range(row,column,rowCount,columnCount)]);var self=this;self.Action=action;self.Operand1=operand1;self.SwitchOrder=switchOrder}_BinaryCompositeConcreteReference.prototype.getValue=function(range,rowOffset,columnOffset){var self=this;var actualValue=self.getActualValue(range,rowOffset,columnOffset);return self.SwitchOrder?self.Action(self.Operand1,actualValue):self.Action(actualValue,self.Operand1)};return _BinaryCompositeConcreteReference})(_ConcreteReference);Calc._BinaryCompositeConcreteReference=_BinaryCompositeConcreteReference;var Convert=(function(){function Convert(){}Convert.isNumber=function(value){if(Convert._inArray){return(typeof value===const_number)||(value instanceof Date)}else
{return(typeof value===const_number)||(!isNaN(value)&&!isNaN(parseFloat(value)))||(value instanceof Date)}};Convert.isError=function(value){return value instanceof CalcError};Convert._isCalcArray=function(value){return value instanceof CalcArray};Convert._isCalcReference=function(value){return value instanceof Reference};Convert.toResult=function(value){if(isNaN(value)||!isFinite(value)){return CalcErrorsNumber}return value};Convert._toArray=function(value){if(value instanceof CalcArray){return value}else if(value instanceof Reference){if(value.getRangeCount()===1){return new _ArrayWrappingRange(value)}}else
{return new _ArrayWrappingScalar(value)}};Convert._isNaNOrInfinite=function(value){return isNaN(value)||!isFinite(value)};Convert.toInt=function(value){var dVal=Convert.toDouble(value);if(Math_abs(dVal)<1E+21){return parseInt(dVal,10)}throw _spread.SR.Exp_InvalidCast;};Convert.toDouble=function(value){var doubleValue={value:0};if(Convert.tryToDouble(value,doubleValue)){return doubleValue.value}throw _spread.SR.Exp_InvalidCast;};Convert.tryToDouble=function(value,doubleValue){var result=keyword_null;if(typeof value===const_undefined||value===keyword_null){doubleValue.value=0;return true}var typestr=typeof value;try
{if(typestr===const_number){result=new Number(value).valueOf();if(Convert._isNaNOrInfinite(result))return false}else if(typestr===const_string){result=new Number(value).valueOf();if(Convert._isNaNOrInfinite(result))return false}else if(typestr===const_boolean)result=value?1:0;else if(value instanceof Date)result=new spread._DateTimeHelper(value).toOADate();else
return false}catch(ex){return false}doubleValue.value=result;return true};Convert.tryToBool=function(value,boolValue){try
{if(typeof value===const_undefined||value===keyword_null){return false}else if(typeof value===const_boolean){return value}else if(value instanceof Date){return new _spread._DateTimeHelper(value).toOADate()!==0}else if(Convert.isNumber(value)){return value!==0}else
{throw _spread.SR.Exp_InvalidCast;}}catch(ex){}return true};Convert.toBool=function(value){if(typeof value===const_undefined||value===keyword_null){return false}else if(typeof value===const_boolean){return value}else if(value instanceof Date){return new _spread._DateTimeHelper(value).toOADate()!==0}else if(Convert.isNumber(value)){return value!==0}else if(value instanceof Calc.Error){return false}else
{throw _spread.SR.Exp_InvalidCast;}};Convert.toString=function(value){try
{if(typeof value===const_undefined||value===keyword_null){return''}else if(typeof value===const_boolean){return value?const_true:const_false}else if(typeof value===const_string){return value}else if(value instanceof Date){return new _spread._DateTimeHelper(value).localeFormat("M/d/yyyy h:mm:ss")}else if(value instanceof CalcArray){throw _spread.SR.Exp_InvalidCast;}else
{return value.toString()}}catch(err){throw _spread.SR.Exp_InvalidCast;}};Convert.toDateTime=function(value){if(typeof value===const_undefined||value===keyword_null){return _spread._DateTimeHelper.fromOADate(0)}else if(value instanceof Date){return new Date(value)}else if(typeof value===const_string){var dateTime=_spread._DateTimeHelper.parseLocale(value);if((typeof dateTime===const_undefined||dateTime===keyword_null)&&!isNaN(value)){dateTime=_spread._DateTimeHelper.fromOADate(parseFloat(value))}if(dateTime===keyword_undefined||dateTime===keyword_null){throw _spread.SR.Exp_InvalidArgument;}return dateTime}else if(typeof value===const_number){return _spread._DateTimeHelper.fromOADate(value)}else
{throw _spread.SR.Exp_InvalidCast;}};Convert._inArray=false;return Convert})();Calc.Convert=Convert;var _Helper=(function(){function _Helper(){}_Helper._argumentExists=function(args,index){return args&&index<args.length&&(args[index]!==Calc.missingArgument)};_Helper.getArrayValue=function(array,i,j){if(typeof array===const_undefined||array===keyword_null){return CalcErrorsValue}if(i<array.getRowCount()&&j<array.getColumnCount()){return array.getValue(i,j)}if(j>=array.getColumnCount()&&array.getColumnCount()===1&&i<array.getRowCount()){return array.getValue(i,0)}if(i>=array.getRowCount()&&array.getColumnCount()===1&&j<array.getColumnCount()){return array.getValue(0,j)}return CalcErrorsValue};_Helper.tryExtractToSingleValue=function(arg){if(arg instanceof Reference){var array=Convert._toArray(arg);if(array.getRowCount()===1&&array.getColumnCount()===1){arg=array.getValue(0,0)}else
{arg=array}}if(arg instanceof CalcArray){if(arg.getRowCount()===1&&arg.getColumnCount()===1){arg=arg.getValue(0,0)}}return{value:arg,success:!(arg instanceof CalcArray)}};return _Helper})();Calc._Helper=_Helper;function ___invokeInnerAction(action,obj,rangeId,defVal,refOnly){if(rangeId===keyword_undefined||rangeId===keyword_null){rangeId=0}if(!refOnly&&obj instanceof CalcArray){return action.call(obj)}else if(obj instanceof Reference){return action.call(obj,rangeId)}return defVal}var _ArrayHelper=(function(){function _ArrayHelper(){}_ArrayHelper.isArrayOrReference=function(obj){if(obj instanceof CalcArray){Convert._inArray=true;return true}return obj instanceof Reference};_ArrayHelper.getRangeCount=function(obj){return(obj instanceof Reference)?obj.getRangeCount():1};_ArrayHelper.getLength=function(obj,rangeId){return ___invokeInnerAction(function(){if(arguments.length===0){return obj.getRowCount()*obj.getColumnCount()}return obj.getRowCount(arguments[0])*obj.getColumnCount(arguments[0])},obj,rangeId,1)};_ArrayHelper.getRowCount=function(obj,rangeId){return ___invokeInnerAction(obj.getRowCount,obj,rangeId,1)};_ArrayHelper.getColumnCount=function(obj,rangeId){return ___invokeInnerAction(obj.getColumnCount,obj,rangeId,1)};_ArrayHelper.getValueByIndex=function(obj,i,rangeId){return ___invokeInnerAction(function(){if(arguments.length===0){return obj.getValueByIndex(i)}var cc=obj.getColumnCount(arguments[0]);return obj.getValue(arguments[0],parseInt((i/cc),10),i%cc)},obj,rangeId,obj)};_ArrayHelper.getValue=function(obj,row,column,rangeId){return ___invokeInnerAction(function(){if(arguments.length===0){return obj.getValue(row,column)}return obj.getValue(arguments[0],row,column)},obj,rangeId,obj)};_ArrayHelper.isSubtotalByIndex=function(obj,i,rangeId){return ___invokeInnerAction(function(){var columnCount=obj.getColumnCount(arguments[0]);return obj.isSubtotal(arguments[0],i/columnCount,i%columnCount)},obj,rangeId,false,true)};_ArrayHelper.isSubtotal=function(obj,row,column,rangeId){return ___invokeInnerAction(function(){return obj.isSubtotal(arguments[0],row,column)},obj,rangeId,false,true)};return _ArrayHelper})();Calc._ArrayHelper=_ArrayHelper;function compareStringIgnoreCase(s1,s2){if((s1===keyword_undefined||s1===keyword_null)&&(s2===keyword_undefined||s2===keyword_null)){return true}if(((s1===keyword_undefined||s1===keyword_null)&&(s2!==keyword_undefined&&s2!==keyword_null))||((s1!==keyword_undefined&&s1!==keyword_null)&&(s2===keyword_undefined||s2===keyword_null))){return false}return s1.toLowerCase()===s2.toLowerCase()}(function(Operators){var Operator=(function(){function Operator(name){this.name=name}Operator.prototype.getName=function(){return this.name};Operator.prototype.compareTo=function(other){return compareStringIgnoreCase(this.name,other.name)};Operator.prototype.toString=function(){return this.getName()};return Operator})();Operators.Operator=Operator;var UnaryOperator=(function(_super){__extends(UnaryOperator,_super);function UnaryOperator(name){_super.call(this,name)}UnaryOperator.prototype._evaluateSingle=function(operand,context){};UnaryOperator.prototype._evaluateImp=function(operand,context){var array=keyword_null;if(operand instanceof CalcArray){array=operand}if(operand instanceof Reference){array=Convert._toArray(operand)}if(array===keyword_undefined||array===keyword_null){return this._evaluateSingle(operand,context)}if(array.length()<1){return CalcErrorsNumber}var objs=[];for(var r=0;r<array.getRowCount();r++){objs[r]=[];for(var c=0;c<array.getColumnCount();c++){objs[r][c]=this._evaluateSingle(array.getValue(r,c),context)}}return new _ConcreteArray(objs,array.getColumnCount())};UnaryOperator.prototype.evaluate=function(operand,context){return this._evaluateImp(operand,context)};return UnaryOperator})(Operator);Operators.UnaryOperator=UnaryOperator;Operators.plus=new UnaryOperator("+");Operators.plus._evaluateSingle=function(operand,context){if(operand===keyword_undefined||operand===keyword_null){return 0}var doubleLeft={value:0};if(!Convert.tryToDouble(operand,doubleLeft)){if(typeof operand==="string"){return operand}return CalcErrorsValue}return Convert.toDouble(doubleLeft.value)};Operators.negate=new UnaryOperator("-");Operators.negate._evaluateSingle=function(operand,context){if(operand===keyword_undefined||operand===keyword_null){return 0}var doubleValue={value:0};if(!Convert.tryToDouble(operand,doubleValue)){return CalcErrorsValue}return-doubleValue.value};Operators.percent=new UnaryOperator("%");Operators.percent._evaluateSingle=function(operand,context){if(operand===keyword_undefined||operand===keyword_null){return 0}var doubleValue={value:0};if(!Convert.tryToDouble(operand,doubleValue)){return CalcErrorsValue}return doubleValue.value/100};function _approxEqual(x,y){if(x===y){return true}return Math_abs(x-y)<Math_abs(x)/(16777216.0*16777216.0)}var BinaryOperator=(function(_super){__extends(BinaryOperator,_super);function BinaryOperator(name,acceptsReference){_super.call(this,name);this.acceptsReference=acceptsReference}BinaryOperator.prototype._evaluateSingle=function(left,right,context){};BinaryOperator.prototype.evaluate=function(left,right,context){var isArg0Simple=_Helper.tryExtractToSingleValue(left);var isArg1Simple=_Helper.tryExtractToSingleValue(right);if(isArg0Simple.success&&isArg1Simple.success){return this._evaluateSingle(isArg0Simple.value,isArg1Simple.value)}left=isArg0Simple.value;right=isArg1Simple.value;var rowArg0=isArg0Simple.success?-1:left.getRowCount();var colArg0=isArg0Simple.success?-1:left.getColumnCount();var rowArg1=isArg1Simple.success?-1:right.getRowCount();var colArg1=isArg1Simple.success?-1:right.getColumnCount();var row=-1,col=-1;if(!isArg0Simple.success&&!isArg1Simple.success){if(rowArg0!=1&&rowArg1!=1&&rowArg0!=rowArg1||colArg0!=1&&colArg1!=1&&colArg0!=colArg1){return CalcErrorsNotAvailable}row=rowArg0==1?rowArg1:rowArg0;col=colArg0==1?colArg1:colArg0}else if(!isArg0Simple.success){row=rowArg0;col=colArg0}else
{row=rowArg1;col=colArg1}var result=[];for(var i=0;i<row;i++){result[i]=[];for(var j=0;j<col;j++){if(!isArg0Simple.success&&(rowArg0!==1&&rowArg0<row||colArg0!==1&&colArg0<col)||!isArg1Simple.success&&(rowArg1!==1&&rowArg1<row||colArg1!==1&&colArg1<col)){result[i][j]=CalcErrorsNotAvailable}else
{result[i][j]=this._evaluateSingle(isArg0Simple.success?left:_Helper.getArrayValue(left,rowArg0===1?0:i,colArg0===1?0:j),isArg1Simple.success?right:_Helper.getArrayValue(right,rowArg1==1?0:i,colArg1===1?0:j))}}}return new _ConcreteArray(result,col)};return BinaryOperator})(Operator);Operators.BinaryOperator=BinaryOperator;Operators.add=new BinaryOperator("+",false);Operators.add._evaluateSingle=function(left,right,context){if(Convert.isError(left)){return left}if(Convert.isError(right)){return right}if(left===keyword_undefined||left===keyword_null){left=0}if(right===keyword_undefined||right===keyword_null){right=0}var doubleLeft={value:0};if(!Convert.tryToDouble(left,doubleLeft)){return CalcErrorsValue}var doubleRight={value:0};if(!Convert.tryToDouble(right,doubleRight)){return CalcErrorsValue}return doubleLeft.value+doubleRight.value};Operators.subtract=new BinaryOperator("-",false);Operators.subtract._evaluateSingle=function(left,right,context){if(Convert.isError(left)){return left}if(Convert.isError(right)){return right}if(left===keyword_undefined||left===keyword_null){left=0}if(right===keyword_undefined||right===keyword_null){right=0}var doubleLeft={value:0};if(!Convert.tryToDouble(left,doubleLeft)){return CalcErrorsValue}var doubleRight={value:0};if(!Convert.tryToDouble(right,doubleRight)){return CalcErrorsValue}return doubleLeft.value-doubleRight.value};Operators.multiply=new BinaryOperator("*",false);Operators.multiply._evaluateSingle=function(left,right,context){if(Convert.isError(left)){return left}if(Convert.isError(right)){return right}if(left===keyword_undefined||left===keyword_null){left=0}if(right===keyword_undefined||right===keyword_null){right=0}var doubleLeft={value:0};if(!Convert.tryToDouble(left,doubleLeft)){return CalcErrorsValue}var doubleRight={value:0};if(!Convert.tryToDouble(right,doubleRight)){return CalcErrorsValue}return doubleLeft.value*doubleRight.value};Operators.divide=new BinaryOperator("/",false);Operators.divide._evaluateSingle=function(left,right,context){if(right===keyword_undefined||right===keyword_null||right===''||right===0){return CalcErrorsDivideByZero}if(Convert.isError(left)){return left}if(Convert.isError(right)){return right}if(left===keyword_undefined||left===keyword_null){left=0}var doubleLeft={value:0};if(!Convert.tryToDouble(left,doubleLeft)){return CalcErrorsValue}var doubleRight={value:0};if(!Convert.tryToDouble(right,doubleRight)){return CalcErrorsValue}if(doubleRight.value===0){return CalcErrorsDivideByZero}return doubleLeft.value/doubleRight.value};Operators.exponent=new BinaryOperator("^",false);Operators.exponent._evaluateSingle=function(left,right,context){if(Convert.isError(left)){return left}if(Convert.isError(right)){return right}if(left===keyword_undefined||left===keyword_null){left=0}if(right===keyword_undefined||right===keyword_null){right=0}var doubleLeft={value:0};if(!Convert.tryToDouble(left,doubleLeft)){return CalcErrorsValue}left=doubleLeft.value;var doubleRight={value:0};if(!Convert.tryToDouble(right,doubleRight)){return CalcErrorsValue}right=doubleRight.value;if(left===0.0&&right<0){return CalcErrorsDivideByZero}return Math_pow(left,right)};Operators.concatenate=new BinaryOperator("&",false);Operators.concatenate._evaluateSingle=function(left,right,context){if(Convert.isError(left)){return left}if(Convert.isError(right)){return right}if(left===keyword_undefined||left===keyword_null){left=""}if(right===keyword_undefined||right===keyword_null){right=""}return left.toString()+right.toString()};Operators.equal=new BinaryOperator("=",false);Operators.equal._evaluateSingle=function(left,right,context){if(Convert.isError(left)){return left}if(Convert.isError(right)){return right}if(left===keyword_undefined||left===keyword_null){if(typeof right===const_string){left=""}else
{left=0}}if(right===keyword_undefined||right===keyword_null){if(typeof left===const_string){right=""}else
{right=0}}if(typeof left===const_string||typeof right===const_string){return left.toString().toUpperCase()===right.toString().toUpperCase()}else
{var doubleLeft={value:0};if(!Convert.tryToDouble(left,doubleLeft)){return CalcErrorsValue}left=doubleLeft.value;var doubleRight={value:0};if(!Convert.tryToDouble(right,doubleRight)){return CalcErrorsValue}right=doubleRight.value;var x=left;var y=right;return _approxEqual(x,y)}};Operators.notEqual=new BinaryOperator("<>",false);Operators.notEqual._evaluateSingle=function(left,right,context){var value=Operators.equal._evaluateSingle.call(this,left,right,context);if(typeof value===const_boolean){return!value}return value};Operators.lessThan=new BinaryOperator("<",false);Operators.lessThan._evaluateSingle=function(left,right,context){if(Convert.isError(left)){return left}if(Convert.isError(right)){return right}if(left===keyword_undefined||left===keyword_null){left=0}if(right===keyword_undefined||right===keyword_null){right=0}if(typeof left===const_string||typeof right===const_string){return left.toString().toUpperCase()<right.toString().toUpperCase()}else
{var doubleLeft={value:0};if(!Convert.tryToDouble(left,doubleLeft)){return CalcErrorsValue}left=doubleLeft.value;var doubleRight={value:0};if(!Convert.tryToDouble(right,doubleRight)){return CalcErrorsValue}right=doubleRight.value;var x=left;var y=right;return x<y&&!_approxEqual(x,y)}};Operators.greaterThan=new BinaryOperator(">",false);Operators.greaterThan._evaluateSingle=function(left,right,context){if(Convert.isError(left)){return left}if(Convert.isError(right)){return right}if(left===keyword_undefined||left===keyword_null){left=0}if(right===keyword_undefined||right===keyword_null){right=0}if(typeof left===const_string||typeof right===const_string){return left.toString().toUpperCase()>right.toString().toUpperCase()}else
{var doubleLeft={value:0};if(!Convert.tryToDouble(left,doubleLeft)){return CalcErrorsValue}left=doubleLeft.value;var doubleRight={value:0};if(!Convert.tryToDouble(right,doubleRight)){return CalcErrorsValue}right=doubleRight.value;var x=left;var y=right;return x>y&&!_approxEqual(x,y)}};Operators.lessThanOrEqual=new BinaryOperator("<=",false);Operators.lessThanOrEqual._evaluateSingle=function(left,right,context){if(Convert.isError(left)){return left}if(Convert.isError(right)){return right}if(left===keyword_undefined||left===keyword_null){left=0}if(right===keyword_undefined||right===keyword_null){right=0}if(typeof left===const_string||typeof right===const_string){return left.toString().toUpperCase()<=right.toString().toUpperCase()}else
{var doubleLeft={value:0};if(!Convert.tryToDouble(left,doubleLeft)){return CalcErrorsValue}left=doubleLeft.value;var doubleRight={value:0};if(!Convert.tryToDouble(right,doubleRight)){return CalcErrorsValue}right=doubleRight.value;var x=left;var y=right;return x<y||_approxEqual(x,y)}};Operators.greaterThanOrEqual=new BinaryOperator(">=",false);Operators.greaterThanOrEqual._evaluateSingle=function(left,right,context){if(Convert.isError(left)){return left}if(Convert.isError(right)){return right}if(left===keyword_undefined||left===keyword_null){left=0}if(right===keyword_undefined||right===keyword_null){right=0}if(typeof left===const_string||typeof right===const_string){return left.toString().toUpperCase()>=right.toString().toUpperCase()}else
{var doubleLeft={value:0};if(!Convert.tryToDouble(left,doubleLeft)){return CalcErrorsValue}left=doubleLeft.value;var doubleRight={value:0};if(!Convert.tryToDouble(right,doubleRight)){return CalcErrorsValue}right=doubleRight.value;var x=left;var y=right;return x>y||_approxEqual(x,y)}};Operators.range=new BinaryOperator(":",true);Operators.range.evaluate=function(left,right,context){if(left===keyword_undefined||left===keyword_null||right===keyword_undefined||right===keyword_null||left.getRangeCount()!==1||right.getRangeCount()!==1){return CalcErrorsValue}var leftSource=left.getSource();if(!leftSource||leftSource!==right.getSource()){return CalcErrorsValue}var leftRow=left.getRow(0);var leftColumn=left.getColumn(0);var rightRow=right.getRow(0);var rightColumn=right.getColumn(0);var row=Math_min(leftRow,rightRow);var column=Math_min(leftColumn,rightColumn);var rowCount=Math_max(leftRow+left.getRowCount(0),rightRow+right.getRowCount(0))-row;var columnCount=Math_max(leftColumn+left.getColumnCount(0),rightColumn+right.getColumnCount(0))-column;return new _ConcreteReference(leftSource,[{row:row,col:column,rowCount:rowCount,colCount:columnCount}])};Operators.union=new BinaryOperator(",",true);Operators.union.evaluate=function(left,right,context){if(left===keyword_undefined||left===keyword_null||right===keyword_undefined||right===keyword_null){return CalcErrorsValue}var ranges=[],i=0;for(i=0;i<left.getRangeCount();i++){ranges.push({row:left.getRow(i),col:left.getColumn(i),rowCount:left.getRowCount(i),colCount:left.getColumnCount(i)})}for(i=0;i<right.getRangeCount();i++){ranges.push({row:right.getRow(i),col:right.getColumn(i),rowCount:right.getRowCount(i),colCount:right.getColumnCount(i)})}return new _ConcreteReference(left.getSource(),ranges)};Operators.intersection=new BinaryOperator(" ",true);Operators.intersection.evaluate=function(left,right,context){if(left===keyword_undefined||left===keyword_null||right===keyword_undefined||right===keyword_null||left.getRangeCount()!==1||right.getRangeCount()!==1){return CalcErrorsValue}var leftSource=left.getSource();if(!leftSource||leftSource!==right.getSource()){return CalcErrorsValue}var leftRow=left.getRow(0);var leftColumn=left.getColumn(0);var rightRow=right.getRow(0);var rightColumn=right.getColumn(0);var row=Math_max(leftRow,rightRow);var column=Math_max(leftColumn,rightColumn);var rowCount=Math_min(leftRow+left.getRowCount(0),rightRow+right.getRowCount(0))-row;var columnCount=Math_min(leftColumn+left.getColumnCount(0),rightColumn+right.getColumnCount(0))-column;return new _ConcreteReference(leftSource,[{row:row,col:column,rowCount:rowCount,colCount:columnCount}])}})(Calc.Operators||(Calc.Operators={}));var Operators=Calc.Operators;(function(Functions){(function(ArrayArgumentEvaluateMode){ArrayArgumentEvaluateMode[ArrayArgumentEvaluateMode["normal"]=0]="normal";ArrayArgumentEvaluateMode[ArrayArgumentEvaluateMode["allwaysExpand"]=1]="allwaysExpand";ArrayArgumentEvaluateMode[ArrayArgumentEvaluateMode["neverExpand"]=2]="neverExpand"})(Functions.ArrayArgumentEvaluateMode||(Functions.ArrayArgumentEvaluateMode={}));var ArrayArgumentEvaluateMode=Functions.ArrayArgumentEvaluateMode;var Function=(function(){function Function(name,minArgs,maxArgs){var argumentsLength=arguments.length;this._init(name,argumentsLength<2?0:minArgs,argumentsLength<3?0:maxArgs)}Function.prototype._init=function(name,minArgs,maxArgs){var self=this;self.name=name;self.minArgs=minArgs;self.maxArgs=maxArgs};Function.prototype.acceptsArray=function(argIndex){return false};Function.prototype.acceptsReference=function(argIndex){return false};Function.prototype.acceptsError=function(argIndex){return false};Function.prototype.acceptsMissingArgument=function(argIndex){return false};Function.prototype.isVolatile=function(){return false};Function.prototype.isContextSensitive=function(){return false};Function.prototype.isBranch=function(){return false};Function.prototype.findTestArgument=function(){return-1};Function.prototype.findBranchArgument=function(test){return-1};Function.prototype.expandRows=function(){return true};Function.prototype.expandColumns=function(){return true};Function.prototype.precedentReference=function(){return true};Function.prototype.evaluate=function(args){};Function.prototype.evaluateWithContext=function(args,context){var self=this;if(self.isContextSensitive()){return self.evaluate(args,context)}else
{return self.evaluate(args)}};Function.prototype.toString=function(){return this.name};Function._create=function(name,fnEvaluate,options){var fn=new Functions.Functions.Function(name,0,255);if(fnEvaluate&&typeof fnEvaluate==="function"){fn.evaluate=fnEvaluate}if(options){for(var prop in options){if(options.hasOwnProperty(prop)&&prop!=='override'){fn[prop]=options[prop]}}}return fn};return Function})();Functions.Function=Function;Functions._customFunctions={};Functions._builtInFunctions={};function defineGlobalCustomFunction(name,fnEvaluate,options){if(name===keyword_undefined||name===keyword_null){throw _spread.SR.Exp_InvalidFunctionName;}var fn;name=name.toUpperCase();if(Functions.Functions._builtInFunctions.hasOwnProperty(name)){throw _spread.SR.Exp_InvalidOverrideFunction;}if(!Functions.Functions._customFunctions.hasOwnProperty(name)){fn=new Functions.Functions.Function(name,0,255);Functions.Functions._customFunctions[name]=fn}else
{fn=Functions.Functions._customFunctions[name];if(!fn){Functions.Functions._customFunctions[name]=new Functions.Functions.Function(name,0,255);fn=Functions.Functions[name.toUpperCase()]}else if(!options||!options.override){throw _spread.SR.Exp_OverrideNotAllowed;}}if(fnEvaluate&&typeof fnEvaluate==="function"){fn.evaluate=fnEvaluate}if(options){for(var prop in options){if(options.hasOwnProperty(prop)&&prop!=='override'){fn[prop]=options[prop]}}}return fn}Functions.defineGlobalCustomFunction=defineGlobalCustomFunction;function findGlobalFunction(name){if(name===keyword_undefined||name===keyword_null){return keyword_null}name=name.toUpperCase();if(Functions.Functions._builtInFunctions&&Functions.Functions._builtInFunctions.hasOwnProperty(name)){return Functions.Functions._builtInFunctions[name]}if(Functions.Functions._customFunctions.hasOwnProperty(name)){return Functions.Functions._customFunctions[name]}return keyword_null}Functions.findGlobalFunction=findGlobalFunction;$.extend({ce:{createFunction:function(name,fnEvaluate,options){return Functions.Functions.Function._create(name,fnEvaluate,options)},defineGlobalCustomFunction:function(name,fnEvaluate,options){return Functions.Functions.defineGlobalCustomFunction(name,fnEvaluate,options)},findGlobalFunction:function(name){return Functions.Functions.findGlobalFunction(name)}}})})(Calc.Functions||(Calc.Functions={}));var Functions=Calc.Functions;var RangeType={cell:0,row:1,column:2,sheet:3};function getRangeForCellReference(baseRow,baseColumn){var self=this;var myRange={row:self.row,column:self.column,rowCount:1,columnCount:1};if(self.rowRelative){myRange.row+=baseRow;myRange.row=myRange.row>=Parser.maxRowCount?myRange.row%Parser.maxRowCount:myRange.row}if(self.columnRelative){myRange.column+=baseColumn;myRange.column=myRange.column>=Parser.maxColumnCount?myRange.column%Parser.maxColumnCount:myRange.column}return myRange}function getRangeForRangeReference(baseRow,baseColumn){var range={row:-1,column:-1,rowCount:-1,columnCount:-1},startRow,endRow,startCol,endCol,self=this;if(self.isFullRow){range.column=-1;range.columnCount=-1}else
{if(self.startColumnRelative){startCol=self.startColumn+baseColumn;startCol=startCol>=Parser.maxColumnCount?startCol%Parser.maxColumnCount:startCol}else
{startCol=self.startColumn}if(self.endColumnRelative){endCol=self.endColumn+baseColumn;endCol=endCol>=Parser.maxColumnCount?endCol%Parser.maxColumnCount:endCol}else
{endCol=self.endColumn}range.column=startCol<=endCol?startCol:endCol;range.columnCount=Math_abs(endCol-startCol)+1}if(self.isFullColumn){range.row=-1;range.rowCount=-1}else
{if(self.startRowRelative){startRow=self.startRow+baseRow;startRow=startRow>=Parser.maxRowCount?startRow%Parser.maxRowCount:startRow}else
{startRow=self.startRow}if(self.endRowRelative){endRow=self.endRow+baseRow;endRow=endRow>=Parser.maxRowCount?endRow%Parser.maxRowCount:endRow}else
{endRow=self.endRow}range.row=startRow<=endRow?startRow:endRow;range.rowCount=Math_abs(endRow-startRow)+1}return range}(function(Expressions){var Expression=(function(){function Expression(){}return Expression})();Expressions.Expression=Expression;var ParenthesesExpression=(function(_super){__extends(ParenthesesExpression,_super);function ParenthesesExpression(arg){_super.call(this);this.argument=arg}return ParenthesesExpression})(Expression);Expressions.ParenthesesExpression=ParenthesesExpression;var FunctionExpression=(function(_super){__extends(FunctionExpression,_super);function FunctionExpression(fn,args){_super.call(this);this.fn=fn;this.args=args}FunctionExpression.prototype.argCount=function(){return this.args?this.args.length:0};FunctionExpression.prototype.getArg=function(index){return this.args?this.args[index]:keyword_null};FunctionExpression.prototype.getFunctionName=function(){var self=this;return typeof(self.fn)===const_string?self.fn:self.fn.name};return FunctionExpression})(Expression);Expressions.FunctionExpression=FunctionExpression;var NameExpression=(function(_super){__extends(NameExpression,_super);function NameExpression(name){_super.call(this);this.name=name}return NameExpression})(Expression);Expressions.NameExpression=NameExpression;var BangNameExpression=(function(_super){__extends(BangNameExpression,_super);function BangNameExpression(name){_super.call(this,name)}return BangNameExpression})(NameExpression);Expressions.BangNameExpression=BangNameExpression;var ExternalNameExpression=(function(_super){__extends(ExternalNameExpression,_super);function ExternalNameExpression(source,name){_super.call(this,name);this.source=source}return ExternalNameExpression})(NameExpression);Expressions.ExternalNameExpression=ExternalNameExpression;var ConstantExpression=(function(_super){__extends(ConstantExpression,_super);function ConstantExpression(value){_super.call(this);this.value=value}return ConstantExpression})(Expression);Expressions.ConstantExpression=ConstantExpression;var BooleanExpression=(function(_super){__extends(BooleanExpression,_super);function BooleanExpression(value){_super.call(this,value)}return BooleanExpression})(ConstantExpression);Expressions.BooleanExpression=BooleanExpression;var DoubleExpression=(function(_super){__extends(DoubleExpression,_super);function DoubleExpression(value,originalNumAsString){_super.call(this,value);this.originalValue=originalNumAsString}return DoubleExpression})(ConstantExpression);Expressions.DoubleExpression=DoubleExpression;var StringExpression=(function(_super){__extends(StringExpression,_super);function StringExpression(value){_super.call(this,value)}return StringExpression})(ConstantExpression);Expressions.StringExpression=StringExpression;var ErrorExpression=(function(_super){__extends(ErrorExpression,_super);function ErrorExpression(value){_super.call(this,value)}return ErrorExpression})(ConstantExpression);Expressions.ErrorExpression=ErrorExpression;var ExternalErrorExpression=(function(_super){__extends(ExternalErrorExpression,_super);function ExternalErrorExpression(source,value){_super.call(this,value);this.source=source}return ExternalErrorExpression})(ErrorExpression);Expressions.ExternalErrorExpression=ExternalErrorExpression;var SheetRangeErrorExpression=(function(_super){__extends(SheetRangeErrorExpression,_super);function SheetRangeErrorExpression(startSource,endSource,value){_super.call(this,value);this.startSource=startSource;this.endSource=endSource}return SheetRangeErrorExpression})(ErrorExpression);Expressions.SheetRangeErrorExpression=SheetRangeErrorExpression;var BangErrorExpression=(function(_super){__extends(BangErrorExpression,_super);function BangErrorExpression(value){_super.call(this,value)}return BangErrorExpression})(ErrorExpression);Expressions.BangErrorExpression=BangErrorExpression;var ArrayExpression=(function(_super){__extends(ArrayExpression,_super);function ArrayExpression(value){_super.call(this,new _ConcreteArray(value))}return ArrayExpression})(ConstantExpression);Expressions.ArrayExpression=ArrayExpression;var MissingArgumentExpression=(function(_super){__extends(MissingArgumentExpression,_super);function MissingArgumentExpression(){_super.call(this,Calc.missingArgument)}return MissingArgumentExpression})(ConstantExpression);Expressions.MissingArgumentExpression=MissingArgumentExpression;var OperatorExpression=(function(_super){__extends(OperatorExpression,_super);function OperatorExpression(operator){_super.call(this);this.operator=operator}return OperatorExpression})(Expression);Expressions.OperatorExpression=OperatorExpression;var UnaryOperatorExpression=(function(_super){__extends(UnaryOperatorExpression,_super);function UnaryOperatorExpression(operator,operand){_super.call(this,operator);this.operand=operand}return UnaryOperatorExpression})(OperatorExpression);Expressions.UnaryOperatorExpression=UnaryOperatorExpression;var BinaryOperatorExpression=(function(_super){__extends(BinaryOperatorExpression,_super);function BinaryOperatorExpression(operator,left,right){_super.call(this,operator);this.left=left;this.right=right}return BinaryOperatorExpression})(OperatorExpression);Expressions.BinaryOperatorExpression=BinaryOperatorExpression;var ReferenceExpression=(function(_super){__extends(ReferenceExpression,_super);function ReferenceExpression(){_super.call(this)}ReferenceExpression.prototype.getRange=function(baseRow,baseColumn){return keyword_null};return ReferenceExpression})(Expression);Expressions.ReferenceExpression=ReferenceExpression;var ExternalReferenceExpression=(function(_super){__extends(ExternalReferenceExpression,_super);function ExternalReferenceExpression(source){_super.call(this);this.source=source}return ExternalReferenceExpression})(ReferenceExpression);Expressions.ExternalReferenceExpression=ExternalReferenceExpression;var CellExpression=(function(_super){__extends(CellExpression,_super);function CellExpression(row,column,rowRelative,columnRelative){_super.call(this);var self=this;self.row=row;self.column=column;self.rowRelative=rowRelative;self.columnRelative=columnRelative}CellExpression.prototype.getRange=function(baseRow,baseColumn){return getRangeForCellReference.call(this,baseRow,baseColumn)};return CellExpression})(ReferenceExpression);Expressions.CellExpression=CellExpression;var BangCellExpression=(function(_super){__extends(BangCellExpression,_super);function BangCellExpression(row,column,rowRelative,columnRelative){_super.call(this,row,column,rowRelative,columnRelative)}return BangCellExpression})(CellExpression);Expressions.BangCellExpression=BangCellExpression;var ExternalCellExpression=(function(_super){__extends(ExternalCellExpression,_super);function ExternalCellExpression(source,row,column,rowRelative,columnRelative){_super.call(this,source);var self=this;self.row=row;self.column=column;self.rowRelative=rowRelative;self.columnRelative=columnRelative}ExternalCellExpression.prototype.getRange=function(baseRow,baseColumn){return getRangeForCellReference.call(this,baseRow,baseColumn)};return ExternalCellExpression})(ExternalReferenceExpression);Expressions.ExternalCellExpression=ExternalCellExpression;var RangeExpression=(function(_super){__extends(RangeExpression,_super);function RangeExpression(startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative){_super.call(this);if(arguments.length===0){this._initDefault()}else
{this.init(startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative)}}RangeExpression.prototype._initDefault=function(){var bandIndex=Parser.BAND_INDEX_CONST;var self=this;self.init(bandIndex,bandIndex,bandIndex,bandIndex,false,false,false,false);self.isFullRow=true;self.isFullColumn=true};RangeExpression.prototype.init=function(startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative){var self=this;if(startRowRelative===endRowRelative&&startRow>endRow){self.startRow=endRow;self.endRow=startRow;self.startRowRelative=endRowRelative;self.endRowRelative=startRowRelative}else
{self.startRow=startRow;self.endRow=endRow;self.startRowRelative=startRowRelative;self.endRowRelative=endRowRelative}if(startColumnRelative===endColumnRelative&&startColumn>endColumn){self.startColumn=endColumn;self.endColumn=startColumn;self.startColumnRelative=endColumnRelative;self.endColumnRelative=startColumnRelative}else
{self.startColumn=startColumn;self.endColumn=endColumn;self.startColumnRelative=startColumnRelative;self.endColumnRelative=endColumnRelative}self.isFullRow=false;self.isFullColumn=false};RangeExpression.prototype.initBand=function(startBandIndex,endBandIndex,startBandRelative,endBandRelative,isRowBand){if(startBandIndex>endBandIndex){var tmpIndex=startBandIndex;startBandIndex=endBandIndex;endBandIndex=tmpIndex;var tmpRelative=startBandRelative;startBandRelative=endBandRelative;endBandRelative=tmpRelative}var self=this;if(isRowBand){self.startRow=startBandIndex;self.startColumn=Parser.BAND_INDEX_CONST;self.endRow=endBandIndex;self.endColumn=Parser.BAND_INDEX_CONST;self.startRowRelative=startBandRelative;self.startColumnRelative=false;self.endRowRelative=endBandRelative;self.endColumnRelative=false;self.isFullRow=true;self.isFullColumn=false}else
{self.startRow=Parser.BAND_INDEX_CONST;self.startColumn=startBandIndex;self.endRow=Parser.BAND_INDEX_CONST;self.endColumn=endBandIndex;self.startRowRelative=false;self.startColumnRelative=startBandRelative;self.endRowRelative=false;self.endColumnRelative=endBandRelative;self.isFullRow=false;self.isFullColumn=true}};RangeExpression.prototype._getRangeType=function(){var self=this;if(self.isFullRow&&self.isFullColumn){return RangeType.sheet}else if(self.isFullRow){return RangeType.row}else if(self.isFullColumn){return RangeType.column}else
{return RangeType.cell}};RangeExpression.prototype.getRange=function(baseRow,baseColumn){return getRangeForRangeReference.call(this,baseRow,baseColumn)};return RangeExpression})(ReferenceExpression);Expressions.RangeExpression=RangeExpression;var BangRangeExpression=(function(_super){__extends(BangRangeExpression,_super);function BangRangeExpression(startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative){_super.call(this,startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative)}return BangRangeExpression})(RangeExpression);Expressions.BangRangeExpression=BangRangeExpression;var ExternalRangeExpression=(function(_super){__extends(ExternalRangeExpression,_super);function ExternalRangeExpression(source,startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative){_super.call(this,keyword_null);if(arguments.length===1){this._initDefault(source)}else
{this.init(source,startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative)}}ExternalRangeExpression.prototype._initDefault=function(source){var bandIndex=Parser.BAND_INDEX_CONST;var self=this;self.init(source,bandIndex,bandIndex,bandIndex,bandIndex,false,false,false,false);self.isFullRow=true;self.isFullColumn=true};ExternalRangeExpression.prototype.init=function(source,startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative){var self=this;self.source=source;if(startRowRelative===endRowRelative&&startRow>endRow){self.startRow=endRow;self.endRow=startRow;self.startRowRelative=endRowRelative;self.endRowRelative=startRowRelative}else
{self.startRow=startRow;self.endRow=endRow;self.startRowRelative=startRowRelative;self.endRowRelative=endRowRelative}if(startColumnRelative===endColumnRelative&&startColumn>endColumn){self.startColumn=endColumn;self.endColumn=startColumn;self.startColumnRelative=endColumnRelative;self.endColumnRelative=startColumnRelative}else
{self.startColumn=startColumn;self.endColumn=endColumn;self.startColumnRelative=startColumnRelative;self.endColumnRelative=endColumnRelative}};ExternalRangeExpression.prototype.initBand=function(source,startBandIndex,endBandIndex,startBandRelative,endBandRelative,isRowBand){var self=this;self.source=source;if(startBandIndex>endBandIndex){var tmpIndex=startBandIndex;startBandIndex=endBandIndex;endBandIndex=tmpIndex;var tmpRelative=startBandRelative;startBandRelative=endBandRelative;endBandRelative=tmpRelative}if(isRowBand){self.startRow=startBandIndex;self.startColumn=Parser.BAND_INDEX_CONST;self.endRow=endBandIndex;self.endColumn=Parser.BAND_INDEX_CONST;self.startRowRelative=startBandRelative;self.startColumnRelative=false;self.endRowRelative=endBandRelative;self.endColumnRelative=false;self.isFullRow=true}else
{self.startRow=Parser.BAND_INDEX_CONST;self.startColumn=startBandIndex;self.endRow=Parser.BAND_INDEX_CONST;self.endColumn=endBandIndex;self.startRowRelative=false;self.startColumnRelative=startBandRelative;self.endRowRelative=false;self.endColumnRelative=endBandRelative;self.isFullColumn=true}};ExternalRangeExpression.prototype._getRangeType=function(){var self=this;if(self.isFullRow&&self.isFullColumn){return RangeType.sheet}else if(self.isFullRow){return RangeType.row}else if(self.isFullColumn){return RangeType.column}else
{return RangeType.cell}};ExternalRangeExpression.prototype.getRange=function(baseRow,baseColumn){return getRangeForRangeReference.call(this,baseRow,baseColumn)};return ExternalRangeExpression})(ExternalReferenceExpression);Expressions.ExternalRangeExpression=ExternalRangeExpression;var SheetRangeExpression=(function(_super){__extends(SheetRangeExpression,_super);function SheetRangeExpression(startSource,endSource,startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative){_super.call(this);this.init(startSource,endSource,startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative)}SheetRangeExpression.prototype.init=function(startSource,endSource,startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative){var self=this;self.startSource=startSource;self.endSource=endSource;if(startRowRelative===endRowRelative&&startRow>endRow){self.startRow=endRow;self.endRow=startRow;self.startRowRelative=endRowRelative;self.endRowRelative=startRowRelative}else
{self.startRow=startRow;self.endRow=endRow;self.startRowRelative=startRowRelative;self.endRowRelative=endRowRelative}if(startColumnRelative===endColumnRelative&&startColumn>endColumn){self.startColumn=endColumn;self.endColumn=startColumn;self.startColumnRelative=endColumnRelative;self.endColumnRelative=startColumnRelative}else
{self.startColumn=startColumn;self.endColumn=endColumn;self.startColumnRelative=startColumnRelative;self.endColumnRelative=endColumnRelative}};SheetRangeExpression.prototype.initBand=function(startSource,endSource,startBandIndex,endBandIndex,startBandRelative,endBandRelative,isRowBand){var self=this;self.startSource=startSource;self.endSource=endSource;if(startBandIndex>endBandIndex){var tmpIndex=startBandIndex;startBandIndex=endBandIndex;endBandIndex=tmpIndex;var tmpRelative=startBandRelative;startBandRelative=endBandRelative;endBandRelative=tmpRelative}if(isRowBand){self.startRow=startBandIndex;self.startColumn=Parser.BAND_INDEX_CONST;self.endRow=endBandIndex;self.endColumn=Parser.BAND_INDEX_CONST;self.startRowRelative=startBandRelative;self.startColumnRelative=false;self.endRowRelative=endBandRelative;self.endColumnRelative=false;self.isFullRow=true}else
{self.startRow=Parser.BAND_INDEX_CONST;self.startColumn=startBandIndex;self.endRow=Parser.BAND_INDEX_CONST;self.endColumn=endBandIndex;self.startRowRelative=false;self.startColumnRelative=startBandRelative;self.endRowRelative=false;self.endColumnRelative=endBandRelative;self.isFullColumn=true}};SheetRangeExpression.prototype.getRange=function(baseRow,baseColumn){return getRangeForRangeReference.call(this,baseRow,baseColumn)};SheetRangeExpression.prototype._getRangeType=function(){var self=this;if(self.isFullRow&&self.isFullColumn){return RangeType.sheet}else if(self.isFullRow){return RangeType.row}else if(self.isFullColumn){return RangeType.column}else
{return RangeType.cell}};return SheetRangeExpression})(ReferenceExpression);Expressions.SheetRangeExpression=SheetRangeExpression;var StructReferenceExpression=(function(_super){__extends(StructReferenceExpression,_super);function StructReferenceExpression(structRef,context){_super.call(this);if(context!==keyword_null&&structRef){this._parseStructReferenceString(context,structRef)}}StructReferenceExpression.create=function(table){var expr=new StructReferenceExpression(keyword_null,keyword_null);expr._baseTable=table;expr._referencePortions=StructReferencePortions.NotSpecific;expr._columnReferenceStartInTable=0;expr._columnReferenceEndInTable=table.endColumn()-table.startColumn();expr._referenceColumnSpecifier=StructReferenceColumnSpecifier.NotSpecific;return expr};StructReferenceExpression.prototype.tableName=function(){return this._baseTable.tableName()};StructReferenceExpression.prototype._updateCatch=function(){this._catchedTableStartColumn=this._baseTable.startColumn()};StructReferenceExpression.prototype.columnReferenceStart=function(){return this._columnReferenceStartInTable+this._baseTable.startColumn()};StructReferenceExpression.prototype.columnReferenceEnd=function(){return this._columnReferenceEndInTable+this._baseTable.startColumn()};StructReferenceExpression.prototype.referencePortions=function(){return this._referencePortions};StructReferenceExpression.prototype.referenceColumnSpecifier=function(){return this._referenceColumnSpecifier};StructReferenceExpression.prototype.source=function(){return this._baseTable.source()};StructReferenceExpression.prototype.getRange=function(baseRow,baseColumn){var self=this;self._updateCatch();var startRow,startColumn,endRow,endColumn,rowCount,columnCount;var tableStartRow=self._baseTable.startRow();var tableEndRow=self._baseTable.endRow();var tableHasTotalRow=self._baseTable.hasTotalsRow();var tableHasHeadersRow=self._baseTable.hasHeadersRow();switch(self._referencePortions){case StructReferencePortions.Data:case StructReferencePortions.NotSpecific:startRow=tableStartRow+1;endRow=tableHasTotalRow?tableEndRow-1:tableEndRow;break;case StructReferencePortions.Headers:if(!tableHasHeadersRow){return keyword_null}startRow=tableStartRow;endRow=tableStartRow;break;case StructReferencePortions.Totals:if(!tableHasTotalRow){return keyword_null}startRow=tableEndRow;endRow=tableEndRow;break;case StructReferencePortions.ThisRow:startRow=baseRow;endRow=baseRow;break;case StructReferencePortions.HeadersAndData:startRow=tableHasHeadersRow?tableStartRow:tableStartRow+1;endRow=tableHasTotalRow?tableEndRow-1:tableEndRow;break;case StructReferencePortions.DataAndTotals:startRow=tableStartRow+1;endRow=tableEndRow;break;case StructReferencePortions.All:default:startRow=tableHasHeadersRow?tableStartRow:tableStartRow+1;endRow=tableEndRow;break}startColumn=self.columnReferenceStart();endColumn=self.columnReferenceEnd();if(endRow<startRow||startRow<tableStartRow||endRow>tableEndRow){return keyword_null}rowCount=endRow-startRow+1;columnCount=endColumn-startColumn+1;var range={row:startRow,column:startColumn,rowCount:rowCount,columnCount:columnCount};return range};StructReferenceExpression.prototype._parseStructReferenceString=function(context,structReference){var selfClass=StructReferenceExpression;var self=this;structReference=structReference.trim();var charIndex=0;var currentChar=structReference.charAt(charIndex);var rs=selfClass._parseTableObject(context,structReference,charIndex,currentChar);if(rs.table===keyword_null){selfClass._throwError()}var table=rs.table;self._baseTable=table;charIndex=rs.charIndex;currentChar=rs.currentChar;charIndex++;currentChar=structReference.charAt(charIndex);while(currentChar===' '){charIndex++;currentChar=structReference.charAt(charIndex)}var lbracketLever=1;var hasPortion=false;var hasColumn=false;while(lbracketLever!==0){if(currentChar==='['){lbracketLever++;charIndex++;currentChar=structReference.charAt(charIndex)}if(currentChar==='#'){if(hasPortion&&lbracketLever<=1){selfClass._throwError()}rs=selfClass._parsePortion(structReference,charIndex,currentChar,lbracketLever);var portion=rs.portion;charIndex=rs.charIndex;currentChar=rs.currentChar;lbracketLever=rs.lbracketLever;if(hasPortion){if(self._referencePortions===StructReferencePortions.Headers&&portion===StructReferencePortions.Data||portion===StructReferencePortions.Headers&&self._referencePortions===StructReferencePortions.Data){self._referencePortions=StructReferencePortions.HeadersAndData}else if(self._referencePortions===StructReferencePortions.Data&&portion===StructReferencePortions.Totals||portion===StructReferencePortions.Data&&self._referencePortions===StructReferencePortions.Totals){self._referencePortions=StructReferencePortions.DataAndTotals}else
{selfClass._throwError()}}else
{self._referencePortions=portion}hasPortion=true}else if(currentChar==='@'){if(lbracketLever>1||hasPortion){selfClass._throwError()}hasPortion=true;self._referencePortions=StructReferencePortions.ThisRow;charIndex++;currentChar=structReference.charAt(charIndex);while(currentChar===' '){charIndex++;currentChar=structReference.charAt(charIndex)}if(currentChar===','){selfClass._throwError()}}else
{var columnsStartIndex=charIndex;while(currentChar!==']'&&(currentChar!==','||lbracketLever>1)&¤tChar!=='['){if(currentChar==='\''){charIndex++}charIndex++;currentChar=structReference.charAt(charIndex)}if(charIndex>columnsStartIndex){if(hasColumn||currentChar==='['&&lbracketLever>1){selfClass._throwError()}rs=self._parseColumnRange(structReference,charIndex,currentChar,lbracketLever,columnsStartIndex);charIndex=rs.charIndex;currentChar=rs.currentChar;lbracketLever=rs.lbracketLever;hasColumn=true}if(currentChar===']'){lbracketLever--;if(lbracketLever===0){break}else if(charIndex>=structReference.length){selfClass._throwError()}charIndex++;currentChar=structReference.charAt(charIndex)}if(currentChar===','){charIndex++;currentChar=structReference.charAt(charIndex)}}}if(!hasPortion){self._referencePortions=StructReferencePortions.NotSpecific}if(!hasColumn){self._columnReferenceStartInTable=0;self._columnReferenceEndInTable=self._baseTable.endColumn()-self._baseTable.startColumn();self._referenceColumnSpecifier=StructReferenceColumnSpecifier.NotSpecific}};StructReferenceExpression.prototype._parseColumnRange=function(structReference,charIndex,currentChar,lbracketLever,columnsStartIndex){var selfClass=StructReferenceExpression;var columnStartString="";var columnEndString="";var istartStringWithBracket=false;var isEndStringWithBracket=false;if(lbracketLever>1){istartStringWithBracket=true;lbracketLever--;columnStartString=structReference.substring(columnsStartIndex,charIndex);charIndex++;currentChar=structReference.charAt(charIndex);if(currentChar===':'){charIndex++;currentChar=structReference.charAt(charIndex);isEndStringWithBracket=currentChar==='[';var rs=selfClass._getColumnEndString(structReference,charIndex,currentChar,lbracketLever);columnEndString=rs.columnEndString;charIndex=rs.charIndex;currentChar=rs.currentChar;lbracketLever=rs.lbracketLever}}else if(currentChar==='['){isEndStringWithBracket=true;var colonIndex=charIndex-1;currentChar=structReference[colonIndex];while(currentChar===' '){colonIndex--;currentChar=structReference[colonIndex]}if(currentChar!==':'){selfClass._throwError()}columnStartString=structReference.substring(columnsStartIndex,colonIndex);if(!istartStringWithBracket){columnStartString=selfClass._trimStart(columnStartString)}currentChar=structReference.charAt(charIndex);var rs=selfClass._getColumnEndString(structReference,charIndex,currentChar,lbracketLever);columnEndString=rs.columnEndString;charIndex=rs.charIndex;currentChar=rs.currentChar;lbracketLever=rs.lbracketLever}else
{if(this._referencePortions===keyword_undefined||this._referencePortions===StructReferencePortions.NotSpecific){istartStringWithBracket=true}var columnStrings=structReference.substring(columnsStartIndex,charIndex);var colonIndex=columnStrings.indexOf(':');if(colonIndex>0){columnStartString=columnStrings.substring(0,colonIndex);columnStartString=columnStartString;columnEndString=columnStrings.substring(colonIndex+1);if(columnEndString.charAt(0)!=='['){selfClass._throwError()}}else
{columnStartString=columnStrings}}var self=this;var startIndex=self._getColumnIndex(columnStartString,istartStringWithBracket);var endIndex;if(columnEndString){endIndex=self._getColumnIndex(columnEndString,isEndStringWithBracket);self._referenceColumnSpecifier=StructReferenceColumnSpecifier.ColumnRange}else
{endIndex=startIndex;self._referenceColumnSpecifier=StructReferenceColumnSpecifier.SingleColumn}if(startIndex>endIndex){var tmp=startIndex;startIndex=endIndex;endIndex=tmp}self._columnReferenceStartInTable=startIndex;self._columnReferenceEndInTable=endIndex;charIndex++;if(charIndex<structReference.length){currentChar=structReference.charAt(charIndex);while(currentChar===' '){charIndex++;currentChar=structReference.charAt(charIndex)}}return{charIndex:charIndex,currentChar:currentChar,lbracketLever:lbracketLever}};StructReferenceExpression._trimStart=function(s){var i=s.length-1;while(i>=0&&s[i]===' '){i--}while(i>=0&&s[i]!==' '){i--}if(i>=0){return s.substr(i+1,s.length-i-1)}return s};StructReferenceExpression._trimEnd=function(s){var i=0,length=s.length;while(i<length&&s[i]===' '){i++}while(i<length&&s[i]!==' '){i++}if(i<length){return s.substr(0,i)}return s};StructReferenceExpression.prototype._getColumnIndex=function(columnString,containsSpecial){if(columnString&&StructReferenceExpression._validateColumnString(columnString,containsSpecial)){var sb="";for(var i=0,columnStringLength=columnString.length;i<columnStringLength;i++){if(columnString[i]==='\''&&i<columnStringLength-1&&columnString.charAt(i+1)!=='\''){}else
{sb+=columnString.charAt(i)}}columnString=sb;var index=this._baseTable.getColumnIndexInTable(columnString);if(index<0){StructReferenceExpression._throwError()}return index}return-1};StructReferenceExpression._validateColumnString=function(columnStartString,containsSpecial,throwOnError){if(containsSpecial){return true}if(arguments.length===2){throwOnError=true}var currentChar="";currentChar=columnStartString[0];var previousChar=currentChar;if(currentChar==='#'||currentChar===' '||currentChar==='@'||currentChar===' '||currentChar===','||currentChar===':'||currentChar==='['||currentChar===']'){return false}for(var index=1;index<columnStartString.length;index++){currentChar=columnStartString[index];if(currentChar===' '||currentChar===','||currentChar===':'||currentChar==='['&&previousChar!=='\''||currentChar===']'&&previousChar!=='\''||currentChar==='@'&&previousChar!=='\''||currentChar==='#'&&previousChar!=='\''){return false}previousChar=currentChar}return true};StructReferenceExpression._getValidaColumnString=function(columnStartString){var currentChar="";var validaString="";currentChar=columnStartString.charAt(0);for(var index=0;index<columnStartString.length;index++){currentChar=columnStartString.charAt(index);if(currentChar==='['||currentChar===']'||currentChar==='@'||currentChar==='#'){validaString+="'"}validaString+=currentChar}return validaString};StructReferenceExpression._containsInvalidateColumnString=function(columnStartString){var currentChar="";currentChar=columnStartString.charAt(0);if(currentChar==='#'||currentChar===' '||currentChar==='@'||currentChar===' '||currentChar===','||currentChar===':'||currentChar==='['||currentChar===']'){return true}for(var index=1;index<columnStartString.length;index++){currentChar=columnStartString.charAt(index);if(currentChar===' '||currentChar===','||currentChar===':'||currentChar==='['||currentChar===']'||currentChar==='@'||currentChar==='#'){return true}}return false};StructReferenceExpression._getColumnEndString=function(structReference,charIndex,currentChar,lbracketLever){if(currentChar==='['){lbracketLever++;charIndex++;currentChar=structReference.charAt(charIndex);while(currentChar===' '){charIndex++;currentChar=structReference.charAt(charIndex)}}var columnEndIndex=charIndex;while(currentChar!==']'&&(currentChar!==','||lbracketLever>1)){if(currentChar==='\''){charIndex++}charIndex++;currentChar=structReference.charAt(charIndex)}if(charIndex<=columnEndIndex){StructReferenceExpression._throwError()}if(lbracketLever>1){lbracketLever--}var endString=structReference.substring(columnEndIndex,charIndex);endString=StructReferenceExpression._trimEnd(endString);return{columnEndString:endString,charIndex:charIndex,currentChar:currentChar,lbracketLever:lbracketLever}};StructReferenceExpression._parsePortion=function(structReference,charIndex,currentChar,lbracketLever){var selfClass=StructReferenceExpression;var portion=StructReferencePortions.All;var portionStartIndex=charIndex;while(currentChar!==']'){if(currentChar==='\''){charIndex++}charIndex++;currentChar=structReference.charAt(charIndex)}var portionString=structReference.substring(portionStartIndex,charIndex).toLowerCase().trim();var isPortionCorrect=false;for(var i=0;i<selfClass._structReferenceKeywordsLlowercase.length;i++){var keyword=selfClass._structReferenceKeywordsLlowercase[i];if(portionString===keyword){portion=selfClass._getPortion(portionString);isPortionCorrect=true;break}}if(!isPortionCorrect){selfClass._throwError()}charIndex++;if(charIndex>=structReference.length){lbracketLever--}else
{currentChar=structReference.charAt(charIndex);while(currentChar===' '){charIndex++;currentChar=structReference.charAt(charIndex)}if(currentChar===','){if(lbracketLever<=1){selfClass._throwError()}charIndex++;currentChar=structReference.charAt(charIndex);while(currentChar===' '){charIndex++;currentChar=structReference.charAt(charIndex)}if(currentChar==='['){lbracketLever++;charIndex++;currentChar=structReference.charAt(charIndex)}while(currentChar===' '){charIndex++;currentChar=structReference.charAt(charIndex)}}if(lbracketLever>1){lbracketLever--}}return{portion:portion,charIndex:charIndex,currentChar:currentChar,lbracketLever:lbracketLever}};StructReferenceExpression._getPortion=function(portionString){switch(portionString){case"#all":return StructReferencePortions.All;case"#data":return StructReferencePortions.Data;case"#headers":return StructReferencePortions.Headers;case"#totals":return StructReferencePortions.Totals;case"#this row":return StructReferencePortions.ThisRow;default:break}return StructReferencePortions.All};StructReferenceExpression._parseTableObject=function(context,structReference,charIndex,currentChar){var table=keyword_null;var lbracketIndex=0;while(currentChar!=='['){charIndex++;currentChar=structReference.charAt(charIndex)}lbracketIndex=charIndex;if(lbracketIndex>0){var tableName=structReference.substring(0,lbracketIndex);table=context.getTableByName(tableName)}else
{table=context.getTableByIndex(context.row,context.column)}return{table:table,charIndex:charIndex,currentChar:currentChar}};StructReferenceExpression._throwError=function(){throw"";};StructReferenceExpression.prototype.unParse=function(context,formula){var self=this;if(self._referencePortions===StructReferencePortions.NotSpecific&&self._referenceColumnSpecifier===StructReferenceColumnSpecifier.NotSpecific){formula.content+=self._baseTable.tableName();return}var selfClass=StructReferenceExpression;var inTable=context.row>=self._baseTable.startRow()&&context.column>=self._baseTable.startColumn()&&context.row<=self._baseTable.endRow()&&context.column<=self._baseTable.endColumn();if(!inTable){formula.content+=self._baseTable.tableName()}formula.content+='[';if(self._referencePortions!==StructReferencePortions.NotSpecific){var portionsString=selfClass._getPortionsString(self._referencePortions);if(self._referencePortions===StructReferencePortions.DataAndTotals||self._referencePortions===StructReferencePortions.HeadersAndData||self._referencePortions===StructReferencePortions.ThisRow){formula.content+=portionsString}else if(self._referenceColumnSpecifier!==StructReferenceColumnSpecifier.All){formula.content+='['+portionsString+']'}else
{formula.content+=portionsString}}if(self._referenceColumnSpecifier!==StructReferenceColumnSpecifier.NotSpecific){if(self._referencePortions===StructReferencePortions.ThisRow||self._referencePortions===StructReferencePortions.NotSpecific){}else
{formula.content+=", "}var startColumnName=self._baseTable.getColumnName(self._columnReferenceStartInTable);startColumnName=selfClass._getValidaColumnString(startColumnName);if(self._referenceColumnSpecifier===StructReferenceColumnSpecifier.ColumnRange){var endColumnName=self._baseTable.getColumnName(self._columnReferenceEndInTable);endColumnName=selfClass._getValidaColumnString(endColumnName);formula.content+='['+startColumnName+"]:["+endColumnName+']'}else if(self._referencePortions===StructReferencePortions.ThisRow&&!selfClass._containsInvalidateColumnString(startColumnName)||self._referencePortions===StructReferencePortions.NotSpecific){formula.content+=startColumnName}else
{formula.content+='['+startColumnName+']'}}formula.content+=']'};StructReferenceExpression._getPortionsString=function(portion){switch(portion){case StructReferencePortions.ThisRow:return"@";case StructReferencePortions.Headers:return"#Headers";case StructReferencePortions.Data:return"#Data";case StructReferencePortions.Totals:return"[#Totals]";case StructReferencePortions.HeadersAndData:return"[#Headers], [#Data]";case StructReferencePortions.DataAndTotals:return"[#Data], [#Totals]";case StructReferencePortions.All:return"#All";case StructReferencePortions.NotSpecific:break;default:break}return"#All"};StructReferenceExpression.prototype.offsetWhenInsertRemoveColumn=function(index,count,isInsert){var self=this;var startColumn=self._catchedTableStartColumn;if(index<startColumn||index===startColumn&&isInsert||index>self._columnReferenceEndInTable+startColumn){return self}count=isInsert?count:-count;var minStartColumn=index-startColumn;var newExpr=new StructReferenceExpression(keyword_null,keyword_null);newExpr._baseTable=self._baseTable;newExpr._columnReferenceEndInTable=self._columnReferenceEndInTable+count;newExpr._columnReferenceStartInTable=self._columnReferenceStartInTable;if(index<=startColumn+self._columnReferenceStartInTable){newExpr._columnReferenceStartInTable+=count;if(newExpr._columnReferenceStartInTable<minStartColumn){newExpr._columnReferenceStartInTable=minStartColumn}}newExpr._referenceColumnSpecifier=self._referenceColumnSpecifier;newExpr._referencePortions=self._referencePortions;if(newExpr._columnReferenceEndInTable<newExpr._columnReferenceStartInTable){return new ErrorExpression(CalcErrorsReference)}return newExpr};StructReferenceExpression.prototype.offsetWhenCopy=function(offsetRow,offsetColumn){var self=this;var newExpr=new StructReferenceExpression(keyword_null,keyword_null);newExpr._baseTable=self._baseTable;newExpr._columnReferenceEndInTable=self._columnReferenceEndInTable;newExpr._columnReferenceStartInTable=self._columnReferenceStartInTable;if(self._referenceColumnSpecifier===StructReferenceColumnSpecifier.SingleColumn&&offsetColumn&&offsetColumn>0){var columnCount=self._baseTable.endColumn()-self._baseTable.startColumn()+1;offsetColumn%=columnCount;newExpr._columnReferenceStartInTable+=offsetColumn;if(newExpr._columnReferenceStartInTable<0){newExpr._columnReferenceStartInTable+=columnCount}newExpr._columnReferenceEndInTable=newExpr._columnReferenceStartInTable}newExpr._referenceColumnSpecifier=self._referenceColumnSpecifier;newExpr._referencePortions=self._referencePortions;return newExpr};StructReferenceExpression._structReferenceKeywordsLlowercase=["#all","#data","#headers","#totals","#this row"];return StructReferenceExpression})(ReferenceExpression);Expressions.StructReferenceExpression=StructReferenceExpression;var ExpandExpression=(function(_super){__extends(ExpandExpression,_super);function ExpandExpression(expr,needExpendIndexs){_super.call(this);this.expr=expr;this.needExpendIndexs=needExpendIndexs}return ExpandExpression})(Expression);Expressions.ExpandExpression=ExpandExpression;var _parser;function _mappingArray(context,expr,isArrayFormula,offsetRow,offsetCol){var baseRow=context.row,baseColumn=context.column,statck=[];statck.push({expr:expr,acceptsArray:false,acceptsRef:false,index:-1});var expendCount=0;var nameCount=0;var _currentIndexneedExpend=false;var _rowOffset=offsetRow;var _colOffset=offsetCol;var _doNotExpend=false;var changed=false;var currentNode,acceptsArray,acceptsReference,newExpr,argExpr;while(statck.length!=0){currentNode=statck.pop();acceptsArray=currentNode.acceptsArray;acceptsReference=currentNode.acceptsRef;expr=currentNode.expr;newExpr=keyword_null;if(expr instanceof ParenthesesExpression){var parenExpr=expr;if(currentNode.index===-1){currentNode.index=0;statck.push(currentNode);statck.push({expr:parenExpr.argument,acceptsArray:acceptsArray,acceptsRef:acceptsRef,index:-1})}else
{if(parenExpr.argument!==argExpr){newExpr=new ParenthesesExpression(argExpr)}}}else if((expr instanceof NameExpression)||(expr instanceof ExternalNameExpression)){var nameExpr=expr;if(currentNode.index==1){nameCount--;newExpr=argExpr}else
{nameCount++;statck.push({expr:expr,acceptsArray:true,acceptsRef:true,index:1});var rExpr;if(expr instanceof ExternalNameExpression){rExpr=expr.source.getName(nameExpr.name,context.row,context.column)}else
{rExpr=context.getName(nameExpr.name)}if(!rExpr){rExpr=new Expressions.ErrorExpression(CalcErrorsName)}statck.push({expr:rExpr,acceptsArray:true,acceptsRef:true,index:-1})}}else if(expr instanceof ArrayExpression){var arrayExpression=expr;if(!acceptsArray&&(expendCount>0||isArrayFormula)){_currentIndexneedExpend=true}else if(!acceptsArray&&expendCount==0){if((_rowOffset>=arrayExpression.value.RowCount&&arrayExpression.value.RowCount>1)||(_colOffset>=arrayExpression.value.ColumnCount&&arrayExpression.value.ColumnCount>1)){newExpr=new ErrorExpression(CalcErrorsNotAvailable)}else
{try
{if(arrayExpression.value.RowCount==1){_rowOffset=0}if(arrayExpression.value.ColumnCount==1){_colOffset=0}var cValue=arrayExpression.value.getValue(_rowOffset,_colOffset);if(typeof cValue==="string"){newExpr=new StringExpression(cValue)}else if(typeof cValue==="number"){newExpr=new DoubleExpression(cValue)}if(!_parser){_parser=new Calc.Parser}newExpr=_parser.parse(arrayExpression.value.getValue(_rowOffset,_colOffset).toString(),keyword_null)}catch(ex){newExpr=new ErrorExpression(CalcErrorsNotAvailable)}}}}else if(expr instanceof CellExpression||expr instanceof ExternalCellExpression){var cellExpr=expr;if(nameCount&&(cellExpr.rowRelative||cellExpr.columnRelative)){var source=expr instanceof ExternalCellExpression?expr.source:context.source;var maxRowCount=source.getRowCount(),maxColCount=source.getColumnCount();var row=cellExpr.rowRelative?(cellExpr.row+context.activeRow)%maxRowCount:cellExpr.row;var col=cellExpr.columnRelative?(cellExpr.column+context.activeColumn)%maxColCount:cellExpr.column;row=row<0?row+maxRowCount:row;col=col<0?col+maxColCount:col;if(expr instanceof ExternalCellExpression){expr=new ExternalCellExpression(source,row,col,false,false)}else
{expr=new CellExpression(row,col,false,false)}}}else if(expr instanceof Calc.Expressions.RangeExpression||expr instanceof ExternalRangeExpression||expr instanceof SheetRangeExpression){var rangeExpr=expr;if(nameCount){if(rangeExpr.startRowRelative||rangeExpr.startColumnRelative||rangeExpr.endRowRelative||rangeExpr.endColumnRelative){var source=expr instanceof ExternalRangeExpression?expr.source:(expr instanceof SheetRangeExpression?expr.startSource:context.source);var maxRowCount=source.getRowCount(),maxColCount=source.getColumnCount();var startRow=rangeExpr.startRowRelative?(rangeExpr.startRow+context.activeRow)%maxRowCount:rangeExpr.startRow;var startCol=rangeExpr.startColumnRelative?(rangeExpr.startColumn+context.activeColumn)%maxColCount:rangeExpr.startColumn;var endRow=rangeExpr.endRowRelative?(rangeExpr.endRow+context.activeRow)%maxRowCount:rangeExpr.endRow;var endCol=rangeExpr.endColumnRelative?(rangeExpr.endColumn+context.activeColumn)%maxColCount:rangeExpr.endColumn;startRow=startRow<0?startRow+maxRowCount:startRow;startCol=startCol<0?startCol+maxColCount:startCol;endRow=endRow<0?endRow+maxRowCount:endRow;endCol=endCol<0?endCol+maxColCount:endCol;if(startRow>endRow){var tmp=startRow;startRow=endRow;endRow=tmp}if(startCol>endCol){var tmp=startCol;startCol=endCol;endCol=tmp}if(expr instanceof RangeExpression){expr=new RangeExpression(startRow,startCol,endRow,endCol,false,false,false,false)}else if(expr instanceof ExternalRangeExpression){expr=new ExternalRangeExpression(source,startRow,startCol,endRow,endCol,false,false,false,false)}else
{expr=new SheetRangeExpression(source,expr.endSource,startRow,startCol,endRow,endCol,false,false,false,false)}}}if(acceptsReference&&(acceptsArray||!isArrayFormula)){}else
{if(expendCount>0&&!isArrayFormula||expendCount===0||_doNotExpend){var range=rangeExpr.getRange(baseRow,baseColumn);if(isArrayFormula){if(!rangeExpr.isFullColumn&&range.rowCount!=1&&_rowOffset>=range.rowCount||!rangeExpr.isFullRow&&range.columnCount!=1&&_colOffset>=range.columnCount){newExpr=new ErrorExpression(CalcErrorsNotAvailable)}else
{var row=(rangeExpr.isFullColumn?0:range.row)+(range.rowCount==1?0:_rowOffset);var col=(rangeExpr.isFullRow?0:range.column)+(range.columnCount==1?0:_colOffset);if(expr instanceof SheetRangeExpression){newExpr=new SheetRangeExpression(expr.startSource,expr.endSource,row,col,row,col,false,false,false,false)}else if(expr instanceof ExternalRangeExpression){newExpr=new ExternalCellExpression(expr.source,row,col,false,false)}else
{newExpr=new CellExpression(row,col,false,false)}}}else
{if(range.rowCount>1&&range.columnCount>1||range.rowCount>1&&!rangeExpr.isFullColumn&&(baseRow<range.row||baseRow>=range.row+range.rowCount)||range.columnCount>1&&!rangeExpr.isFullRow&&(baseColumn<range.column||baseColumn>=range.column+range.columnCount)){newExpr=new ErrorExpression(CalcErrorsValue)}else
{var row=(rangeExpr.isFullColumn||range.rowCount>1)?baseRow:range.row;var col=(rangeExpr.isFullRow||range.columnCount>1)?baseColumn:range.column;if(expr instanceof SheetRangeExpression){newExpr=new SheetRangeExpression(expr.startSource,expr.endSource,row,col,row,col,false,false,false,false)}else if(expr instanceof ExternalRangeExpression){newExpr=new ExternalCellExpression(expr.source,row,col,false,false)}else
{newExpr=new CellExpression(row,col,false,false)}}}}else
{_currentIndexneedExpend=true}}}else if(expr instanceof FunctionExpression){var funcExpr=expr;var func;var argCount=funcExpr.argCount();if(typeof(funcExpr.fn)===const_string){if(!context){newExpr=new ErrorExpression(CalcErrorsName)}else
{func=context.getFunction(funcExpr.fn);if(!func){newExpr=new ErrorExpression(CalcErrorsName);continue}else if(argCount<func.minArgs||argCount>func.maxArgs){newExpr=new ErrorExpression(CalcErrorsValue);continue}else
{funcExpr.fn=func}}}func=funcExpr.fn;var argIndex=currentNode.index;var neeedExpendindexs=currentNode.neeedExpendindexs;if(argIndex<0){currentNode.noExpendCatchValue=_doNotExpend;currentNode.arrayFormulaCatchValue=isArrayFormula;if(func.arrayArgumentEvaluateMode===2){_doNotExpend=true}if(func.arrayArgumentEvaluateMode===1){isArrayFormula=true}currentNode.args=[]}else
{if(func.acceptsArray(argIndex)){expendCount--}else if(_currentIndexneedExpend){if(!neeedExpendindexs){neeedExpendindexs=[];currentNode.neeedExpendindexs=neeedExpendindexs}if(funcExpr.getArg(argIndex)!=argExpr){}neeedExpendindexs.push(argIndex)}currentNode.args.push(argExpr)}if(argIndex==argCount-1){_doNotExpend=currentNode.noExpendCatchValue;isArrayFormula=currentNode.arrayFormulaCatchValue;var args=currentNode.args;var argsChanged=false;if(args&&args.length>0){for(var argI=0;argI<args.length;argI++){if(args[argI]!==funcExpr.getArg(argI)){argsChanged=true;break}}}if(argsChanged){newExpr=new FunctionExpression(funcExpr.fn,args)}else
{newExpr=expr}if(neeedExpendindexs&&neeedExpendindexs.length>0){newExpr=new ExpandExpression(newExpr,neeedExpendindexs);_currentIndexneedExpend=true}}else
{_currentIndexneedExpend=false;argIndex++;currentNode.index=argIndex;if(func.acceptsArray(argIndex)){expendCount++}statck.push(currentNode);statck.push({expr:funcExpr.getArg(argIndex),acceptsArray:func.acceptsArray(argIndex),acceptsRef:func.acceptsReference(argIndex),index:-1})}}else if(expr instanceof UnaryOperatorExpression){var uOperExpr=expr;if(currentNode.index===-1){currentNode.index=0;statck.push(currentNode);statck.push({expr:uOperExpr.operand,acceptsArray:false,acceptsRef:false,index:-1})}else
{if(argExpr!=uOperExpr.operand){newExpr=new UnaryOperatorExpression(uOperExpr.operator,argExpr)}else
{newExpr=expr}if(_currentIndexneedExpend){var neeedExpendindexs=[];neeedExpendindexs.push(0);newExpr=new ExpandExpression(newExpr,neeedExpendindexs)}}}else if(expr instanceof BinaryOperatorExpression){var bOperExpr=expr;var acceptsRef=bOperExpr.operator.acceptsReference;if(currentNode.index===-1){currentNode.index=0;statck.push(currentNode);statck.push({expr:bOperExpr.left,acceptsArray:false,acceptsRef:acceptsRef,index:-1})}else if(currentNode.index==0){if(argExpr!=bOperExpr.left){newExpr=new BinaryOperatorExpression(bOperExpr.operator,argExpr,bOperExpr.right);currentNode.expr=newExpr}if(_currentIndexneedExpend){var neeedExpendindexs=[];neeedExpendindexs.push(0);currentNode.neeedExpendindexs=neeedExpendindexs;_currentIndexneedExpend=false}currentNode.index=1;statck.push(currentNode);statck.push({expr:bOperExpr.right,acceptsArray:false,acceptsRef:acceptsRef,index:-1})}else
{if(argExpr!=bOperExpr.right){newExpr=new BinaryOperatorExpression(bOperExpr.operator,bOperExpr.left,argExpr)}else
{newExpr=bOperExpr}var neeedExpendindexs=currentNode.neeedExpendindexs;if(_currentIndexneedExpend){if(!neeedExpendindexs){neeedExpendindexs=[]}neeedExpendindexs.push(1)}if(neeedExpendindexs){newExpr=new ExpandExpression(newExpr,neeedExpendindexs);_currentIndexneedExpend=true}}}if(newExpr===keyword_null){newExpr=expr}else if(newExpr!=expr){changed=true}argExpr=newExpr}return newExpr}Expressions._mappingArray=_mappingArray})(Calc.Expressions||(Calc.Expressions={}));var Expressions=Calc.Expressions;var StructReferencePortions={ThisRow:1,Headers:2,Data:3,Totals:8,HeadersAndData:6,DataAndTotals:12,All:14,NotSpecific:16};var StructReferenceColumnSpecifier={All:1,NotSpecific:1,SingleColumn:2,ColumnRange:4};var NumberState={None:0,Sign:1,Int:2,Dot:3,Decimal:4,Exponent:5,SignExponent:6,ScientificNotation:7,Number:8};var LatinUnicodeCategory={UppercaseLetter:0x00,LowercaseLetter:0x01,DecimalDigitNumber:0x08,OtherNumber:0x0a,SpaceSeparator:0x0b,Control:0x0e,ConnectorPunctuation:0x12,DashPunctuation:0x13,OpenPunctuation:0x14,ClosePunctuation:0x15,InitialQuotePunctuation:0x16,FinalQuotePunctuation:0x17,OtherPunctuation:0x18,MathSymbol:0x19,CurrencySymbol:0x1a,ModifierSymbol:0x1b,OtherSymbol:0x1c};var categoryForLatin1=[0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xb,0x18,0x18,0x18,0x1a,0x18,0x18,0x18,0x14,0x15,0x18,0x19,0x18,0x13,0x18,0x18,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x18,0x18,0x19,0x19,0x19,0x18,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14,0x18,0x15,0x1b,0x12,0x1b,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x14,0x19,0x15,0x19,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xe,0xb,0x18,0x1a,0x1a,0x1a,0x1a,0x1c,0x1c,0x1b,0x1c,0x1,0x16,0x19,0x13,0x1c,0x1b,0x1c,0x19,0xa,0xa,0x1b,0x1,0x1c,0x18,0x1b,0xa,0x1,0x17,0xa,0xa,0xa,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x19,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1];function isLatin1(cc){return cc<=0x00ff}function isAscii(cc){return cc<=0x007f}function isDigit(c){var cc=c.charCodeAt(0);return cc>=48&&cc<=57}function isLetter(c){var cc=c.charCodeAt(0);cc|=0x20;return(cc>=96&&cc<=122)}function isLetterOrDigit(c){var cc=c.charCodeAt(0);if(cc<=57){return cc>=48}cc|=0x20;return(cc>=96&&cc<=122)}function isSymbol(c){var cc=c.charCodeAt(0);if(!isLatin1(cc)){return false}return categoryForLatin1[cc]===LatinUnicodeCategory.MathSymbol||categoryForLatin1[cc]===LatinUnicodeCategory.CurrencySymbol||categoryForLatin1[cc]===LatinUnicodeCategory.ModifierSymbol||categoryForLatin1[cc]===LatinUnicodeCategory.OtherSymbol}function isNumber(c){var cc=c.charCodeAt(0);return cc>=48&&cc<=57}function isNumber2(str,startIndex,numberDecimalSeparator){var len=str.length;var state=NumberState.None;for(var i=startIndex;i<len;i++){var currentChar=str.charAt(i);if(isDigit(currentChar)){if(state===NumberState.None){state=NumberState.Int}else if(state===NumberState.Dot){state=NumberState.Decimal}else if(state===NumberState.Sign){state=NumberState.Int}else if(state===NumberState.Exponent||state===NumberState.SignExponent){state=NumberState.ScientificNotation}}else if(currentChar===numberDecimalSeparator){if(state===NumberState.Int){state=NumberState.Decimal}else if(state===NumberState.None||state===NumberState.Sign){state=NumberState.Dot}else
{return{result:false}}}else if(currentChar==='+'||currentChar==='-'){if(state===NumberState.None){state=NumberState.Sign}else if(state===NumberState.Exponent){state=NumberState.SignExponent}else
{return{result:true,endIndex:i-1}}}else if(currentChar==='E'||currentChar==='e'){if(state===NumberState.Int||state===NumberState.Decimal){state=NumberState.Exponent}else
{return{result:false}}}else if(state===NumberState.Int||state===NumberState.Decimal||state===NumberState.ScientificNotation){return{result:true,endIndex:i-1}}}if(state===NumberState.Int||state===NumberState.Decimal||state===NumberState.ScientificNotation){return{result:true,endIndex:len-1}}return{result:false}}var ExcelFormulaTokenType;(function(ExcelFormulaTokenType){ExcelFormulaTokenType[ExcelFormulaTokenType["Operand"]=0]="Operand";ExcelFormulaTokenType[ExcelFormulaTokenType["Function"]=1]="Function";ExcelFormulaTokenType[ExcelFormulaTokenType["Subexpression"]=2]="Subexpression";ExcelFormulaTokenType[ExcelFormulaTokenType["Argument"]=3]="Argument";ExcelFormulaTokenType[ExcelFormulaTokenType["OperatorPrefix"]=4]="OperatorPrefix";ExcelFormulaTokenType[ExcelFormulaTokenType["OperatorInfix"]=5]="OperatorInfix";ExcelFormulaTokenType[ExcelFormulaTokenType["OperatorPostfix"]=6]="OperatorPostfix";ExcelFormulaTokenType[ExcelFormulaTokenType["Whitespace"]=7]="Whitespace";ExcelFormulaTokenType[ExcelFormulaTokenType["Unknown"]=8]="Unknown"})(ExcelFormulaTokenType||(ExcelFormulaTokenType={}));;var ExcelFormulaTokenSubtype;(function(ExcelFormulaTokenSubtype){ExcelFormulaTokenSubtype[ExcelFormulaTokenSubtype["Nothing"]=0]="Nothing";ExcelFormulaTokenSubtype[ExcelFormulaTokenSubtype["Start"]=1]="Start";ExcelFormulaTokenSubtype[ExcelFormulaTokenSubtype["Stop"]=2]="Stop";ExcelFormulaTokenSubtype[ExcelFormulaTokenSubtype["Text"]=3]="Text";ExcelFormulaTokenSubtype[ExcelFormulaTokenSubtype["Number"]=4]="Number";ExcelFormulaTokenSubtype[ExcelFormulaTokenSubtype["Logical"]=5]="Logical";ExcelFormulaTokenSubtype[ExcelFormulaTokenSubtype["Error"]=6]="Error";ExcelFormulaTokenSubtype[ExcelFormulaTokenSubtype["RangeOrName"]=7]="RangeOrName";ExcelFormulaTokenSubtype[ExcelFormulaTokenSubtype["Concatenation"]=8]="Concatenation";ExcelFormulaTokenSubtype[ExcelFormulaTokenSubtype["Intersection"]=9]="Intersection";ExcelFormulaTokenSubtype[ExcelFormulaTokenSubtype["Union"]=10]="Union";ExcelFormulaTokenSubtype[ExcelFormulaTokenSubtype["RangeOp"]=11]="RangeOp"})(ExcelFormulaTokenSubtype||(ExcelFormulaTokenSubtype={}));;var FormulaToken=(function(){function FormulaToken(value,type,index,subType){if(subType===keyword_undefined||subType===keyword_null){subType=0}var self=this;self.value=value;self.type=type;self.index=index;self.subType=subType;self.children=[]}return FormulaToken})();var ExcelFormulaStack=(function(){function ExcelFormulaStack(){this._stack=[]}ExcelFormulaStack.prototype.push=function(token){this._stack.push(token)};ExcelFormulaStack.prototype.pop=function(){if(this._stack.length===0){return keyword_null}var token=this._stack.pop();return new FormulaToken("",token.type,token.index,2)};ExcelFormulaStack.prototype.current=function(){var stack=this._stack,length=stack.length;return length>0?stack[length-1]:keyword_null};return ExcelFormulaStack})();function readString(formula,startIndex,startSign,endSign){var len=formula.length;var startSignCount=(startSign===endSign)?0:1;var text="";for(var index=startIndex+1;index<len;index++){var currentChar=formula.charAt(index);if(currentChar===startSign){startSignCount++}if(currentChar===endSign){startSignCount--;if(startSign===endSign&&index+2<len&&formula.charAt(index+1)===startSign){text+=startSign;index++}else if(startSignCount!==0){text+=currentChar}else
{return{result:text,endIndex:index}}}else
{text+=currentChar}}throw _spread.SR.Exp_NoSyntax+endSign+_spread.SR.Exp_MatchSyntax+startSign+_spread.SR.SingleQuotesFullStop;}function readString2(formula,startIndex,startSign,endSign,escapeSign){var len=formula.length;var startSignCount=0;var text="";for(var index=startIndex;index<len;index++){var currentChar=formula.charAt(index);if(currentChar===escapeSign){text+=currentChar;index++;currentChar=formula.charAt(index)}if(currentChar===startSign){text+=currentChar;startSignCount++}else if(currentChar===endSign){startSignCount--;if(startSignCount!=0){text+=currentChar}else
{return{result:text,endIndex:index}}}else
{text+=currentChar}}throw _spread.SR.Exp_NoSyntax+endSign+_spread.SR.Exp_MatchSyntax+startSign+_spread.SR.SingleQuotesFullStop;}function readError(formula,startIndex){var len=formula.length;var surplusLen=len-startIndex;for(var i=0;i<ErrorList.length;i++){var err=ErrorList[i],errLength=err.length;if(startIndex+errLength>len){continue}var errStr=formula.slice(startIndex,startIndex+errLength);if(errLength<=surplusLen&&(err===errStr||err===errStr.toUpperCase())){return{result:err,endIndex:startIndex+errLength-1}}}throw _spread.SR.SingleQuote+formula.slice(startIndex)+_spread.SR.Exp_IsValid;}function getOpeatorPriority(op){if(op==="^"||op===":"){return 1}else if(op==="*"||op==="/"||op===" "){return 2}else if(op==="+"||op==="-"||op===","){return 3}else if(op==="&"){return 4}else
{return 5}}function getBinaryOperator(token){if(token.subType===11){return Operators.range}else if(token.subType===10){return Operators.union}else if(token.subType===9){return Operators.intersection}var value=token.value;if(value==="^"){return Operators.exponent}else if(value==="*"){return Operators.multiply}else if(value==="/"){return Operators.divide}else if(value==="+"){return Operators.add}else if(value==="-"){return Operators.subtract}else if(value==="&"){return Operators.concatenate}else if(value==="<"){return Operators.lessThan}else if(value==="="){return Operators.equal}else if(value===">"){return Operators.greaterThan}else if(value===">="){return Operators.greaterThanOrEqual}else if(value==="<="){return Operators.lessThanOrEqual}else if(value==="<>"){return Operators.notEqual}else if(value===":"||value==="!"){return Operators.range}else if(value===" "||value===","){return Operators.intersection}return Operators.add}function getProperty(obj,name,fallback){return(obj&&obj.hasOwnProperty(name))?obj[name]:fallback}function normalizeIndex(index,maxIndex){var firstInvalidIndex=maxIndex+1;if(index<0){return index%firstInvalidIndex+firstInvalidIndex}if(index>maxIndex){return index%firstInvalidIndex}return index}var ParserContext=(function(){function ParserContext(useR1C1,baseRow,baseColumn,option){var self=this;self.useR1C1=useR1C1;self.row=baseRow;self.column=baseColumn;self.option=option}ParserContext.prototype.getExternalSource=function(bookName,sheetName){return keyword_null};ParserContext.prototype.getExternalSourceToken=function(source){return""};ParserContext.prototype.getTableByName=function(name){return keyword_null};ParserContext.prototype.getTableByIndex=function(rowIndex,columnIndex){return keyword_null};return ParserContext})();Calc.ParserContext=ParserContext;var Parser=(function(){function Parser(option){this._init(option)}Parser.prototype._init=function(option){var self=this;self.listSeparator=getProperty(option,'listSeparator',',');self.numberDecimalSeparator=getProperty(option,'numberDecimalSeparator','.');self.arrayGroupSeparator=getProperty(option,'arrayGroupSeparator',';');self._arrayArgumentSepatator=(self.listSeparator===self.arrayGroupSeparator)?'\\':self.listSeparator;self._operatorInfix='\\+-*/^&=><: '+this.listSeparator};Parser.prototype.parse=function(formula,context){var self=this;if(!context){context=new ParserContext(false,0,0)}if(context.option){self._init(context.option)}var tokens=self._parseToToken(formula);return self._buildExpressionTree(context,tokens)};Parser.prototype.unparse=function(expr,context){if(!expr){return''}if(!context){context=new ParserContext(false,0,0)}if(context.option){this._init(context.option)}var formula={content:""};this._unparseExpression(expr,context,formula);return formula.content};Parser.prototype._unparseExpression=function(expr,context,formula){var self=this;if(expr instanceof Expressions.ConstantExpression){self._unparseConstantExpression(expr,context,formula)}else if(expr instanceof Expressions.OperatorExpression){self._unParseOperatorExpressions(expr,context,formula)}else if(expr instanceof Expressions.ReferenceExpression){self._unParseRefenceExpressions(expr,context,formula)}else if(expr instanceof Expressions.BangNameExpression){formula.content+='!';formula.content+=expr.name}else if(expr instanceof Expressions.NameExpression){formula.content+=expr.name}else if(expr instanceof Expressions.ExternalNameExpression){self._unparseSource(expr.source,context,formula);formula.content+='!';formula.content+=expr.name}else if(expr instanceof Expressions.ParenthesesExpression){formula.content+="(";self._unparseExpression(expr.argument,context,formula);formula.content+=")"}else if(expr instanceof Expressions.FunctionExpression){formula.content+=expr.getFunctionName();formula.content+="(";for(var i=0;i<expr.argCount();i++){if(i!==0){formula.content+=self.listSeparator}self._unparseExpression(expr.getArg(i),context,formula)}formula.content+=")"}else
{throw _spread.SR.Exp_NotSupport;}};Parser.prototype._unparseSource=function(source,context,formula){if(context.getExternalSourceToken){formula.content+=this._getValidSource(context.getExternalSourceToken(source),context.useR1C1)}};Parser.prototype._unparseSource2=function(startSource,endSource,context,formula){var self=this;var start={content:''};self._unparseSource(startSource,context,start);var containsSpecial=self._removeApostrophe(start);var workBookNameResult=self._removeWorkbook(start);var containsWorkbook=workBookNameResult.success;var workBookName=workBookNameResult.workBookName;var end={content:''};self._unparseSource(endSource,context,end);containsSpecial|=self._removeApostrophe(end);workBookName=self._removeWorkbook(end).workBookName;if(containsSpecial){formula.content+="'";if(containsWorkbook){formula.content+=workBookName}formula.content+=start.content;formula.content+=':';formula.content+=end.content;formula.content+="'"}else
{if(containsWorkbook){formula.content+=workBookName}formula.content+=start.content;formula.content+=':';formula.content+=end.content}};Parser.prototype._getValidSource=function(value,isR1C1){if(value===keyword_undefined||value===keyword_null||value===''){return''}var sheetRef=this._readSheetReference(value,isR1C1,true),valueLength=value.length;if(sheetRef.success){if(value.charAt(0)==="'"&&value.charAt(valueLength-1)==="'"){value=value.substr(1,valueLength-2);value=value.replace("'","''");value="'"+value+"'"}return value}sheetRef=this._readSheetReference("'"+value+"'",isR1C1,true);if(sheetRef.success){value=value.replace("'","''");value="'"+value+"'";return value}return''};Parser.prototype._unParseRefenceExpressions=function(expr,context,formula){var self=this;var baseRow=context.row,baseColumn=context.column;if(expr instanceof Expressions.BangCellExpression){formula.content+='!';var expr1=expr;self._unParseCell(context.useR1C1,baseRow,baseColumn,expr1.row,expr1.column,expr1.rowRelative,expr1.columnRelative,formula)}else if(expr instanceof Expressions.CellExpression){var expr2=expr;self._unParseCell(context.useR1C1,baseRow,baseColumn,expr2.row,expr2.column,expr2.rowRelative,expr2.columnRelative,formula)}else if(expr instanceof Expressions.ExternalCellExpression){var expr3=expr;self._unparseSource(expr3.source,context,formula);formula.content+='!';self._unParseCell(context.useR1C1,baseRow,baseColumn,expr3.row,expr3.column,expr3.rowRelative,expr3.columnRelative,formula)}else if(expr instanceof Expressions.BangRangeExpression){formula.content+='!';var expr4=expr;self._unParseRange(context.useR1C1,baseRow,baseColumn,expr4.startRow,expr4.startColumn,expr4.endRow,expr4.endColumn,expr4.startRowRelative,expr4.startColumnRelative,expr4.endRowRelative,expr4.endColumnRelative,formula,expr4._getRangeType())}else if(expr instanceof Expressions.RangeExpression){var expr5=expr;self._unParseRange(context.useR1C1,baseRow,baseColumn,expr5.startRow,expr5.startColumn,expr5.endRow,expr5.endColumn,expr5.startRowRelative,expr5.startColumnRelative,expr5.endRowRelative,expr5.endColumnRelative,formula,expr5._getRangeType())}else if(expr instanceof Expressions.ExternalRangeExpression){var expr6=expr;self._unparseSource(expr6.source,context,formula);formula.content+='!';self._unParseRange(context.useR1C1,baseRow,baseColumn,expr6.startRow,expr6.startColumn,expr6.endRow,expr6.endColumn,expr6.startRowRelative,expr6.startColumnRelative,expr6.endRowRelative,expr6.endColumnRelative,formula,expr6._getRangeType())}else if(expr instanceof Expressions.SheetRangeExpression){var expr7=expr;self._unparseSource2(expr7.startSource,expr7.endSource,context,formula);formula.content+='!';self._unParseRange(context.useR1C1,baseRow,baseColumn,expr7.startRow,expr7.startColumn,expr7.endRow,expr7.endColumn,expr7.startRowRelative,expr7.startColumnRelative,expr7.endRowRelative,expr7.endColumnRelative,formula,expr7._getRangeType())}else if(expr instanceof Expressions.StructReferenceExpression){expr.unParse(context,formula)}else
{throw _spread.SR.Exp_NotSupport;}};Parser.prototype._removeApostrophe=function(formula){var formulaContent=formula.content,length=formulaContent.length;if(formulaContent.charAt(length-1)==="'"){formula.content=formulaContent.substr(1,length-2);return true}return false};Parser.prototype._removeWorkbook=function(formula){if(formula.content.charAt(0)!=='['){return{success:false,workBookName:''}}var index=formula.content.indexOf(']');var workBookName=formula.content.substr(0,index+1);formula.content=formula.content.substr(index);return{success:true,workBookName:workBookName}};Parser.prototype._unParseCell=function(useR1C1,baseRow,baseColumn,row,column,rowRelative,columnRelative,formula,rangeType){if(rangeType===keyword_undefined||rangeType===keyword_null){rangeType=RangeType.cell}var bandIndex=Parser.BAND_INDEX_CONST;var maxRowIndex=Parser.maxRowCount-1;if((rangeType===RangeType.cell||rangeType===RangeType.row)&&row!==bandIndex&&row>(-maxRowIndex)&&row<=2*maxRowIndex){row+=(rowRelative?baseRow:0);row=normalizeIndex(row,maxRowIndex)}var maxColumnIndex=Parser.maxColumnCount-1;if((rangeType===RangeType.cell||rangeType===RangeType.column)&&column!==bandIndex&&column>-maxColumnIndex&&column<=2*maxColumnIndex){column+=(columnRelative?baseColumn:0);column=normalizeIndex(column,maxColumnIndex)}if(this._isCellIndexsError(baseRow,baseColumn,row,column,rowRelative,columnRelative,rangeType)){formula.content+=CalcErrorsReference.toString();return}var rowStr="",colStr='';if(useR1C1){rowStr='R';if(row>=0&&(baseRow!==row||!rowRelative)){if(rowRelative){rowStr=rowStr+'['+(row-baseRow)+']'}else
{row++;rowStr=rowStr+row}}if(column<0){formula.content+=rowStr;return}colStr='C';if(baseColumn!==column||!columnRelative){if(columnRelative){colStr=colStr+'['+(column-baseColumn)+']'}else
{column++;colStr=colStr+column}}if((rowRelative&&row<0)||(!rowRelative&&row<=0)){formula.content+=colStr;return}formula.content+=rowStr;formula.content+=colStr}else
{row++;rowStr=""+row;if(!rowRelative){rowStr='$'+row}if(column<0){formula.content+=rowStr;return}var remainder=column;for(var i=1,LetterPowsLength=LetterPows.length;i<LetterPowsLength;i++){var pow=LetterPows[LetterPowsLength-i];column=parseInt((remainder/pow),10);remainder=remainder%pow;if(column!==0){colStr=colStr+String.fromCharCode(column+65-1)}}colStr=colStr+String.fromCharCode(remainder+65);if(!columnRelative){colStr='$'+colStr}if(row<=0){formula.content+=colStr;return}formula.content+=colStr;formula.content+=rowStr}};Parser.prototype._isCellIndexsError=function(baseRow,baseColumn,row,column,rowRelative,columnRelative,rangeType){var hasError=false;switch(rangeType){case RangeType.sheet:break;case RangeType.cell:hasError|=(row<0);hasError|=(column<0);break;case RangeType.row:hasError|=(row<0);break;case RangeType.column:hasError|=(column<0);break}return hasError};Parser.prototype._unParseRange=function(useR1C1,baseRow,baseColumn,startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative,formula,rangeType){if(rangeType===keyword_undefined||rangeType===keyword_null){rangeType=RangeType.cell}this._unParseCell(useR1C1,baseRow,baseColumn,startRow,startColumn,startRowRelative,startColumnRelative,formula,rangeType);var bandIndex=Parser.BAND_INDEX_CONST;if(useR1C1&&startRow===endRow&&startColumn===endColumn&&(endRow===bandIndex||endColumn===bandIndex)){return}if(endRow!==bandIndex||endColumn!==bandIndex){formula.content+=':';this._unParseCell(useR1C1,baseRow,baseColumn,endRow,endColumn,endRowRelative,endColumnRelative,formula,rangeType)}};Parser.prototype._unParseOperatorExpressions=function(expr,context,formula){var self=this;if(expr instanceof Expressions.UnaryOperatorExpression){var op=expr.operator;if(op===Operators.percent){self._unparseExpression(expr.operand,context,formula);formula.content+=op.name}else
{formula.content+=op.name;self._unparseExpression(expr.operand,context,formula)}}else if(expr instanceof Expressions.BinaryOperatorExpression){var leftPart={content:""};var rightPart={content:""};self._unparseExpression(expr.right,context,rightPart);var leftIsBin=expr.left instanceof Expressions.BinaryOperatorExpression;var rightIsBin=expr.right instanceof Expressions.BinaryOperatorExpression;var priority=getOpeatorPriority(expr.operator.name);if(leftIsBin&&getOpeatorPriority(expr.left.operator.name)>priority){leftPart.content+='(';self._unparseExpression(expr.left,context,leftPart);leftPart.content+=')'}else
{self._unparseExpression(expr.left,context,leftPart)}if(rightIsBin&&getOpeatorPriority(expr.right.operator.name)>priority){rightPart.content+='(';self._unparseExpression(expr.right,context,rightPart);rightPart.content+='('}formula.content+=leftPart.content;formula.content+=expr.operator instanceof Operators.UnaryOperator?self.listSeparator:expr.operator.name;formula.content+=rightPart.content}else
{throw _spread.SR.Exp_NotSupport;}};Parser.prototype._unparseConstantExpression=function(expr,context,formula){var self=this;var errMsg=_spread.SR.Exp_InvalidArray;if(expr instanceof Expressions.StringExpression){formula.content+='"';formula.content+=expr.value;formula.content+='"'}else if(expr instanceof Expressions.DoubleExpression){formula.content+=expr.originalValue}else if(expr instanceof Expressions.BooleanExpression){formula.content+=expr.value?const_true:const_false}else if(expr instanceof Expressions.ArrayExpression){formula.content+='{';var array=expr.value;if(array.getRowCount()<=0){throw errMsg;}var bandIndex=Parser.BAND_INDEX_CONST;var colCount=bandIndex;for(var rowIndex=0;rowIndex<array.getRowCount();rowIndex++){if(rowIndex>=1){formula.content+=self.arrayGroupSeparator}for(var columnIndex=0;columnIndex<array.getColumnCount();columnIndex++){if(colCount!==bandIndex&&(colCount!==array.getColumnCount()||array.getColumnCount()===0)){throw errMsg;}if(columnIndex!==0){formula.content+=self._arrayArgumentSepatator}var v=array.getValue(rowIndex,columnIndex);if(v===keyword_undefined||v===keyword_null){throw errMsg;}if(v instanceof Expressions.Expression){self._unparseExpression(v,context,formula)}else
{if(typeof v===const_string){formula.content+='"';formula.content+=v;formula.content+='"'}else if(typeof v===const_boolean){formula.content+=v?const_true:const_false}else
{formula.content+=v.toString()}}}}formula.content+='}'}else if(expr instanceof Expressions.ExternalErrorExpression){self._unparseSource(expr.source,context,formula);formula.content+='!';formula.content+=expr.value.toString()}else if(expr instanceof Expressions.SheetRangeErrorExpression){self._unparseSource2(expr.startSource,expr.endSource,context,formula);formula.content+='!';formula.content+=expr.value.toString()}else if(expr instanceof Expressions.BangErrorExpression){formula.content+='!';formula.content+=expr.value.toString()}else if(expr instanceof Expressions.ErrorExpression){formula.content+=expr.value.toString()}else if(expr instanceof Expressions.MissingArgumentExpression){}else
{throw _spread.SR.Exp_NotSupport;}};Parser.prototype._parseToToken=function(formula){var self=this;var len=formula.length;var tokens1=[];var stack=new ExcelFormulaStack;var value="";var const_atIndexOn=_spread.SR.AtIndexOn;var currentToken;var tokenStartIndex=0;var startIndex=0;while(startIndex<len&&formula.charAt(startIndex)===' '){startIndex++}if(formula.charAt(startIndex)==='='){startIndex++}for(var index=startIndex;index<len;index++){var currentChar=formula.charAt(index);var rs;if(currentChar==='"'){rs=readString(formula,index,'"','"');tokens1.push(new FormulaToken(rs.result,0,index,3));index=rs.endIndex;tokenStartIndex=index+1}else if(currentChar==="'"){rs=readString(formula,index,"'","'");value+="'";value+=rs.result;value+="'";index=rs.endIndex}else if(currentChar==='['){rs=readString2(formula,index,'[',']',"'");value+=rs.result;value+=']';index=rs.endIndex}else if(currentChar==='\r'||currentChar==='\n'){continue}else if(currentChar==="#"){var re=readError(formula,index);var nextChar=index<len?formula.charAt(index+1):'\0';if(index>0&&formula.charAt(index-1)==='!'){value+=re.result}else if(const_ref===re.result.toUpperCase()&&index<len&&(isLetterOrDigit(nextChar)||nextChar==='$')){value+=re.result}else
{tokens1.push(new FormulaToken(re.result,0,index,6));tokenStartIndex=index+1}index=re.endIndex}else if(currentChar==='+'||currentChar==='-'){var previous=tokens1.length===0?null:tokens1[tokens1.length-1];if(value.length!==0){tokens1.push(new FormulaToken(value,0,tokenStartIndex));tokens1.push(new FormulaToken(currentChar,5,index));value="";tokenStartIndex=index+1}else
{if(previous&&previous.type===7){tokens1.pop();var previous=tokens1[tokens1.length-1]}if(previous&&((previous.type===1&&previous.subType===2)||(previous.type===2&&previous.subType===2)||(previous.type===6)||(previous.type===0))){tokens1.push(new FormulaToken(currentChar,5,index));tokenStartIndex=index+1}else
{tokens1.push(new FormulaToken(currentChar,4,index));tokenStartIndex=index+1}}}else if(currentChar===self.numberDecimalSeparator||isDigit(currentChar)){var isNum;if(value.length>0){value+=currentChar}else if((isNum=isNumber2(formula,index,self.numberDecimalSeparator)).result){var endIndex=isNum.endIndex;var num=formula.slice(index,endIndex+1);while(endIndex<=len-2&&formula.charAt(endIndex+1)===' '){endIndex++}if(endIndex<=len-2&&formula.charAt(endIndex+1)===':'){value+=num;value+=':';endIndex++}else
{tokens1.push(new FormulaToken(num,0,index,4))}tokenStartIndex=index+1;index=endIndex}else
{value+=currentChar}}else if(currentChar==='{'){if(value.length>0){throw _spread.SR.Exp_FormulaInvalid+_spread.SR.SingleQuote+"{"+const_atIndexOn+index+_spread.SR.FullStop;}currentToken=new FormulaToken(const_array,1,index,1);tokens1.push(currentToken);stack.push(currentToken);currentToken=new FormulaToken(const_arrayRow,1,index,1);tokens1.push(currentToken);stack.push(currentToken);tokenStartIndex=index+1}else if(currentChar===self.arrayGroupSeparator&&stack.current()&&(stack.current().value===const_array||stack.current().value===const_arrayRow)){if(value.length>0){tokens1.push(new FormulaToken(value,0,tokenStartIndex));value=""}if(!stack.current()){throw _spread.SR.Exp_FormulaInvalid+_spread.SR.SingleQuote+currentChar+const_atIndexOn+index+_spread.SR.FullStop;}tokens1.push(stack.pop());tokens1.push(new FormulaToken(self.listSeparator,3,index));currentToken=new FormulaToken(const_arrayRow,1,index+1,1);tokens1.push(currentToken);stack.push(currentToken);tokenStartIndex=index+1}else if(currentChar==='}'){if(value.length>0){tokens1.push(new FormulaToken(value,0,tokenStartIndex));value=""}if(!stack.current()){throw _spread.SR.Exp_FormulaInvalid+_spread.SR.SingleQuote+currentChar+const_atIndexOn+index+_spread.SR.FullStop;}tokens1.push(stack.pop());tokens1.push(stack.pop());tokenStartIndex=index+1}else if(currentChar===' '){var sIndex=index;index++;while((index<len)&&value.charAt(value.length-1)===' '){index++}if(value.length>0&&value.charAt(value.length-1)!==':'&&index<len&&formula.charAt(index)!==':'){tokens1.push(new FormulaToken(value,0,tokenStartIndex));value="";tokens1.push(new FormulaToken("",7,sIndex));tokenStartIndex=index}index--}else if((index+2)<=len&¤tChar==='<'&&formula.charAt(index+1)==='='||currentChar==='>'&&formula.charAt(index+1)==='='||currentChar==='<'&&formula.charAt(index+1)==='>'){if(value.length>0){tokens1.push(new FormulaToken(value,0,tokenStartIndex));value=""}tokens1.push(new FormulaToken(formula.slice(index,index+2),5,index,5));index++;tokenStartIndex=index+1}else if(currentChar==='%'){if(value.length>0){tokens1.push(new FormulaToken(value,0,tokenStartIndex));value=""}tokens1.push(new FormulaToken(formula.charAt(index),6,index));tokenStartIndex=index+1}else if(currentChar==='+'||currentChar==='-'||currentChar==='*'||currentChar==='/'||currentChar==='='||currentChar==='>'||currentChar==='<'||currentChar==='&'||currentChar==='^'){if(value.length>0){tokens1.push(new FormulaToken(value,0,tokenStartIndex));value=""}tokens1.push(new FormulaToken(currentChar,5,index));tokenStartIndex=index+1}else if(currentChar==='('){if(value.length>0){var lastChar=value.charAt(value.length-1);if(lastChar===':'||lastChar===self.listSeparator||lastChar===' '){value=value.slice(0,value.length-1);tokens1.push(new FormulaToken(value,0,tokenStartIndex,7));tokens1.push(new FormulaToken(lastChar,5,index-1,0));currentToken=new FormulaToken("",2,index,1);tokens1.push(currentToken);stack.push(currentToken)}else
{var refOpIndex=value.indexOf(':');var refOpToken=':';if(refOpIndex===-1){refOpIndex=value.indexOf(self.listSeparator);refOpToken=self.listSeparator}if(refOpIndex===-1){refOpIndex=value.indexOf(' ');refOpToken=' '}if(refOpIndex!==-1&&refOpIndex>0){tokens1.push(new FormulaToken(value.substr(0,refOpIndex),0,tokenStartIndex,7));tokens1.push(new FormulaToken(refOpToken,5,refOpIndex,0));value=value.slice(refOpIndex+1);currentToken=new FormulaToken(value.toUpperCase(),1,index,1);tokens1.push(currentToken);stack.push(currentToken)}else
{currentToken=new FormulaToken(value.toUpperCase(),1,index,1);tokens1.push(currentToken);stack.push(currentToken)}}value=""}else
{currentToken=new FormulaToken("",2,index,1);tokens1.push(currentToken);stack.push(currentToken)}tokenStartIndex=index+1}else if(currentChar===self.listSeparator||currentChar===self.arrayGroupSeparator){if(value.length>0){tokens1.push(new FormulaToken(value,0,tokenStartIndex));value=""}if(!stack.current()||stack.current().type!==1){tokens1.push(new FormulaToken(self.listSeparator,5,index,10))}else
{tokens1.push(new FormulaToken(self._arrayArgumentSepatator,3,index))}tokenStartIndex=index+1}else if(currentChar===')'){if(value.length>0){tokens1.push(new FormulaToken(value,0,tokenStartIndex));value=""}if(!stack.current()){throw _spread.SR.Exp_FormulaInvalid+_spread.SR.SingleQuote+currentChar+const_atIndexOn+index+_spread.SR.FullStop;}tokens1.push(stack.pop());tokenStartIndex=index+1}else if(currentChar===':'){if(value.length===0&&tokens1[tokens1.length-1].subType===2){tokens1.push(new FormulaToken(":",5,index,11));tokenStartIndex=index+1}else
{value+=':'}}else
{value+=currentChar}}if(value.length>0){tokens1.push(new FormulaToken(value,0,tokenStartIndex))}return self._processTokens(tokens1)};Parser.prototype._processTokens=function(tokens1){var tokens2=this._removeWhiteSpace(tokens1);var stack=[];var rootToken=new FormulaToken("",8,0,1);stack.push(rootToken);var parent;var length=tokens2.length;for(var i=0;i<length;i++){var currentToken=tokens2[i];if(!currentToken){continue}var previous=i===0?keyword_null:tokens2[i-1];var next=i===length-1?keyword_null:tokens2[i+1];if(currentToken.type===0&¤tToken.subType===0){var value=currentToken.value.toUpperCase();if(value===const_true||value===const_false){currentToken.subType=5;currentToken.value=value}else
{currentToken.subType=7}}else if(currentToken.type===1){if(currentToken.value.length>0){if(currentToken.value.charAt(0)==='@'){currentToken.value=currentToken.value.substr(1)}}}if(stack.length===0){throw _spread.SR.Exp_InvalidTokenAt+currentToken.index+_spread.SR.FullStop;}parent=stack[stack.length-1];if(parent.value===const_arrayRow){if(currentToken.type!==3&¤tToken.subType!==6&¤tToken.subType!==2&¤tToken.subType!==5&¤tToken.subType!==4&¤tToken.subType!==3&¤tToken.type!==4){throw _spread.SR.Exp_InvalidArrayAt+currentToken.index+_spread.SR.FullStop;}}switch(currentToken.type){case 0:if(previous&&(previous.type===0||previous.type===6||previous.type===1&&previous.subType===2||previous.type===2&&previous.subType===2)){throw _spread.SR.Exp_InvalidTokenAt+currentToken.index+_spread.SR.FullStop;}break;case 1:case 2:if(currentToken.value===const_array&¤tToken.type===1&¤tToken.subType===1&&!previous){break}else if(currentToken.subType===2&&(!previous||previous.type===4||previous.type===5)||currentToken.subType===1&&previous&&(!next||previous.type===6||previous.subType===2)){throw _spread.SR.Exp_InvalidTokenAt+currentToken.index+_spread.SR.FullStop;}if(currentToken.subType===2&¤tToken.type===2&&previous.subType===1){throw _spread.SR.Exp_InvalidTokenAt+currentToken.index+_spread.SR.FullStop;}if(currentToken.subType===2&¤tToken.type===1&&previous.type===2&&previous.subType===1){throw _spread.SR.Exp_InvalidTokenAt+currentToken.index+_spread.SR.FullStop;}break;case 3:if(!next||!previous||previous.type===5||previous.type===4){throw _spread.SR.Exp_InvalidTokenAt+currentToken.index+_spread.SR.FullStop;}break;case 4:if(!next||previous&&(previous.type===6)){throw _spread.SR.Exp_InvalidTokenAt+currentToken.index+_spread.SR.FullStop;}break;case 5:if(!next||!previous||previous.type===5||previous.type===4||previous.type===3||previous.type===1&&previous.subType===1||previous.type===2&&previous.subType===1){throw _spread.SR.Exp_InvalidTokenAt+currentToken.index+_spread.SR.FullStop;}break;case 6:if(!previous||previous.type===4||previous.type===5||previous.type===1&&previous.subType===1||previous.type===2&&previous.subType===1){throw _spread.SR.Exp_InvalidTokenAt+currentToken.index+_spread.SR.FullStop;}break;default:throw _spread.SR.Exp_InvalidTokenAt+currentToken.index+_spread.SR.FullStop;}if(currentToken.subType===1){stack.push(currentToken);parent.children.push(currentToken)}else if(currentToken.subType===2){if(stack.length===0){var currentChar;if(currentToken.value===const_array||currentToken.value===const_arrayRow){currentChar='}'}else
{currentChar=')'}throw _spread.SR.Exp_FormulaInvalid+_spread.SR.SingleQuote+currentChar+_spread.SR.SingleQuoteAt+currentToken.index+_spread.SR.FullStop;}stack.pop()}else
{parent.children.push(currentToken)}}return rootToken.children};Parser.prototype._removeWhiteSpace=function(tokens1){var tokens2=[];var length=tokens1.length;for(var i=0;i<length;i++){var token=tokens1[i];if(!token){continue}if(token.type!==7){tokens2.push(token);continue}var previous=i==0?keyword_null:tokens1[i-1];var next=i==length-1?keyword_null:tokens1[i+1];if(!previous||!next){continue}if((((previous.type===1)&&(previous.subType===2))||((previous.type===2)&&(previous.subType===2))||(previous.type===0))&&(((next.type===1)&&(next.subType===1))||((next.type===2)&&(next.subType===1))||(next.type===0))){tokens2.push(new FormulaToken(" ",5,token.index,9))}}return tokens2};Parser.prototype._buildExpressionNode=function(context,token){var self=this;var currentExpression;if(token.type===1){if(token.value===const_array){currentExpression=self._buildArraryExpression(context,token)}else
{currentExpression=self._buildFunctionExpression(context,token)}}else if(token.type===2){currentExpression=self._buildSubExpression(context,token)}else if(token.type===0){if(token.subType===4){currentExpression=new Expressions.DoubleExpression(parseFloat(token.value),token.value)}else if(token.subType===6){currentExpression=new Expressions.ErrorExpression(CalcError.parse(token.value))}else if(token.subType===5){if(compareStringIgnoreCase(token.value,const_true)){currentExpression=new Expressions.BooleanExpression(true)}else if(compareStringIgnoreCase(token.value,const_false)){currentExpression=new Expressions.BooleanExpression(false)}}else if(token.subType===7){currentExpression=self._buildCellReferenceOrNameExpressions(context,token.value,token.index)}else
{currentExpression=new Expressions.StringExpression(token.value)}}return currentExpression};Parser.prototype._buildExpressionTree=function(context,tokens){var results=this._parseToBinaryOperatorList(context,tokens);var currentExpression,lastExpression,nextExpression,index;for(index=3;index<results.length;){var nextToken=results[index];var currentToken=results[index-2];if(nextToken&&nextToken.type===5){while(index>=3&&getOpeatorPriority(nextToken.value)>=getOpeatorPriority(currentToken.value)){lastExpression=results[index-3];nextExpression=results[index-1];currentExpression=new Expressions.BinaryOperatorExpression(getBinaryOperator(currentToken),lastExpression,nextExpression);results.splice(index-3,1);results.splice(index-3,1);results.splice(index-3,1);results.splice(index-3,0,currentExpression);index-=2;if(index>=3){currentToken=results[index-2]}}index+=2}else
{index++}}if(results.length===1){return results[0]}else
{for(index=results.length-2;index>0;index-=2){lastExpression=results[index-1];nextExpression=results[index+1];currentExpression=new Expressions.BinaryOperatorExpression(getBinaryOperator(results[index]),lastExpression,nextExpression);results.splice(index-1,1);results.splice(index-1,1);results.splice(index-1,1);results.push(currentExpression)}return currentExpression}};Parser.prototype._parseToBinaryOperatorList=function(context,tokens){var results=[];var currentExpression;for(var i=0;i<tokens.length;i++){var currentToken=tokens[i];if(currentToken.type===4){var opStack=[];while(currentToken.type===4){opStack.push(currentToken.value==='+'?Operators.plus:Operators.negate);i++;currentToken=tokens[i]}var nextToken=tokens[i];currentExpression=new Expressions.UnaryOperatorExpression(opStack.pop(),this._buildExpressionNode(context,nextToken));while(opStack.length>0){currentExpression=new Expressions.UnaryOperatorExpression(opStack.pop(),currentExpression)}results.push(currentExpression)}else if(currentToken.type===6){var lastExpression=results[results.length-1];currentExpression=new Expressions.UnaryOperatorExpression(Operators.percent,lastExpression);results.pop();results.push(currentExpression)}else if(currentToken.type===5){results.push(currentToken)}else
{currentExpression=this._buildExpressionNode(context,currentToken);results.push(currentExpression)}}return results};Parser.prototype._buildFunctionExpression=function(context,rootToken){var args=[];var subTokens=[];for(var i=0;i<rootToken.children.length;i++){var token=rootToken.children[i];if(token.type!==3){subTokens.push(token)}else
{if(subTokens.length===0){args.push(new Expressions.MissingArgumentExpression)}else
{args.push(this._buildExpressionTree(context,subTokens));subTokens=[]}}}if(subTokens.length!==0){args.push(this._buildExpressionTree(context,subTokens))}else if(rootToken.children.length!==0){args.push(new Expressions.MissingArgumentExpression)}var fn=Functions.findGlobalFunction(rootToken.value);if(fn){var argsLength=args.length;if(argsLength<fn.minArgs||argsLength>fn.maxArgs){throw _spread.SR.Exp_InvalidParameters+rootToken.index+_spread.SR.FullStop;}return new Expressions.FunctionExpression(fn,args)}else
{return new Expressions.FunctionExpression(rootToken.value,args)}};Parser.prototype._buildSubExpression=function(context,rootToken){return new Expressions.ParenthesesExpression(this._buildExpressionTree(context,rootToken.children))};Parser.prototype._buildArraryExpression=function(context,rootToken){var args=[];var colCount=-1;var arrayRowToken,rootTokenChildren=rootToken.children,rootTokenChildrenLength=rootTokenChildren.length;for(var i=0;i<rootTokenChildrenLength;i++){arrayRowToken=rootTokenChildren[i];var previous=(i===0?keyword_null:rootTokenChildren[i-1]);if(arrayRowToken.type===3){if(!previous||previous.type===3||i===rootTokenChildrenLength-1){throw _spread.SR.Exp_InvalidArrayAt+arrayRowToken.index+_spread.SR.FullStop;}continue}else if(previous&&previous.type!==3){throw _spread.SR.Exp_InvalidArrayAt+arrayRowToken.index+_spread.SR.FullStop;}else if(arrayRowToken.type!==1||arrayRowToken.value!==const_arrayRow){throw _spread.SR.Exp_InvalidArrayAt+arrayRowToken.index+_spread.SR.FullStop;}else if(colCount!==-1&&arrayRowToken.children.length!==colCount){throw _spread.SR.Exp_InvalidArrayColumns+arrayRowToken.index+_spread.SR.FullStop;}else
{colCount=arrayRowToken.children.length}var row=[];args.push(row);var arrayRowTokenChildren=arrayRowToken.children,length=arrayRowTokenChildren.length;var lastToken=keyword_null;for(var index=0;index<length;index++){var token=arrayRowTokenChildren[index];if(token.type===3){if(!lastToken||lastToken.type===3||index===length-1){row.push(Calc.missingArgument)}}else if(lastToken&&lastToken.type!==3){throw _spread.SR.Exp_InvalidArrayAt+arrayRowToken.index;}else
{var nextToken;if(token.type===4){if(index+1>=length){throw _spread.SR.Exp_InvalidArrayAt+arrayRowToken.index;}nextToken=arrayRowTokenChildren[index+1];nextToken.value=""+token.value+nextToken.value;token=nextToken;index++}else if(index+1<length&&arrayRowTokenChildren[index+1].type===6){nextToken=arrayRowTokenChildren[index+1];token.value=""+token.value+nextToken.value;index++}var expr=this._buildExpressionNode(context,token);if(expr){row.push(expr.value)}}lastToken=token}}if(args.length===0||args[0]===keyword_undefined||args[0]===keyword_null||args[0].length===0){throw _spread.SR.Exp_InvalidArrayAt+arrayRowToken.index;}return new Expressions.ArrayExpression(args)};Parser.prototype._buildCellReferenceOrNameExpressions=function(context,value,index){var result=this._buildCellReferenceOrNameExpressions2(context,value,index);var endIndex=result.endIndex;var expression=result.expression;var valueLength=value.length;if(!expression){throw _spread.SR.Exp_InvalidCellReference+index+_spread.SR.FullStop;}if(endIndex<=0||endIndex>=valueLength){return expression}if(value.charAt(endIndex)!==':'){throw _spread.SR.Exp_InvalidCellReference+index+_spread.SR.FullStop;}endIndex++;var expressions=[];expressions.push(expression);while(endIndex>0&&endIndex<valueLength){var startIndex=endIndex;result=this._buildCellReferenceOrNameExpressions2(context,value.substr(endIndex),index);endIndex=result.endIndex;expression=result.expression;if(!expression){throw _spread.SR.Exp_InvalidCellReference+index+_spread.SR.FullStop;}expressions.push(expression);endIndex+=startIndex;if(endIndex<valueLength&&value.charAt(endIndex)!==':'){throw _spread.SR.Exp_InvalidCellReference+index+_spread.SR.FullStop;}endIndex++}expression=expressions[0];for(var i=1;i<expressions.length;i++){expression=new Expressions.BinaryOperatorExpression(Operators.range,expression,expressions[i])}return expression};Parser.prototype._buildCellReferenceOrNameExpressions2=function(context,value,index){var self=this;if(value===keyword_undefined||value===keyword_null||value===''){return{endIndex:0,expression:keyword_null}}var length=value.length;if(value.length>=5&&value.substr(0,5)==='#REF!'){return{endIndex:length,expression:new Expressions.ErrorExpression(CalcErrorsReference)}}var isBang=value.charAt(0)==='!';var startIndex=isBang?1:0;if(length<1){return{endIndex:0,expression:keyword_null}}var cellOrNameStartIndex=-1;var sheetRefStr="";var endIndex=0;if(isBang){cellOrNameStartIndex=startIndex}else if(value.charAt(0)==="'"){cellOrNameStartIndex=value.indexOf('!')+1;sheetRefStr=value.substr(0,cellOrNameStartIndex-1)}else
{var excalmatoryIndex=value.indexOf('!');var rangeIndex=value.indexOf(':');if(excalmatoryIndex!==-1){var startString=value.substr(startIndex,excalmatoryIndex-startIndex);if(rangeIndex<0||excalmatoryIndex<rangeIndex){if(excalmatoryIndex<length-1){sheetRefStr=startString;cellOrNameStartIndex=excalmatoryIndex+1}}else
{var expr=self._parseToCellReference(context,startString,isBang);if(expr.expression){return expr}else
{if(excalmatoryIndex<length-1){sheetRefStr=startString;cellOrNameStartIndex=excalmatoryIndex+1}}endIndex=expr.endIndex}}}var workBookName="";var startSheetName="";var endSheetName="";if(cellOrNameStartIndex!==-1&&sheetRefStr&&sheetRefStr!==""){var result=self._readSheetReference(sheetRefStr,context.useR1C1,false);if(!result.success){return{endIndex:endIndex,expression:keyword_null}}workBookName=result.workBookName;startSheetName=result.startSheetName;endSheetName=result.endSheetName}else
{cellOrNameStartIndex=startIndex}var src,startSource,endSource;var isExternalExpression=false;if((workBookName&&workBookName!=='')||(startSheetName&&startSheetName!=='')){isExternalExpression=true;if(context.getExternalSource){startSource=context.getExternalSource(workBookName,startSheetName);if(!startSource){return{endIndex:endIndex,expression:new Expressions.ErrorExpression(CalcErrorsReference)}}}}if(endSheetName&&endSheetName!==''){isExternalExpression=true;if(context.getExternalSource){endSource=context.getExternalSource(workBookName,endSheetName);if(!endSource){return{endIndex:endIndex,expression:new Expressions.ErrorExpression(CalcErrorsReference)}}}}var cellOrNameStr=value.substr(cellOrNameStartIndex);var exprResult=self._parseToCellReference(context,cellOrNameStr,isBang,startSource,endSource);var expr2=exprResult.expression;endIndex=exprResult.endIndex;if(!expr2){var currentChar;var rangeIndex=-1;for(var i=0;i<value.length;i++){currentChar=value[i];if(currentChar==='['){var rs=readString2(value,i,'[',']','\'');i=rs.endIndex}else if(currentChar===':'){rangeIndex=i;break}}if(isBang){expr2=new Expressions.BangNameExpression(cellOrNameStr)}else if(startSheetName&&startSheetName!==''){if(endSheetName&&endSheetName!==''){return{endIndex:endIndex,expression:keyword_null}}if(!context.getExternalSource){return{endIndex:endIndex,expression:new Expressions.ErrorExpression(CalcErrorsReference)}}src=context.getExternalSource(workBookName,startSheetName);if(!src){return{endIndex:endIndex,expression:new Expressions.ErrorExpression(CalcErrorsReference)}}expr2=new Expressions.ExternalNameExpression(src,cellOrNameStr)}else
{if(rangeIndex>0){var nameString=value.substr(0,rangeIndex);if(!self._validateName(nameString)){expr2=keyword_null}else
{expr2=new Calc.Expressions.BinaryOperatorExpression(Calc.Operators.range,new Calc.Expressions.NameExpression(nameString),self._buildCellReferenceOrNameExpressions(context,value.substr(rangeIndex+1),index+rangeIndex+1))}}else
{expr2=new Expressions.NameExpression(cellOrNameStr)}}endIndex=length}else if(isExternalExpression&&!(expr2 instanceof Expressions.SheetRangeExpression)&&!(expr2 instanceof Expressions.ExternalReferenceExpression)&&!(expr2 instanceof Expressions.ExternalErrorExpression)&&!(expr2 instanceof Expressions.SheetRangeErrorExpression)&&!(expr2 instanceof Expressions.ExternalNameExpression)){return{endIndex:length,expression:new Expressions.ErrorExpression(CalcErrorsReference)}}else if(endIndex<cellOrNameStr.length-1){endIndex=length-(cellOrNameStr.length-endIndex);if(value.charAt(endIndex)!==':'){if(startSheetName&&startSheetName!==''){if(endSheetName&&endSheetName!==''){return{endIndex:endIndex,expression:keyword_null}}if(!context.getExternalSource){return{endIndex:endIndex,expression:new Expressions.ErrorExpression(CalcErrorsReference)}}src=context.getExternalSource(workBookName,startSheetName);if(!src){return{endIndex:endIndex,expression:new Expressions.ErrorExpression(CalcErrorsReference)}}expr2=new Expressions.ExternalNameExpression(src,cellOrNameStr)}else
{expr2=new Expressions.NameExpression(cellOrNameStr)}endIndex=length}}else
{endIndex=length}if(expr2 instanceof Expressions.NameExpression||expr2 instanceof Expressions.ExternalNameExpression){var structExpr=self._createStructExpression(context,cellOrNameStr,index);if(structExpr){expr2=structExpr}else if(!self._validateName(cellOrNameStr)){return{endIndex:endIndex,expression:keyword_null}}}return{endIndex:endIndex,expression:expr2}};Parser.prototype._parseToCellReference=function(context,value,isBang,startSource,endSource){var self=this;var endIndex=0;if(value.charAt(0)==='#'){var rs=readError(value,0);endIndex=rs.endIndex+1;var err=CalcError.parse(rs.result);if(err){return{endIndex:endIndex,expression:self._createExternalErrorExpression(err,isBang,startSource,endSource)}}}var result=context.useR1C1?self._isR1C1CellReferance(value,context.row,context.column):self._isA1CellReferance(value);var bandIndex=Parser.BAND_INDEX_CONST;if(result.success&&context.useR1C1&&result.startRow!==bandIndex&&result.startColumn===bandIndex&&result.endRow===bandIndex&&result.endColumn===bandIndex){result.endRow=result.startRow;result.endRowRelative=result.startRowRelative}else if(result.success&&context.useR1C1&&result.startColumn!==bandIndex&&result.startRow===bandIndex&&result.endRow===bandIndex&&result.endColumn===bandIndex){result.endColumn=result.startColumn;result.endColumnRelative=result.startColumnRelative}else if(!result.success||(result.startRow===bandIndex&&(result.startColumn===bandIndex||result.endColumn===bandIndex))||(result.startColumn===bandIndex&&result.endRow===bandIndex)){return{endIndex:result.endIndex,expression:keyword_null}}var cellExpr=self._createCellReferenceExpression(context,context.row,context.column,result.startRow,result.startColumn,result.endRow,result.endColumn,result.startRowRelative,result.startColumnRelative,result.endRowRelative,result.endColumnRelative,isBang,startSource,endSource);return{endIndex:result.endIndex,expression:cellExpr}};Parser.prototype._createExternalErrorExpression=function(err,isBang,startSource,endSource){if(isBang){return new Expressions.BangErrorExpression(err)}else if(startSource&&endSource){return new Expressions.SheetRangeErrorExpression(startSource,endSource,err)}else if(startSource){return new Expressions.ExternalErrorExpression(startSource,err)}else
{return new Expressions.ErrorExpression(err)}};Parser.prototype._createCellReferenceExpression=function(context,baseRowIndex,baseColIndex,startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative,isBang,startSource,endSource){var bandIndex=Parser.BAND_INDEX_CONST;var expr;if(startRow!==bandIndex&&endRow!=bandIndex&&startRow>endRow){var t1=startRow;startRow=endRow;endRow=t1;var t2=startRowRelative;startRowRelative=endRowRelative;endRowRelative=t2}if(startColumn!==bandIndex&&endColumn!=bandIndex&&startColumn>endColumn){var t1=startColumn;startColumn=endColumn;endColumn=t1;var t2=startColumnRelative;startColumnRelative=endColumnRelative;endColumnRelative=t2}startRow-=startRow!==bandIndex&&startRowRelative?baseRowIndex:0;startColumn-=startColumn!=bandIndex&&startColumnRelative?baseColIndex:0;endRow-=endRow!==bandIndex&&endRowRelative?baseRowIndex:0;endColumn-=endColumn!==bandIndex&&endColumnRelative?baseColIndex:0;if(startSource&&endSource){expr=new Expressions.SheetRangeExpression(startSource,endSource);if(startRow===bandIndex){expr.initBand(startSource,endSource,startColumn,endColumn,startColumnRelative,endColumnRelative,false)}else if(startColumn===bandIndex){expr.initBand(startSource,endSource,startRow,endRow,startRowRelative,endRowRelative,true)}else
{expr.init(startSource,endSource,startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative)}return expr}else if(endRow===bandIndex&&endColumn===bandIndex){if(isBang){if(startSource||endSource){return keyword_null}return new Expressions.BangCellExpression(startRow,startColumn,startRowRelative,startColumnRelative)}else if(startSource){return new Expressions.ExternalCellExpression(startSource,startRow,startColumn,startRowRelative,startColumnRelative)}else
{return new Expressions.CellExpression(startRow,startColumn,startRowRelative,startColumnRelative)}}else
{if(isBang){if(startSource&&endSource){return keyword_null}expr=new Expressions.BangRangeExpression;if(startRow===bandIndex){expr.initBand(startColumn,endColumn,startColumnRelative,endColumnRelative,false)}else if(startColumn===bandIndex){expr.initBand(startRow,endRow,startRowRelative,endRowRelative,true)}else
{expr.init(startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative)}return expr}else if(startSource){expr=new Expressions.ExternalRangeExpression;if(startRow===bandIndex){expr.initBand(startSource,startColumn,endColumn,startColumnRelative,endColumnRelative,false)}else if(startColumn===bandIndex){expr.initBand(startSource,startRow,endRow,startRowRelative,endRowRelative,true)}else
{expr.init(startSource,startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative)}return expr}else
{expr=new Expressions.RangeExpression;if(startRow===bandIndex){expr.initBand(startColumn,endColumn,startColumnRelative,endColumnRelative,false)}else if(startColumn===bandIndex){expr.initBand(startRow,endRow,startRowRelative,endRowRelative,true)}else
{expr.init(startRow,startColumn,endRow,endColumn,startRowRelative,startColumnRelative,endRowRelative,endColumnRelative)}return expr}}};Parser.prototype._readSheetReference=function(value,isR1C1,isUnparse){var result={success:false,startSheetName:"",endSheetName:"",workBookName:""};var containsSpecial=false,valueLength=value.length;if(value.charAt(0)==="'"&&value.charAt(valueLength-1)==="'"){containsSpecial=true;value=value.substr(1,valueLength-2)}var workBookIndex=value.indexOf('[');if(workBookIndex!==-1){if(workBookIndex!==0){result.workBookName=value.substr(0,workBookIndex);if(result.workBookName.charAt(workBookIndex-1)!=='\\'){result.workBookName=result.workBookName+'\\'}}var rs=readString(value,workBookIndex,'[',']');result.workBookName=result.workBookName+rs.result;value=value.substr(rs.endIndex+1)}var colonIndex=value.indexOf(':');if(colonIndex===-1){result.startSheetName=value}else
{result.startSheetName=value.substr(0,colonIndex);result.endSheetName=value.substr(colonIndex+1)}if(!result.startSheetName||result.startSheetName===''){result.success=false;return result}var self=this;var valid=self._validateWorkbook(result.workBookName,containsSpecial);valid=self._validateSheetName(result.startSheetName,isR1C1,containsSpecial);valid&=self._validateSheetName(result.endSheetName,isR1C1,containsSpecial);if(isUnparse){if(result.startSheetName){result.startSheetName=result.startSheetName.replace("'","''")}if(result.endSheetName){result.endSheetName=result.endSheetName.replace("'","''")}}result.success=valid;return result};Parser.prototype._isStartWithCellReference=function(value,isR1C1){return isR1C1?this._isR1C1CellReferance(value):this._isA1CellReferance(value)};Parser.prototype._isA1CellReferance=function(value){var self=this;var bandIndex=Parser.BAND_INDEX_CONST;var result={startRow:bandIndex,startColumn:bandIndex,endRow:bandIndex,endColumn:bandIndex,startRowRelative:true,startColumnRelative:true,endRowRelative:true,endColumnRelative:true,success:false,endIndex:0};value=value.replace(' ','');var length=value.length;var read=self._readOneA1Element(value,0);result.endIndex=read.endIndex;if(!read.success||result.endIndex>length){return result}var read2;if(read.isRow){result.startRow=read.elementIndex;result.startRowRelative=read.isRelative;if(value.charAt(result.endIndex)===':'){result.endIndex++;read2=self._readOneA1Element(value,result.endIndex);result.endIndex=read2.endIndex;if(!read2.success||!read2.isRow){return result}result.endRow=read2.elementIndex;result.endRowRelative=read2.isRelative;result.success=true;return result}else
{return result}}else
{result.startColumn=read.elementIndex;result.startColumnRelative=read.isRelative;if(value.charAt(result.endIndex)===':'){result.endIndex++;read2=self._readOneA1Element(value,result.endIndex);result.endIndex=read2.endIndex;if(!read2.success||read2.isRow){return result}result.endColumn=read2.elementIndex;result.endColumnRelative=read2.isRelative;result.success=true;return result}}if(isNumber(value.charAt(result.endIndex))||value.charAt(result.endIndex)==='$'){read2=self._readOneA1Element(value,result.endIndex);result.endIndex=read2.endIndex;if(!read2.success||!read2.isRow){return result}result.startRow=read2.elementIndex;result.startRowRelative=read2.isRelative;var cellEndIndex=result.endIndex;if(result.endIndex<length-1&&value.charAt(result.endIndex)===':'){if(value.charAt(result.endIndex+1)==="'"){result.success=true;return result}var nextSheetIndex=value.indexOf('!',result.endIndex+1);var nextRangeIndex=value.indexOf(':',result.endIndex+1);if(nextSheetIndex!==-1&&(nextRangeIndex===-1||nextRangeIndex>nextSheetIndex)){result.success=true;return result}result.endIndex++;var read3=self._readOneA1Element(value,result.endIndex);if(!read3.success||read3.isRow){result.endIndex=cellEndIndex;result.success=true;return result}else
{result.endIndex=read3.endIndex}result.endColumn=read3.elementIndex;result.endColumnRelative=read3.isRelative;var read4=self._readOneA1Element(value,result.endIndex);if(!read4.success||!read4.isRow){result.endIndex=cellEndIndex;result.endColumn=bandIndex;result.success=true;return result}else
{result.endIndex=read4.endIndex}result.endRow=read4.elementIndex;result.endRowRelative=read4.isRelative;result.success=true;return result}else
{result.success=true;return result}}else
{return result}};Parser.prototype._isR1C1CellReferance=function(value,baseRow,baseColumn){var self=this;var bandIndex=Parser.BAND_INDEX_CONST;var result={startRow:bandIndex,startColumn:bandIndex,endRow:bandIndex,endColumn:bandIndex,startRowRelative:true,startColumnRelative:true,endRowRelative:true,endColumnRelative:true,success:false,endIndex:0};value=value.replace(' ','');var length=value.length;var read=self._readOneR1C1Element(value,baseRow,baseColumn,0);result.endIndex=read.endIndex;if(!read.success){return result}var read2;if(read.isRow){result.startRow=read.elementIndex;result.startRowRelative=read.isRelative;if(result.endIndex>=length){result.success=true;return result}if(value.charAt(result.endIndex)===':'){result.endIndex++;read2=self._readOneR1C1Element(value,baseRow,baseColumn,result.endIndex);result.endIndex=read2.endIndex;if(!read2.success||!read2.isRow){return result}result.endRow=read2.elementIndex;result.endRowRelative=read2.isRelative;result.success=true;return result}}else
{result.startColumn=read.elementIndex;result.startColumnRelative=read.isRelative;if(result.endIndex>=length){result.success=true;return result}if(value.charAt(result.endIndex)===':'){result.endIndex++;read2=self._readOneR1C1Element(value,baseRow,baseColumn,result.endIndex);result.endIndex=read2.endIndex;if(!read2.success||read2.isRow){return result}result.endColumn=read2.elementIndex;result.endColumnRelative=read2.isRelative;result.success=true;return result}else
{return result}}if(value.charAt(result.endIndex)==='C'||value.charAt(result.endIndex)==='c'){read2=self._readOneR1C1Element(value,baseRow,baseColumn,result.endIndex);result.endIndex=read2.endIndex;if(!read2.success||read2.isRow){return result}result.startColumn=read2.elementIndex;result.startColumnRelative=read2.isRelative;var cellEndIndex=result.endIndex;if(result.endIndex<length-1&&value.charAt(result.endIndex)===':'){if(value.charAt(result.endIndex+1)==="'"){result.success=true;return result}var nextSheetIndex=value.indexOf('!',result.endIndex+1);var nextRangeIndex=value.indexOf(':',result.endIndex+1);if(nextSheetIndex!==-1&&(nextRangeIndex===-1||nextRangeIndex>nextSheetIndex)){result.success=true;return result}result.endIndex++;var read3=self._readOneR1C1Element(value,baseRow,baseColumn,result.endIndex);if(!read3.success||!read3.isRow){result.endIndex=cellEndIndex;result.success=true;return result}else
{result.endIndex=read3.endIndex}result.endRow=read3.elementIndex;result.endRowRelative=read3.isRelative;var read4=self._readOneR1C1Element(value,baseRow,baseColumn,result.endIndex);if(!read4.success||read4.isRow){result.endIndex=cellEndIndex;result.success=true;return result}else
{result.endIndex=read4.endIndex}result.endColumn=read4.elementIndex;result.endColumnRelative=read4.isRelative;result.success=true;return result}else
{result.success=true;return result}}else
{return result}};Parser.prototype._readOneA1Element=function(value,startIndex){var bandIndex=Parser.BAND_INDEX_CONST;var result={endIndex:startIndex,elementIndex:bandIndex,isRow:true,isRelative:true,success:false};var length=value.length;if(startIndex>=length){return result}if(value.charAt(startIndex)==='$'){result.isRelative=false;startIndex++}if(startIndex>=length){return result}var index=startIndex,intValue;var currentChar=value.charAt(index);if(isNumber(currentChar)&¤tChar!=='0'){result.isRow=true;while(index<length&&isNumber(currentChar)){index++;if(index<length){currentChar=value.charAt(index)}}intValue=parseInt(value.substr(startIndex,index-startIndex),10);if(intValue>=1&&intValue<=Parser.maxRowCount){result.elementIndex=intValue-1;result.endIndex=index;result.success=true;return result}}else if(isLetter(currentChar)){result.isRow=false;while(index<length&&isLetter(currentChar)){index++;if(index<length){currentChar=value.charAt(index)}}var s=value.substr(startIndex,index-startIndex);if(s.length>3){return result}s=s.toUpperCase();intValue=0;for(var i=s.length-1;i>=0;i--){intValue+=(s.charCodeAt(i)-65+1)*LetterPows[s.length-i-1]}if(intValue<=Parser.maxColumnCount){result.elementIndex=intValue-1;result.endIndex=index;result.success=true;return result}}return result};Parser.prototype._readOneR1C1Element=function(value,baseRow,baseColumn,startIndex){var bandIndex=Parser.BAND_INDEX_CONST;var result={endIndex:startIndex,elementIndex:bandIndex,isRow:true,isRelative:false,success:false};var length=value.length;if(startIndex>=length){return result}var index=startIndex;var currentChar=value.charAt(index);var baseIndex;if(currentChar==='R'||currentChar==='r'){result.isRow=true;baseIndex=baseRow}else if(currentChar==='C'||currentChar==='c'){result.isRow=false;baseIndex=baseColumn}else
{return result}startIndex++;index++;if(startIndex>=length){result.endIndex=startIndex;result.elementIndex=baseIndex;result.isRelative=true;result.success=true;return result}currentChar=value.charAt(index);if(currentChar==='['){startIndex++;index++;result.isRelative=true}if(startIndex>=length){return result}var isNegative=false;currentChar=value.charAt(index);if(result.isRelative&¤tChar==='-'){startIndex++;index++;isNegative=true}if(startIndex>=length){return result}currentChar=value.charAt(index);if(isNumber(currentChar)){while(index<length&&isNumber(currentChar)){index++;if(index<length){currentChar=value.charAt(index)}}var intValue=parseInt(value.substr(startIndex,index-startIndex),10);if(result.isRelative){if(index>=length||value.charAt(index)!==']'){return result}index++}if(intValue<(result.isRow?Parser.maxRowCount:Parser.maxColumnCount)){if(result.isRelative){intValue=isNegative?-intValue:intValue;result.elementIndex=intValue+baseIndex}else
{result.elementIndex=intValue-1}result.endIndex=index;result.success=true;return result}}else if(result.isRelative){return result}else
{result.endIndex=startIndex;result.elementIndex=baseIndex;result.isRelative=true;result.success=true;return result}};Parser.prototype._validateWorkbook=function(name,containsSpecial){if(name===keyword_undefined||name===keyword_null||name===''){return true}var currentChar;for(var i=0;i<name.length;i++){currentChar=name[i];if(containsSpecial){if(currentChar==='*'||currentChar===':'||currentChar==='['||currentChar===']'||currentChar==='?'){return false}if(currentChar==="'"){if(i===0||i>=name.length-1||name.charAt(i+1)!=="'"){return false}}}else if(currentChar==="'"||currentChar==='['||currentChar===']'||currentChar==='?'||currentChar==='%'||this._operatorInfix.indexOf(currentChar)!==-1){return false}}return true};Parser.prototype._validateSheetName=function(name,isR1C1,containsSpecial){if(name===keyword_undefined||name===keyword_null||name===''){return true}if(!containsSpecial&&isDigit(name.charAt(0))){return false}var isStartWithCellRef=this._isStartWithCellReference(name,isR1C1);if(!containsSpecial&&isStartWithCellRef.success&&isStartWithCellRef.endIndex===name.length){return false}var currentChar;for(var i=0;i<name.length;i++){currentChar=name.charAt(i);if(containsSpecial){if(currentChar==='*'||currentChar===':'||currentChar==='['||currentChar===']'||currentChar==='?'||currentChar==='\\'||currentChar==='/'){return false}}else if(currentChar==="'"||currentChar==='['||currentChar===']'||currentChar==='?'||currentChar==='\\'||currentChar==='%'||currentChar==='"'||this._operatorInfix.indexOf(currentChar)!==-1){return false}}return true};Parser.prototype._createStructExpression=function(context,value,startIndex){if(value.charAt(value.length-1)===']'){try
{return new Expressions.StructReferenceExpression(value,context)}catch(ex){throw _spread.SR.Exp_FormulaInvalid+_spread.SR.SingleQuote+"{"+_spread.SR.AtIndexOn+startIndex+_spread.SR.FullStop;}}else
{var table=context.getTableByName(value);if(table){return Expressions.StructReferenceExpression.create(table)}}return keyword_null};Parser.prototype._validateName=function(name){if(name===keyword_undefined||name===keyword_null||name===''){return false}var nameLength=name.length;if(nameLength===1&&(name==='R'||name==='r'||name==='C'||name==='c')){return false}var currentChar=name.charAt(0);if(!(currentChar==='_'||currentChar==='\\'||isLetter(currentChar)||isSymbol(currentChar))){return false}for(var i=1;i<nameLength;i++){currentChar=name.charAt(i);if(!(currentChar==='_'||currentChar==='\\'||currentChar==='?'||currentChar==='.'||isLetterOrDigit(currentChar)||isSymbol(currentChar))){return false}}return true};Parser.BAND_INDEX_CONST=-2147483648;Parser.maxRowCount=1048576;Parser.maxColumnCount=16384;Parser._isLetter=isLetter;Parser._isLetterOrDigit=isLetterOrDigit;return Parser})();Calc.Parser=Parser;var EvaluateContext=(function(){function EvaluateContext(source,arrayFormula,baseRow,baseColumn,rowCount,columnCount,activeRow,activeColumn){this._expandArrayToMultiCallCount=0;var self=this,length=arguments.length;self.source=source;self.arrayFormulaMode=length>=2?arrayFormula:false;self.row=length>=3?baseRow:0;self.column=length>=4?baseColumn:0;self.rowCount=length>=5?rowCount:1;self.columnCount=length>=6?columnCount:1;self.activeRow=length>=7?activeRow:self.row;self.activeColumn=length>=8?activeColumn:self.column;self.rowOffset=length<7?self.row:self.activeRow-self.row;self.columnOffset=length<8?self.column:self.activeColumn-self.column}EvaluateContext.prototype.getValue=function(source,row,column){if(!source){return CalcErrorsReference}return source.getValue(row,column)};EvaluateContext.prototype.getReference=function(source,row,column,rowCount,columnCount){if(!source){return CalcErrorsReference}return source.getReference(row,column,rowCount,columnCount)};EvaluateContext.prototype.getFunction=function(name){var self=this;return self.source&&self.source.getFunction?self.source.getFunction(name):keyword_null};EvaluateContext.prototype.getName=function(name){var self=this;return self.source&&self.source.getName?self.source.getName(name,self.row,self.column):keyword_null};EvaluateContext.prototype._isExpandArrayToMultiCall=function(){return this._expandArrayToMultiCallCount>0};EvaluateContext.prototype._beginExpandArrayToMultiCall=function(){this._expandArrayToMultiCallCount++};EvaluateContext.prototype._endExpandArrayToMultiCall=function(){this._expandArrayToMultiCallCount--};EvaluateContext.prototype._offset=function(row,column){var self=this;return new EvaluateContext(self.source,self.arrayFormulaMode,self.row+row,self.column+column,self.rowCount,self.columnCount,self.rowOffset,self.columnOffset)};return EvaluateContext})();Calc.EvaluateContext=EvaluateContext;var defaultParser=new Parser;var Evaluator=(function(){function Evaluator(){}Evaluator.prototype.evaluateFormula=function(formula,parserContext,evaluatorContext){return this.evaluateExpression(defaultParser.parse(formula,parserContext),evaluatorContext)};Evaluator.prototype.evaluateExpression=function(expression,evaluatorContext,convertNullToZero){var result=this._evaluate(expression,evaluatorContext,false,false);if(convertNullToZero){return(result===keyword_undefined||result===keyword_null)?0:result}return result};Evaluator.prototype._evaluate=function(expr,context,acceptsArray,acceptsReference){if(!expr){throw _spread.SR.Exp_ExprIsNull;}while(expr instanceof Expressions.ParenthesesExpression){expr=expr.argument}var self=this;var result;var needExpendIndexs=keyword_null;if(expr instanceof Expressions.ExpandExpression){var expendExpr=expr;expr=expendExpr.expr;needExpendIndexs=expendExpr.needExpendIndexs}if(expr instanceof Expressions.ConstantExpression){result=self._evaluateConst(expr,context,acceptsArray)}else if(expr instanceof Expressions.ReferenceExpression){result=self._evaluateReference(expr,context,acceptsReference)}else if(expr instanceof Expressions.ExternalNameExpression){var svc,nameContext=keyword_null;if((svc=expr.source.getCalcService())){nameContext=svc._getEvaluatorContext4Cell(expr.source._sheet,context.row,context.column,context.arrayFormulaMode)}if(!nameContext){result=CalcErrorsName}result=self._evaluateName(expr.name,nameContext,context,acceptsArray,acceptsReference)}else if(expr instanceof Expressions.NameExpression){result=self._evaluateName(expr.name,context,context,acceptsArray,acceptsReference)}else if(expr instanceof Expressions.UnaryOperatorExpression){result=self._evaluateUnaryOperation(expr,context,acceptsArray,acceptsReference,needExpendIndexs)}else if(expr instanceof Expressions.BinaryOperatorExpression){result=self._evaluateBinaryOperation(expr,context,acceptsArray,acceptsReference,needExpendIndexs)}else if(expr instanceof Expressions.FunctionExpression){result=self._evaluateFunction(expr,context,acceptsArray,acceptsReference,needExpendIndexs)}return result};Evaluator.prototype._evaluateConst=function(expr,context,acceptsArray){var value=expr.value;if(value instanceof CalcArray){if(acceptsArray||(context&&(context.arrayFormulaMode||context._isExpandArrayToMultiCall()))){return value}return _Helper.getArrayValue(value,0,0)}return value};Evaluator.prototype._evaluateReference=function(expr,context,acceptsReference){if(!context){return CalcErrorsValue}var source=context.source;if(expr instanceof Expressions.ExternalReferenceExpression){source=expr.source}else if(expr instanceof Expressions.StructReferenceExpression){source=expr.source()}var baseRow=context.row,baseColumn=context.column;var pos=expr.getRange(baseRow,baseColumn);if(!pos){return CalcErrorsReference}if(acceptsReference||context.arrayFormulaMode){return context.getReference(source,pos.row,pos.column,pos.rowCount,pos.columnCount)}var row=pos.row,column=pos.column;if(pos.rowCount>1||pos.columnCount>1){var rowInRange=context.row>=pos.row&&context.row<pos.row+pos.rowCount;var colInRange=context.column>=pos.column&&context.column<pos.column+pos.columnCount;if(!rowInRange&&!colInRange){return CalcErrorsValue}else if(rowInRange&&!colInRange&&pos.columnCount===1){row=context.row}else if(!rowInRange&&colInRange&&pos.rowCount===1){column=context.column}else if(pos.rowCount===1||pos.columnCount===1){row=context.row;column=context.column}else
{return CalcErrorsValue}}else if(pos.row===-1&&pos.rowCount===-1){if(pos.columnCount!==1){return CalcErrorsValue}row=context.row}else if(pos.column===-1&&pos.columnCount===-1){if(pos.rowCount!==1){return CalcErrorsValue}column=context.column}return context.getValue(source,row,column)};Evaluator.prototype._evaluateName=function(name,nameContext,evalContext,acceptsArray,acceptsReference){if(!nameContext||!evalContext){return CalcErrorsName}var sub=nameContext.getName(name);if(!sub){return CalcErrorsName}return this._evaluate(sub,evalContext,acceptsArray,acceptsReference)};Evaluator.prototype._evaluateOperationArg=function(argExpr,context,acceptsArray,acceptsReference){var arg=this._evaluate(argExpr,context,acceptsArray,acceptsReference);if(arg instanceof CalcError){return arg}if(arg===Calc.missingArgument){return CalcErrorsNotAvailable}return arg};Evaluator.prototype._evaluateUnaryOperation=function(expr,context,acceptsArray,acceptsReference,needExpendIndexs){var acceptsReferences=false;if(needExpendIndexs!=keyword_null&&needExpendIndexs.length>0){acceptsArray=true;acceptsReferences=true}var arg=this._evaluate(expr.operand,context,acceptsArray,acceptsReferences);if(arg instanceof Calc.Error){return arg}if(arg===Calc.missingArgument){return CalcErrorsNotAvailable}return this._evaluateWithArgs(expr,function(args1){return expr.operator.evaluate(args1[0],context)},context,needExpendIndexs,[arg],acceptsArray,acceptsReference)};Evaluator.prototype._evaluateBinaryOperation=function(expr,context,acceptsArray,acceptsReference,needExpendIndexs){var acceptsArrays=[acceptsArray,acceptsArray];var acceptsReferences=[expr.operator.acceptsReference,expr.operator.acceptsReference];if(needExpendIndexs!=keyword_null&&needExpendIndexs.length>0){for(var i=0;i<needExpendIndexs.length;i++){acceptsArrays[needExpendIndexs[i]]=true;acceptsReferences[needExpendIndexs[i]]=true};}var sub=[expr.left,expr.right];var args=[];for(var i=0;i<2;i++){var arg=this._evaluate(sub[i],context,acceptsArrays[i],acceptsReferences[i]);if(arg instanceof Calc.Error)return arg;if(arg===Calc.missingArgument)return CalcErrorsNotAvailable;args[i]=arg}return this._evaluateWithArgs(expr,function(args1){return expr.operator.evaluate(args1[0],args1[1],context)},context,needExpendIndexs,args,acceptsArray,acceptsReference)};Evaluator.prototype._evaluateFunction=function(expr,context,acceptsArray,acceptsReference,needExpendIndexs){if(!expr||!expr.fn||typeof expr.fn==="string"){return CalcErrorsName}var argCount=expr.argCount();var fn=expr.fn;var args;var getReferenceValues=keyword_null;if(argCount===0){args=[]}else
{args=[];var acceptsArrays=[];var acceptsReferences=[];for(var i=0;i<argCount;i++){acceptsArrays[i]=fn.acceptsArray(i);acceptsReferences[i]=fn.acceptsReference(i)}if(needExpendIndexs&&needExpendIndexs.length>0){getReferenceValues=[];for(var i=0;i<argCount;i++){getReferenceValues[i]=true}for(var i=0;i<needExpendIndexs.length;i++){var argIndex=needExpendIndexs[i];acceptsArrays[argIndex]=true;acceptsReferences[argIndex]=true;getReferenceValues[argIndex]=!(fn.acceptsReference(argIndex)&&!fn.acceptsArray(argIndex))}}if(fn.isBranch()&&(context.arrayFormulaMode||context._isExpandArrayToMultiCall())){acceptsArrays[fn.findTestArgument()]=true;acceptsReferences[fn.findTestArgument()]=true}var testArgValue;var testArg=-1;var branchArgument=-1;if(fn.isBranch()){var testArg=fn.findTestArgument();if(fn.acceptsArray(testArg)){context._beginExpandArrayToMultiCall()}testArgValue=this._evaluate(expr.getArg(testArg),context,acceptsArrays[testArg],acceptsReferences[testArg]);if(fn.acceptsArray(testArg)){context._endExpandArrayToMultiCall()}if(!(testArgValue instanceof Calc.Reference)&&!(testArgValue instanceof Calc.CalcArray)){branchArgument=fn.findBranchArgument(testArgValue)}}for(var i=0;i<argCount;i++){if(testArg===i){args[i]=testArgValue;continue}else if(branchArgument>=0&&i!==branchArgument){args[i]=null;continue}if(fn.acceptsArray(i)){context._beginExpandArrayToMultiCall()}var arg=this._evaluate(expr.getArg(i),context,acceptsArrays[i],acceptsReferences[i]);if(fn.acceptsArray(i)){context._endExpandArrayToMultiCall()}else if(!fn.acceptsArray(i)&&(arg instanceof CalcArray)||(!fn.acceptsReference(i))&&(arg instanceof Reference)){var array=(arg instanceof CalcArray)?arg:keyword_null;var reference=(arg instanceof Reference)?arg:keyword_null;if(array!=keyword_null&&array.getRowCount()==1&&array.getColumnCount()==1){arg=array.getValue(0,0)}else if(reference!=keyword_null&&reference.getRowCount(0)==1&&reference.getColumnCount(0)==1){arg=reference.getValue(0,0,0)}else
{var list=[];var contains=false;if(needExpendIndexs!=keyword_null){for(var j=0;j<needExpendIndexs.length;j++){list.push(needExpendIndexs[j]);if(needExpendIndexs[j]==i){contains=true}}}if(!contains){list.push(i);needExpendIndexs=list}}}if((arg instanceof Calc.Error)&&!fn.acceptsError(i))return arg;if(arg===Calc.missingArgument){if(!fn.acceptsMissingArgument(i)){arg=keyword_null}}args[i]=arg}}return this._evaluateWithArgs(expr,function(args1){if(fn.isContextSensitive()){context.acceptsReference=acceptsReference||context._isExpandArrayToMultiCall();return fn.evaluateWithContext(args1,context)}else
{return fn.evaluate(args1)}},context,needExpendIndexs,args,acceptsArray,acceptsReference,getReferenceValues)};Evaluator.prototype._evaluateWithArgs=function(expr,evaluateDelegate,context,needExpendIndexs,args,acceptsArray,acceptsReference,getReferenceValues){if(needExpendIndexs&&needExpendIndexs.length>0){var expendedArgs=this._expandArgs(context,expr,args,needExpendIndexs,getReferenceValues);if(expendedArgs==keyword_null){return CalcErrorsNotAvailable}var valueArray=[];var rowCount=expendedArgs[0].length;var colCount=expendedArgs[0][0].length;for(var rowIndex=0;rowIndex<rowCount;rowIndex++){valueArray[rowIndex]=[];for(var colIndex=0;colIndex<colCount;colIndex++){try
{var expArgs=[];for(var argIndex=0;argIndex<args.length;argIndex++){expArgs[argIndex]=expendedArgs[argIndex][rowIndex][colIndex]}var value=evaluateDelegate(expArgs);if(value instanceof Reference){value=this.getOneValue(context,value)}valueArray[rowIndex][colIndex]=value}catch(InvalidCastException){valueArray[rowIndex][colIndex]=CalcErrorsValue}}}return new _ConcreteArray(valueArray)}else
{try
{var value=evaluateDelegate(args);if(context.arrayFormulaMode&&context._isExpandArrayToMultiCall()){return value}if((value instanceof CalcArray)&&!acceptsArray){return this.getOneValue(context,value)}else if((value instanceof Reference)&&!acceptsReference){return this.getOneValue(context,value)}else
{return value}}catch(InvalidCastException){return CalcErrorsValue}}};Evaluator.prototype.getOneValue=function(context,value){if(value instanceof Reference){var reference=value;if(reference.getRangeCount()>1){value=CalcErrorsValue}else
{var r,c;if(context.rowOffset!=-1||context.columnOffset!=-1){r=reference.getRowCount(0)==1?0:context.rowOffset;c=reference.getColumnCount(0)==1?0:context.columnOffset}else
{r=reference.getRowCount(0)==1?0:context.row-reference.getRow(0);c=reference.getColumnCount(0)==1?0:context.column-reference.getColumn(0)}if(r>=reference.getRowCount(0)||c>=reference.getColumnCount(0)){value=CalcErrorsNotAvailable}else
{value=reference.getValue(0,r,c)}}}else if(value instanceof Calc.Array){var array=value;if(context.arrayFormulaMode&&(context.rowOffset!=-1||context.columnOffset!=-1)){var r=array.getRowCount()==1?0:context.rowOffset;var c=array.getColumnCount()==1?0:context.columnOffset;if(r>=array.getRowCount()||c>=array.getColumnCount()){value=CalcErrorsNotAvailable}else
{value=array.getValue(r,c)}}else
{value=array.getValue(0,0)}}return value};Evaluator.prototype._expandArgs=function(context,expr,args,needExpendIndexs,getReferenceValues){var rowCount=1;var colCount=1;var testArg=-1;var expandRow=true,expandColumn=true;var functionExpr=expr instanceof Expressions.FunctionExpression?expr:keyword_null;if(functionExpr!=keyword_null&&!functionExpr.fn.expandRows()){expandRow=false}if(functionExpr!=keyword_null&&!functionExpr.fn.expandColumns()){expandColumn=false}if(functionExpr!=keyword_null&&functionExpr.fn.isBranch&&(context.arrayFormulaMode||context._isExpandArrayToMultiCall())){testArg=functionExpr.fn.findTestArgument();var indexList=[];var contains=false;if(needExpendIndexs){for(var i=0;i<needExpendIndexs.length;i++){indexList.push(needExpendIndexs[i]);if(needExpendIndexs[i]===testArg){contains=true}}}if(contains||(args[testArg]instanceof CalcArray)||(args[testArg]instanceof Reference)){for(var j=0;j<functionExpr.argCount();j++){if(j!=testArg&&indexList.indexOf(j)<0&&(args[j]instanceof CalcArray||args[j]instanceof Reference)){indexList.push(j)}}needExpendIndexs=indexList}}for(var k=0;k<needExpendIndexs.length;k++){var argValue=args[needExpendIndexs[k]];var array=argValue instanceof CalcArray?argValue:null;var reference=argValue instanceof Reference?argValue:null;var rc=0,cc=0;if(array!=keyword_null){rc=array.getRowCount();cc=array.getColumnCount()}else if(reference!=keyword_null){if(reference.getRangeCount()>1){return keyword_null}rc=expandRow?reference.getRowCount(0):1;cc=expandColumn?reference.getColumnCount(0):1}rowCount=rc>rowCount?rc:rowCount;colCount=cc>colCount?cc:colCount}var expArgs=[];var expendIndexIndex=0;var expendIndex=needExpendIndexs[expendIndexIndex];for(var argIndex=0;argIndex<args.length;argIndex++){expArgs[argIndex]=[];var value=args[argIndex];var array=null;var reference=null;var rc=1,cc=1;if(argIndex==expendIndex){array=value instanceof CalcArray?value:keyword_null;reference=value instanceof Reference?value:keyword_null;if(array!=keyword_null||reference!=keyword_null){rc=array!=keyword_null?array.getRowCount():(expandRow?reference.getRowCount(0):1);cc=array!=keyword_null?array.getColumnCount():(expandColumn?reference.getColumnCount(0):1);if((rc!=1&&rc!=rowCount||cc!=1&&cc!=colCount)&&(testArg==-1||argIndex==testArg)){return keyword_null}}expendIndexIndex++;if(expendIndexIndex<needExpendIndexs.length){expendIndex=needExpendIndexs[expendIndexIndex]}else
{expendIndex=-1}}for(var rowIndex=0;rowIndex<rowCount;rowIndex++){expArgs[argIndex][rowIndex]=[];for(var colIndex=0;colIndex<colCount;colIndex++){if(rc!=1&&rowIndex>=rc||cc!=1&&colIndex>=cc){expArgs[argIndex][rowIndex][colIndex]=CalcErrorsNotAvailable}else if(array!=keyword_null){expArgs[argIndex][rowIndex][colIndex]=array.getValue(rc==1?0:rowIndex,cc==1?0:colIndex)}else if(reference!=keyword_null){if(getReferenceValues==keyword_null||getReferenceValues[argIndex]){expArgs[argIndex][rowIndex][colIndex]=reference.getValue(0,rc==1?0:rowIndex,cc==1?0:colIndex)}else
{expArgs[argIndex][rowIndex][colIndex]=new _ConcreteReference(reference,[new spread.Range(reference.getRow(0)+(rc==1?0:rowIndex),reference.getColumn(0)+(cc==1?0:colIndex),1,1)],0)}}else
{expArgs[argIndex][rowIndex][colIndex]=value}}}}return expArgs};return Evaluator})();Calc.Evaluator=Evaluator;function addListenerImp(obj,prop,item){if(!obj[prop]){obj[prop]=[]}obj[prop].push(item)}function removeListenerImp(obj,prop,item){var collection=obj[prop];if(collection){for(var i=0;i<collection.length;i++){if(collection[i]===item){collection.splice(i,1);return}}}}function intersectsListeners(obj,row,column,rowCount,columnCount){return((obj.row===-1)||(row===-1)||(obj.row<row+rowCount&&row<obj.row+obj.rowCount))&&((obj.column===-1)||(column===-1)||(obj.column<column+columnCount&&column<obj.column+obj.columnCount))}function containsCell(obj,row,column){return((obj.row===-1)||(obj.row<=row&&row<obj.row+obj.rowCount))&&((obj.column===-1)||(obj.column<=column&&column<obj.column+obj.columnCount))}var actionIntersects="intersects",actionContains="contains";function checkConditonImp(obj,opt){if(opt.action===actionIntersects){return intersectsListeners(obj,opt.row,opt.column,opt.rowCount,opt.columnCount)}else if(opt.action===actionContains){return containsCell(obj,opt.row,opt.column)}return false}function hasListensersImp(obj,list){for(var i=0;i<list.length;i++){if(obj.hasOwnProperty(list[i])&&obj[list[i]].length>0){return true}}return false}var cellListeners="cellListeners",rowListeners="rowListeners",columnListeners="columnListeners",rowSliceListeners="rowSliceListeners",columnSliceListeners="columnSliceListeners";var addToAdjust="addToAdjust",addToDirty="addToDirty";var incrementDelay="incrementDelay",decrementDelay="decrementDelay";var BaseCalc=(function(){function BaseCalc(){}BaseCalc.prototype.hasListeners=function(){return hasListensersImp(this,this._listeners)};BaseCalc.prototype.processCellListener=function(cell,isAdd){if(isAdd){addListenerImp(this,cellListeners,cell)}else
{removeListenerImp(this,cellListeners,cell)}};BaseCalc.prototype.processRowListener=function(row,isAdd){if(isAdd){addListenerImp(this,rowListeners,row)}else
{removeListenerImp(this,rowListeners,row)}};BaseCalc.prototype.processColumnListener=function(column,isAdd){if(isAdd){addListenerImp(this,columnListeners,column)}else
{removeListenerImp(this,columnListeners,column)}};BaseCalc.prototype.addListenersToAdjust=function(){var listeners=this._listeners;for(var lIndex=0;lIndex<listeners.length;lIndex++){var cls=this[listeners[lIndex]];if(cls){var cLength=cls.length;for(var i=0;i<cLength;i++){cls[i][addToAdjust]()}}}};BaseCalc.prototype.addListenersToDirty=function(){var listeners=this._listeners;for(var lIndex=0;lIndex<listeners.length;lIndex++){var cls=this[listeners[lIndex]];if(cls){var cLength=cls.length;for(var i=0;i<cLength;i++){cls[i][addToDirty]()}}}};BaseCalc.prototype.incrementDelayOfListeners=function(){var listeners=this._listeners;for(var lIndex=0;lIndex<listeners.length;lIndex++){var cls=this[listeners[lIndex]];if(cls){var cLength=cls.length;for(var i=0;i<cLength;i++){cls[i][incrementDelay]()}}}};BaseCalc.prototype.decrementDelayOfListeners=function(){var listeners=this._listeners;for(var lIndex=0;lIndex<listeners.length;lIndex++){var cls=this[listeners[lIndex]];if(cls){var cLength=cls.length;for(var i=0;i<cLength;i++){cls[i][decrementDelay]()}}}};BaseCalc.prototype.addToAdjust=function(){};BaseCalc.prototype.addToDirty=function(){};BaseCalc.prototype.incrementDelay=function(){};BaseCalc.prototype.decrementDelay=function(){};return BaseCalc})();Calc.BaseCalc=BaseCalc;var CellCalc=(function(_super){__extends(CellCalc,_super);function CellCalc(sheetSource,row,column){_super.call(this);var self=this;self.sheetSource=sheetSource;self.row=row;self.column=column;self.delay=0;self._listeners=[cellListeners,rowListeners,columnListeners]}CellCalc.prototype.incrementDelay=function(){this.delay+=1};CellCalc.prototype.decrementDelay=function(){this.delay-=1};CellCalc.prototype.startListening=function(){var self=this;self.sheetSource.linkCellExpression(self.row,self.column,1,1)};CellCalc.prototype.stopListening=function(){var self=this;self.sheetSource.unlinkCellExpression(self.row,self.column,1,1)};CellCalc.prototype.addToAdjust=function(){this.sheetSource._controller.addAdjustCell(this)};CellCalc.prototype.addToDirty=function(){this.sheetSource._controller.addDirtyCell(this)};return CellCalc})(BaseCalc);Calc.CellCalc=CellCalc;var RowCalc=(function(_super){__extends(RowCalc,_super);function RowCalc(sheetSource,row){_super.call(this);var self=this;self.sheetSource=sheetSource;self.row=row;self._listeners=[cellListeners,rowListeners,rowSliceListeners,columnListeners]}RowCalc.prototype.incrementDelay=function(){this.sheetSource.incrementDelay(this.row,-1,1,-1)};RowCalc.prototype.incrementDelay2=function(column,columnCount){this.sheetSource.incrementDelay(this.row,column,1,columnCount)};RowCalc.prototype.decrementDelay=function(){this.sheetSource.decrementDelay(this.row,-1,1,-1)};RowCalc.prototype.decrementDelay2=function(column,columnCount){this.sheetSource.decrementDelay(this.row,column,1,columnCount)};RowCalc.prototype.startListening=function(){this.sheetSource.linkRowExpression(this.row,1)};RowCalc.prototype.stopListening=function(){this.sheetSource.unlinkRowExpression(this.row,1)};RowCalc.prototype.processRowListener2=function(row,columnOffset,isAdd){if(isAdd){addListenerImp(this,rowSliceListeners,{row:row,columnOffset:columnOffset,columnCount:1})}else
{removeListenerImp(this,rowSliceListeners,{row:row,columnOffset:columnOffset,columnCount:1})}};RowCalc.prototype.addToAdjust=function(){this.sheetSource._controller.addAdjustRow(this)};RowCalc.prototype.addToDirty=function(){this.sheetSource._controller.addDirtyRow(this)};return RowCalc})(BaseCalc);Calc.RowCalc=RowCalc;var ColumnCalc=(function(_super){__extends(ColumnCalc,_super);function ColumnCalc(sheetSource,column){_super.call(this);var self=this;self.sheetSource=sheetSource;self.column=column;self._listeners=[cellListeners,rowListeners,columnListeners,columnSliceListeners]}ColumnCalc.prototype.incrementDelay=function(){this.sheetSource.incrementDelay(-1,this.column,-1,1)};ColumnCalc.prototype.incrementDelay2=function(row,rowCount){this.sheetSource.incrementDelay(row,this.column,rowCount,1)};ColumnCalc.prototype.decrementDelay=function(){this.sheetSource.decrementDelay(-1,this.column,-1,1)};ColumnCalc.prototype.decrementDelay2=function(row,rowCount){this.sheetSource.decrementDelay(row,this.column,rowCount,1)};ColumnCalc.prototype.startListening=function(){this.sheetSource.linkColumnExpression(this.column,1)};ColumnCalc.prototype.stopListening=function(){this.sheetSource.unlinkColumnExpression(this.column,1)};ColumnCalc.prototype.processColumnListener2=function(column,rowOffset,isAdd){if(isAdd){addListenerImp(this,columnSliceListeners,{column:column,rowOffset:rowOffset,rowCount:1})}else
{removeListenerImp(this,columnSliceListeners,{column:column,rowOffset:rowOffset,rowCount:1})}};ColumnCalc.prototype.addToAdjust=function(){this.sheetSource._controller.addAdjustColumn(this)};ColumnCalc.prototype.addToDirty=function(){this.sheetSource._controller.addDirtyColumn(this)};return ColumnCalc})(BaseCalc);Calc.ColumnCalc=ColumnCalc;var NameCalc=(function(_super){__extends(NameCalc,_super);function NameCalc(name){_super.call(this);this.name=name;this._listeners=[cellListeners,rowListeners,columnListeners]}NameCalc.prototype.incrementDelay=function(){this.delay+=1};NameCalc.prototype.decrementDelay=function(){this.delay-=1};NameCalc.prototype.updateListening=function(stop,start){var self=this;$(this._listeners).each(function(i,e){if(self[e]){$(self[e]).each(function(ii,ee){if(stop){ee["stopListening"]()}if(start){ee["startListening"]()}})}})};NameCalc.prototype.addToDirty=function(){var listeners=this._listeners;for(var lIndex=0;lIndex<listeners.length;lIndex++){var cls=this[listeners[lIndex]];if(cls){var cLength=cls.length;for(var i=0;i<cLength;i++){cls[i][addToDirty]()}}}};return NameCalc})(BaseCalc);Calc.NameCalc=NameCalc;var typeCell="cell",typeRow="row",typeCol="column";var RangeCalc=(function(){function RangeCalc(sheetSource){this.sheetSource=sheetSource;this._listeners=[cellListeners,rowListeners,columnListeners]}RangeCalc.prototype.processCellListener=function(row,column,rowCount,columnCount,listener,isAdd){if(isAdd){addListenerImp(this,cellListeners,{type:typeCell,row:row,column:column,rowCount:rowCount,columnCount:columnCount,listener:listener})}else
{removeListenerImp(this,cellListeners,{type:typeCell,row:row,column:column,rowCount:rowCount,columnCount:columnCount,listener:listener})}};RangeCalc.prototype.processRowListener=function(row,column,rowCount,columnCount,listener,all,sliceOffset,sliceCount,isAdd){if(isAdd){addListenerImp(this,rowListeners,{type:typeRow,row:row,column:column,rowCount:rowCount,columnCount:columnCount,listener:listener})}else
{removeListenerImp(this,rowListeners,{type:typeRow,row:row,column:column,rowCount:rowCount,columnCount:columnCount,listener:listener})}};RangeCalc.prototype.processColumnListener=function(row,column,rowCount,columnCount,listener,all,sliceOffset,sliceCount,isAdd){if(isAdd){addListenerImp(this,columnListeners,{type:typeCol,row:row,column:column,rowCount:rowCount,columnCount:columnCount,listener:listener})}else
{removeListenerImp(this,columnListeners,{type:typeCol,row:row,column:column,rowCount:rowCount,columnCount:columnCount,listener:listener})}};RangeCalc.prototype.addListenersToAdjust=function(row,column,rowCount,columnCount){var listeners=this._listeners;for(var lIndex=0;lIndex<listeners.length;lIndex++){var cls=this[listeners[lIndex]];if(cls){var cLength=cls.length;for(var i=0;i<cLength;i++){if(intersectsListeners(cls[i],row,column,rowCount,columnCount)){cls[i].listener[addToAdjust]()}}}}};RangeCalc.prototype.addListenersToDirty=function(row,column,rowCount,columnCount){var listeners=this._listeners;for(var lIndex=0;lIndex<listeners.length;lIndex++){var cls=this[listeners[lIndex]];if(cls){var cLength=cls.length;for(var i=0;i<cLength;i++){if(intersectsListeners(cls[i],row,column,rowCount,columnCount)){cls[i].listener[addToDirty]()}}}}};RangeCalc.prototype.incrementDelayOfListeners=function(row,column){var listeners=this._listeners;for(var lIndex=0;lIndex<listeners.length;lIndex++){var cls=this[listeners[lIndex]];if(cls){var cLength=cls.length;for(var i=0;i<cLength;i++){if(containsCell(cls[i],row,column)){cls[i].listener[incrementDelay]()}}}}};RangeCalc.prototype.decrementDelayOfListeners=function(row,column){var listeners=this._listeners;for(var lIndex=0;lIndex<listeners.length;lIndex++){var cls=this[listeners[lIndex]];if(cls){var cLength=cls.length;for(var i=0;i<cLength;i++){if(containsCell(cls[i],row,column)){cls[i].listener[decrementDelay]()}}}}};return RangeCalc})();function fnIntersectWith(current,range){var top=Math_max(current.row,range.row);var left=Math_max(current.column,range.column);var bottom=Math_min(current.row+current.rowCount,range.row+range.rowCount);var right=Math_min(current.column+current.columnCount,range.column+range.columnCount);if(top>=bottom||left>=right){return keyword_null}return{row:top,column:left,rowCount:bottom-top,columnCount:right-left,intersectWith:fnIntersectWith}}var MoveSwapInfo=(function(){function MoveSwapInfo(fromModel,fromRow,fromColumn,toModel,toRow,toColumn,rowCount,columnCount){var self=this;self._fromModel=fromModel;self._fromRow=fromRow;self._fromColumn=fromColumn;self._toModel=toModel;self._toRow=toRow;self._toColumn=toColumn;self._rowCount=rowCount;self._columnCount=columnCount}MoveSwapInfo.prototype.getRowOffset=function(){return this._toRow-this._fromRow};MoveSwapInfo.prototype.getColumnOffset=function(){return this._toColumn-this._fromColumn};MoveSwapInfo.prototype.sourceContains=function(model,row,column,rowCount,columnCount){var self=this;return(self._fromModel===model)&&((self._fromRow===-1)||(self._fromRow<=row&&row+rowCount<=self._fromRow+self._rowCount))&&((self._fromColumn===-1)||(self._fromColumn<=column&&column+columnCount<=self._fromColumn+self._columnCount))};MoveSwapInfo.prototype.destinationContains=function(model,row,column,rowCount,columnCount){var self=this;return(self._toModel===model)&&((self._toRow===-1)||(self._toRow<=row&&row+rowCount<=self._toRow+self._rowCount))&&((self._toColumn===-1)||(self._toColumn<=column&&column+columnCount<=self._toColumn+self._columnCount))};MoveSwapInfo.prototype.sourceIntersectWith=function(model,row,column,rowCount,columnCount){var self=this;if(self._toModel!==model){return keyword_null}var range=self._createValidCellRange(model,row,column,rowCount,columnCount);var sourceRange=self._createValidCellRange(model,self._fromRow,self._fromColumn,rowCount,columnCount);return sourceRange.intersectWith(range)};MoveSwapInfo.prototype._createValidCellRange=function(model,row,column,rowCount,columnCount){var validFromRow=(row===-1?0:row);var validFromRowCount=((row===-1||rowCount===-1)?model.rowCount:rowCount);var validFromColumn=(column===-1?0:column);var validFromColumnCount=((column===-1||columnCount===-1)?model.columnCount:columnCount);return{row:validFromRow,column:validFromColumn,rowCount:validFromRowCount,columnCount:validFromColumnCount,intersectWith:fnIntersectWith}};return MoveSwapInfo})();var _Controller=(function(){function _Controller(){this.autoCalculation=true;this.iteration=false;this.maximumIterations=1;this.maximumChange=0.01;var self=this;self._dataModels=[];self.clearDirties()}_Controller.prototype.attachDataModel=function(sheetSource){if(!this._dataModels.contains(sheetSource)){this._dataModels.push(sheetSource)}};_Controller.prototype.detachDataModel=function(sheetSource){var self=this;var nextDirtyCell=keyword_null;for(var cell=self._headDirtyCells;cell;cell=nextDirtyCell){nextDirtyCell=cell.nextDirty;if(cell.sheetSource===sheetSource){self.removeDirtyCell(cell)}}var nextDirtyRow=keyword_null;for(var row=self._headDirtyRows;row;row=nextDirtyRow){nextDirtyRow=row.nextDirty;if(row.sheetSource===sheetSource){self.removeDirtyRow(row)}}var nextDirtyColumn=keyword_null;for(var column=self._headDirtyColumns;column;column=nextDirtyColumn){nextDirtyColumn=column.nextDirty;if(column.sheetSource===sheetSource){self.removeDirtyColumn(column)}}for(var i=0;i<self._dataModels.length;i++){if(self._dataModels[i]===sheetSource){self._dataModels.splice(i,1);break}}};_Controller.prototype.getAllCustomNames=function(){var names=[];var spread;for(var i=0;i<this._dataModels.length;i++){var source=this._dataModels[i];if(source._sheet){if(!spread){spread=source._sheet.parent}var sourceNames=source._sheet.getCustomNames();if(sourceNames&&sourceNames.length>0){names=names.concat(sourceNames)}}}if(spread&&spread.getCustomNames){var spreadNames=spread.getCustomNames();if(spreadNames&&spreadNames.length>0){names=names.concat(spreadNames)}}return names};_Controller.prototype.isDirtyCell=function(cell){return(typeof cell.previousDirty!==const_undefined)||cell===this._headDirtyCells};_Controller.prototype.addDirtyCell=function(cell){var self=this;if(cell&&!((typeof cell.previousDirty!==const_undefined)||cell===this._headDirtyCells)){if(self._headDirtyCells){self._tailDirtyCells.nextDirty=cell}else
{self._headDirtyCells=cell}cell.previousDirty=self._tailDirtyCells;cell.nextDirty=keyword_null;self._tailDirtyCells=cell}};_Controller.prototype.removeDirtyCell=function(cell){var self=this;if(self.isDirtyCell(cell)){var prevDirty=cell.previousDirty;var nextDirty=cell.nextDirty;if(prevDirty){prevDirty.nextDirty=nextDirty}else
{self._headDirtyCells=nextDirty}if(nextDirty){nextDirty.previousDirty=prevDirty}else
{self._tailDirtyCells=prevDirty}cell.previousDirty=keyword_undefined;cell.nextDirty=keyword_undefined}};_Controller.prototype.isDirtyRow=function(row){return row.previousDirty||row===this._headDirtyRows};_Controller.prototype.addDirtyRow=function(row){var self=this;if(row&&!self.isDirtyRow(row)&&row.row<row.sheetSource.getRowCount()){if(self._headDirtyRows){self._tailDirtyRows.nextDirty=row}else
{self._headDirtyRows=row}row.previousDirty=self._tailDirtyRows;row.nextDirty=keyword_null;self._tailDirtyRows=row}};_Controller.prototype.removeDirtyRow=function(row){var self=this;if(self.isDirtyRow(row)){var prevDirty=row.previousDirty;var nextDirty=row.nextDirty;if(prevDirty){prevDirty.nextDirty=nextDirty}else
{self._headDirtyRows=nextDirty}if(nextDirty){nextDirty.previousDirty=prevDirty}else
{self._tailDirtyRows=prevDirty}row.previousDirty=keyword_null;row.nextDirty=keyword_null}};_Controller.prototype.isDirtyColumn=function(column){return column.previousDirty||column===this._headDirtyColumns};_Controller.prototype.addDirtyColumn=function(column){var self=this;if(column&&!self.isDirtyColumn(column)&&column.column<column.sheetSource.getColumnCount()){if(self._headDirtyColumns){self._tailDirtyColumns.nextDirty=column}else
{self._headDirtyColumns=column}column.previousDirty=self._tailDirtyColumns;column.nextDirty=keyword_null;self._tailDirtyColumns=column}};_Controller.prototype.removeDirtyColumn=function(column){var self=this;if(self.isDirtyColumn(column)){var prevDirty=column.previousDirty;var nextDirty=column.nextDirty;if(prevDirty){prevDirty.nextDirty=nextDirty}else
{self._headDirtyColumns=nextDirty}if(nextDirty){nextDirty.previousDirty=prevDirty}else
{self._tailDirtyColumns=prevDirty}column.previousDirty=keyword_null;column.nextDirty=keyword_null}};_Controller.prototype.isVolatileCell=function(cell){return cell.previousVolatile||cell===this._headVolatileCells};_Controller.prototype.addVolatileCell=function(cell){var self=this;if(cell&&!self.isVolatileCell(cell)&&cell.row<cell.sheetSource.getRowCount()&&cell.column<cell.sheetSource.getColumnCount()){if(self._headVolatileCells){self._tailVolatileCells.nextDirty=cell}else
{self._headVolatileCells=cell}cell.previousDirty=self._tailVolatileCells;cell.nextDirty=keyword_null;self._tailVolatileCells=cell}};_Controller.prototype.removeVolatileCell=function(cell){var self=this;if(self.isVolatileCell(cell)){var prevDirty=cell.previousDirty;var nextDirty=cell.nextDirty;if(prevDirty){prevDirty.nextDirty=nextDirty}else
{self._headVolatileCells=nextDirty}if(nextDirty){nextDirty.previousDirty=prevDirty}else
{self._tailVolatileCells=prevDirty}cell.previousDirty=keyword_undefined;cell.nextDirty=keyword_undefined}};_Controller.prototype.isAdjustCell=function(cell){return cell.previousAdjust||cell===this._headAdjustCells};_Controller.prototype.addAdjustCell=function(cell){var self=this;if(cell&&!self.isAdjustCell(cell)&&cell.row<cell.sheetSource.getRowCount()&&cell.column<cell.sheetSource.getColumnCount()){if(self._headAdjustCells){self._tailAdjustCells.nextAdjust=cell}else
{self._headAdjustCells=cell}cell.previousAdjust=self._tailAdjustCells;cell.nextAdjust=keyword_null;self._tailAdjustCells=cell}};_Controller.prototype.removeAdjustCell=function(cell){var self=this;if(self.isAdjustCell(cell)){var prevAdjust=cell.previousAdjust;var nextAdjust=cell.nextAdjust;if(prevAdjust){prevAdjust.nextAdjust=nextAdjust}else
{self._headAdjustCells=nextAdjust}if(nextAdjust){nextAdjust.previousAdjust=prevAdjust}else
{self._tailAdjustCells=prevAdjust}cell.previousAdjust=keyword_null;cell.nextAdjust=keyword_null}};_Controller.prototype.isAdjustRow=function(row){return row.previousAdjust||row===this._headAdjustRows};_Controller.prototype.addAdjustRow=function(row){var self=this;if(row&&!self.isAdjustRow(row)&&row.row<row.sheetSource.getRowCount()){if(self._headAdjustRows){self._tailAdjustRows.nextAdjust=row}else
{self._headAdjustRows=row}row.previousAdjust=self._tailAdjustRows;row.nextAdjust=keyword_null;self._tailAdjustRows=row}};_Controller.prototype.removeAdjustRow=function(row){var self=this;if(self.isAdjustRow(row)){var prevAdjust=row.previousAdjust;var nextAdjust=row.nextAdjust;if(prevAdjust){prevAdjust.nextAdjust=nextAdjust}else
{self._headAdjustRows=nextAdjust}if(nextAdjust){nextAdjust.previousAdjust=prevAdjust}else
{self._tailAdjustRows=prevAdjust}row.previousAdjust=keyword_null;row.nextAdjust=keyword_null}};_Controller.prototype.isAdjustColumn=function(column){return column.previousAdjust||column===this._headAdjustColumns};_Controller.prototype.addAdjustColumn=function(column){var self=this;if(column&&!self.isAdjustColumn(column)&&column.column<column.sheetSource.getColumnCount()){if(self._headAdjustColumns){self._tailAdjustColumns.nextAdjust=column}else
{self._headAdjustColumns=column}column.previousAdjust=self._tailAdjustColumns;column.nextAdjust=keyword_null;self._tailAdjustColumns=column}};_Controller.prototype.removeAdjustColumn=function(column){var self=this;if(self.isAdjustColumn(column)){var prevAdjust=column.previousAdjust;var nextAdjust=column.nextAdjust;if(prevAdjust){prevAdjust.nextAdjust=nextAdjust}else
{self._headAdjustColumns=nextAdjust}if(nextAdjust){nextAdjust.previousAdjust=prevAdjust}else
{self._tailAdjustColumns=prevAdjust}column.previousAdjust=keyword_null;column.nextAdjust=keyword_null}};_Controller.prototype.recalculate=function(dirtyDependency){if(dirtyDependency===undefined){dirtyDependency=true}var self=this;var nextDirty=keyword_null,progress=false,sheetSource,r,c,row,col,rowCount,columnCount,cell,rowCalc,columnCalc,rangesCalc;if(dirtyDependency){while(self._headVolatileCells){self.addDirtyCell(self._headVolatileCells);self.removeVolatileCell(self._headVolatileCells)}while(self._headDirtyRows){sheetSource=self._headDirtyRows.sheetSource;columnCount=sheetSource.getColumnCount();for(c=0;c<columnCount;c++){self.addDirtyCell(sheetSource._getCellCalc(self._headDirtyRows.row,c,true))}self.removeDirtyRow(self._headDirtyRows)}while(self._headDirtyColumns){sheetSource=self._headDirtyColumns.sheetSource;rowCount=sheetSource.getRowCount();for(r=0;r<rowCount;r++){self.addDirtyCell(sheetSource._getCellCalc(r,self._headDirtyColumns.column,true))}self.removeDirtyColumn(self._headDirtyColumns)}for(cell=self._headDirtyCells;cell;cell=cell.nextDirty){sheetSource=cell.sheetSource;row=cell.row;col=cell.column;rowCalc=sheetSource._getRowCalc(row,false);columnCalc=sheetSource._getColumnCalc(col,false);rangesCalc=sheetSource._getRangeCalc(false);cell.addListenersToDirty();if(rowCalc){rowCalc.addListenersToDirty(col)}if(columnCalc){columnCalc.addListenersToDirty(row)}if(rangesCalc){rangesCalc.addListenersToDirty(row,col,1,1)}while(self._headDirtyRows){sheetSource=self._headDirtyRows.sheetSource;columnCount=sheetSource.getColumnCount();for(c=0;c<columnCount;c++){self.addDirtyCell(sheetSource._getCellCalc(self._headDirtyRows.row,c,true))}self.removeDirtyRow(self._headDirtyRows)}while(self._headDirtyColumns){sheetSource=self._headDirtyColumns.sheetSource;rowCount=sheetSource.getRowCount();for(r=0;r<rowCount;r++){self.addDirtyCell(sheetSource._getCellCalc(r,self._headDirtyColumns.column,true))}self.removeDirtyColumn(self._headDirtyColumns)}}}for(cell=self._headDirtyCells;cell;cell=nextDirty){sheetSource=cell.sheetSource;var maxRowCount=sheetSource.getRowCount();var maxColCount=sheetSource.getColumnCount();nextDirty=cell.nextDirty;if(cell.row<maxRowCount&&cell.column<maxColCount){cell.delay=0}else
{self.removeDirtyCell(cell)}}for(cell=self._headDirtyCells;cell;cell=cell.nextDirty){sheetSource=cell.sheetSource;r=cell.row;c=cell.column;rowCalc=sheetSource._getRowCalc(r,false);columnCalc=sheetSource._getColumnCalc(c,false);rangesCalc=sheetSource._getRangeCalc(false);cell.incrementDelayOfListeners();if(rowCalc){rowCalc.incrementDelayOfListeners(c)}if(columnCalc){columnCalc.incrementDelayOfListeners(r)}if(rangesCalc){rangesCalc.incrementDelayOfListeners(r,c)}}do
{progress=false;for(cell=self._headDirtyCells;cell;cell=nextDirty){nextDirty=cell.nextDirty;if(cell.delay===0){sheetSource=cell.sheetSource;r=cell.row;c=cell.column;rowCalc=sheetSource._getRowCalc(r,false);columnCalc=sheetSource._getColumnCalc(c,false);rangesCalc=sheetSource._getRangeCalc(false);sheetSource.recalculateCell(r,c);self.removeDirtyCell(cell);cell.decrementDelayOfListeners();if(rowCalc){rowCalc.decrementDelayOfListeners(c)}if(columnCalc){columnCalc.decrementDelayOfListeners(r)}if(rangesCalc){rangesCalc.decrementDelayOfListeners(r,c)}progress=true}}}while(progress);if(self._headDirtyCells){var moreIterations=true;for(var i=0;moreIterations&&i<self.maximumIterations;i++){moreIterations=false;for(cell=self._headDirtyCells;cell;cell=cell.nextDirty){var formulaContext=cell.sheetSource;r=cell.row;c=cell.column;var oldValue=formulaContext.getValue(r,c);formulaContext.recalculateCell(r,c);var newValue=formulaContext.getValue(r,c);if(self._iterationChange(oldValue,newValue)>=self.maximumChange){moreIterations=true}}}}};_Controller.prototype._iterationChange=function(oldValue,newValue){var oldDouble=parseFloat(oldValue);var newDouble=parseFloat(newValue);return Math_abs(newDouble-oldDouble)};_Controller.prototype.clearDirties=function(){var self=this;self._headAdjustCells=keyword_null;self._tailAdjustCells=keyword_null;self._headAdjustRows=keyword_null;self._tailAdjustRows=keyword_null;self._headAdjustColumns=keyword_null;self._tailAdjustColumns=keyword_null;self._headDirtyCells=keyword_null;self._tailDirtyCells=keyword_null;self._headDirtyRows=keyword_null;self._tailDirtyRows=keyword_null;self._headDirtyColumns=keyword_null;self._tailDirtyColumns=keyword_null;self._headVolatileCells=keyword_null;self._tailVolatileCells=keyword_null};_Controller.prototype._adjustIndexOnAdd=function(baseModel,refModel,baseIndex,index,relative,addModel,addIndex,addCount){if(baseIndex>=0||!relative){var refIndex=index+(relative?baseIndex:0);if(addModel===baseModel){if(addIndex+addCount<=baseIndex){refIndex-=(relative?addCount:0)}}if(addModel===refModel){if(addIndex<=refIndex){refIndex+=addCount}}refIndex-=(relative?baseIndex:0);return refIndex}return index};_Controller.prototype._adjustRangeOnAdd=function(baseModel,refModel,baseIndex,index,relative,endIndex,endRelative,addModel,addIndex,addCount){if(baseIndex>=0||!relative){var refIndex=index+(relative?baseIndex:0);var refEndIndex=endIndex+(endRelative?baseIndex:0);if(addModel===baseModel){if(addIndex+addCount<=baseIndex){refIndex-=(relative?addCount:0);refEndIndex-=(endRelative?addCount:0)}}if(addModel===refModel){if(addIndex<=refIndex){refIndex+=addCount;refEndIndex+=addCount}else if(addIndex<=refEndIndex){refEndIndex+=addCount}}refIndex-=(relative?baseIndex:0);refEndIndex-=(endRelative?baseIndex:0);return{index:refIndex,endIndex:refEndIndex}}return{index:index,endIndex:endIndex}};_Controller.prototype._adjustCellExpressionOnAddRow=function(baseModel,refModel,baseRow,baseColumn,refExpr,addModel,addRow,addRowCount){if(refModel){var refRowRelative=refExpr.rowRelative;if(baseRow>=0||!refRowRelative){var refRow=this._adjustIndexOnAdd(baseModel,refModel,baseRow,refExpr.row,refExpr.rowRelative,addModel,addRow,addRowCount);if(refRow!==refExpr.row){if(baseModel===refModel){return new Expressions.CellExpression(refRow,refExpr.column,refRowRelative,refExpr.columnRelative)}else
{return new Expressions.ExternalCellExpression(refModel,refRow,refExpr.column,refRowRelative,refExpr.columnRelative)}}}}return refExpr};_Controller.prototype._adjustRangeExpressionOnAddRow=function(baseModel,refModel,baseRow,baseColumn,refExpr,addModel,addRow,addRowCount){if(refModel){var rangeType=refExpr._getRangeType();if(rangeType===RangeType.sheet||rangeType===RangeType.column){return refExpr}var refStartRowRelative=refExpr.startRowRelative;var refEndRowRelative=refExpr.endRowRelative;if(baseRow>=0||!refStartRowRelative||!refEndRowRelative){var result=this._adjustRangeOnAdd(baseModel,refModel,baseRow,refExpr.startRow,refStartRowRelative,refExpr.endRow,refEndRowRelative,addModel,addRow,addRowCount);var refStartRow=result.index;var refEndRow=result.endIndex;if(rangeType===RangeType.row){var newExpr;if(baseModel===refModel){newExpr=new Expressions.RangeExpression;newExpr.initBand(refStartRow,refEndRow,refStartRowRelative,refEndRowRelative,true)}else
{newExpr=new Expressions.ExternalRangeExpression;newExpr.initBand(refModel,refStartRow,refEndRow,refStartRowRelative,refEndRowRelative,true)}return newExpr}if(baseModel===refModel){return new Expressions.RangeExpression(refStartRow,refExpr.startColumn,refEndRow,refExpr.endColumn,refStartRowRelative,refExpr.startColumnRelative,refEndRowRelative,refExpr.endColumnRelative)}else
{return new Expressions.ExternalRangeExpression(refModel,refStartRow,refExpr.startColumn,refEndRow,refExpr.endColumn,refStartRowRelative,refExpr.startColumnRelative,refEndRowRelative,refExpr.endColumnRelative)}}}return refExpr};_Controller.prototype._adjustCellExpressionOnAddColumn=function(baseModel,refModel,baseRow,baseColumn,refExpr,addModel,addColumn,addColumnCount){if(refModel){var refColumnRelative=refExpr.columnRelative;if(baseColumn>=0||!refColumnRelative){var refColumn=this._adjustIndexOnAdd(baseModel,refModel,baseColumn,refExpr.column,refExpr.columnRelative,addModel,addColumn,addColumnCount);if(refColumn!==refExpr.column){if(baseModel===refModel){return new Expressions.CellExpression(refExpr.row,refColumn,refExpr.rowRelative,refColumnRelative)}else
{return new Expressions.ExternalCellExpression(refModel,refExpr.row,refColumn,refExpr.rowRelative,refColumnRelative)}}}}return refExpr};_Controller.prototype._adjustStructReferenceExpressionOnAddColumn=function(baseModel,refModel,baseRow,baseColumn,refExpr,addModel,addColumn,addColumnCount){if(refModel){var table=refExpr;if(table&&refModel===table.source()){return table.offsetWhenInsertRemoveColumn(addColumn,addColumnCount,true)}}return refExpr};_Controller.prototype._adjustStructReferenceExpressionOnRemoveColumn=function(baseModel,refModel,baseRow,baseColumn,refExpr,removeModel,removeColumn,removeColumnCount){if(refModel){var table=refExpr;if(table&&refModel===table.source()){return table.offsetWhenInsertRemoveColumn(removeColumn,removeColumnCount,false)}}return refExpr};_Controller.prototype._adjustRangeExpressionOnAddColumn=function(baseModel,refModel,baseRow,baseColumn,refExpr,addModel,addColumn,addColumnCount){if(refModel){var rangeType=refExpr._getRangeType();if(rangeType===RangeType.sheet||rangeType===RangeType.row){return refExpr}var refStartColumnRelative=refExpr.startColumnRelative;var refEndColumnRelative=refExpr.endColumnRelative;if(baseColumn>=0||!refStartColumnRelative||!refEndColumnRelative){var result=this._adjustRangeOnAdd(baseModel,refModel,baseColumn,refExpr.startColumn,refStartColumnRelative,refExpr.endColumn,refEndColumnRelative,addModel,addColumn,addColumnCount);var refStartColumn=result.index;var refEndColumn=result.endIndex;if(rangeType===RangeType.column){var newExpr;if(baseModel===refModel){newExpr=new Expressions.RangeExpression;newExpr.initBand(refStartColumn,refEndColumn,refStartColumnRelative,refEndColumnRelative,false)}else
{newExpr=new Expressions.ExternalRangeExpression;newExpr.initBand(refModel,refStartColumn,refEndColumn,refStartColumnRelative,refEndColumnRelative,false)}return newExpr}if(baseModel===refModel){return new Expressions.RangeExpression(refExpr.startRow,refStartColumn,refExpr.endRow,refEndColumn,refExpr.startRowRelative,refStartColumnRelative,refExpr.endRowRelative,refEndColumnRelative)}else
{return new Expressions.ExternalRangeExpression(refModel,refExpr.startRow,refStartColumn,refExpr.endRow,refEndColumn,refExpr.startRowRelative,refStartColumnRelative,refExpr.endRowRelative,refEndColumnRelative)}}}return refExpr};_Controller.prototype.adjustFormulaOnAddRows=function(baseModel,baseRow,baseColumn,oldExpr,addModel,addRow,addRowCount){var self=this;var newExpr=oldExpr,arg;if(oldExpr instanceof Expressions.CellExpression){newExpr=self._adjustCellExpressionOnAddRow(baseModel,baseModel,baseRow,baseColumn,oldExpr,addModel,addRow,addRowCount)}else if(oldExpr instanceof Expressions.RangeExpression){newExpr=self._adjustRangeExpressionOnAddRow(baseModel,baseModel,baseRow,baseColumn,oldExpr,addModel,addRow,addRowCount)}else if(oldExpr instanceof Expressions.ExternalCellExpression){newExpr=self._adjustCellExpressionOnAddRow(baseModel,oldExpr.source,baseRow,baseColumn,oldExpr,addModel,addRow,addRowCount)}else if(oldExpr instanceof Expressions.ExternalRangeExpression){newExpr=self._adjustRangeExpressionOnAddRow(baseModel,oldExpr.source,baseRow,baseColumn,oldExpr,addModel,addRow,addRowCount)}else if(oldExpr instanceof Expressions.ParenthesesExpression){arg=self.adjustFormulaOnAddRows(baseModel,baseRow,baseColumn,oldExpr.argument,addModel,addRow,addRowCount);if(arg!==oldExpr.argument){newExpr=new Expressions.ParenthesesExpression(arg)}}else if(oldExpr instanceof Expressions.UnaryOperatorExpression){arg=self.adjustFormulaOnAddRows(baseModel,baseRow,baseColumn,oldExpr.operand,addModel,addRow,addRowCount);if(arg!==oldExpr.operand){newExpr=new Expressions.UnaryOperatorExpression(oldExpr.operator,arg)}}else if(oldExpr instanceof Expressions.BinaryOperatorExpression){var arg0=self.adjustFormulaOnAddRows(baseModel,baseRow,baseColumn,oldExpr.left,addModel,addRow,addRowCount);var arg1=self.adjustFormulaOnAddRows(baseModel,baseRow,baseColumn,oldExpr.right,addModel,addRow,addRowCount);if(arg0!==oldExpr.left||arg1!==oldExpr.right){newExpr=new Expressions.BinaryOperatorExpression(oldExpr.operator,arg0,arg1)}}else if(oldExpr instanceof Expressions.FunctionExpression){var args=keyword_null,fnArg,i;var argCount=oldExpr.argCount();for(i=0;i<argCount;i++){fnArg=oldExpr.getArg(i);arg=self.adjustFormulaOnAddRows(baseModel,baseRow,baseColumn,fnArg,addModel,addRow,addRowCount);if(arg!==fnArg){args=[];args[i]=arg;break}}if(args){for(i=0;i<argCount;i++){fnArg=oldExpr.getArg(i);if(args[i]===keyword_undefined||args[i]===keyword_null){args[i]=self.adjustFormulaOnAddRows(baseModel,baseRow,baseColumn,fnArg,addModel,addRow,addRowCount)}}newExpr=new Expressions.FunctionExpression(oldExpr.fn,args)}}return newExpr};_Controller.prototype.adjustFormulasOnAddRows=function(addModel,addRow,addRowCount){this.adjustFormulasOnOperator(addModel,this.adjustFormulaOnAddRows,addRow,addRowCount)};_Controller.prototype.adjustFormulaOnAddColumns=function(baseModel,baseRow,baseColumn,oldExpr,addModel,addColumn,addColumnCount){var self=this;var newExpr=oldExpr,arg;if(oldExpr instanceof Expressions.CellExpression){newExpr=self._adjustCellExpressionOnAddColumn(baseModel,baseModel,baseRow,baseColumn,oldExpr,addModel,addColumn,addColumnCount)}else if(oldExpr instanceof Expressions.RangeExpression){newExpr=self._adjustRangeExpressionOnAddColumn(baseModel,baseModel,baseRow,baseColumn,oldExpr,addModel,addColumn,addColumnCount)}else if(oldExpr instanceof Expressions.ExternalCellExpression){newExpr=self._adjustCellExpressionOnAddColumn(baseModel,oldExpr.source,baseRow,baseColumn,oldExpr,addModel,addColumn,addColumnCount)}else if(oldExpr instanceof Expressions.ExternalRangeExpression){newExpr=self._adjustRangeExpressionOnAddColumn(baseModel,oldExpr.source,baseRow,baseColumn,oldExpr,addModel,addColumn,addColumnCount)}else if(oldExpr instanceof Expressions.ParenthesesExpression){arg=self.adjustFormulaOnAddColumns(baseModel,baseRow,baseColumn,oldExpr.argument,addModel,addColumn,addColumnCount);if(arg!==oldExpr.argument){newExpr=new Expressions.ParenthesesExpression(arg)}}else if(oldExpr instanceof Expressions.UnaryOperatorExpression){arg=self.adjustFormulaOnAddColumns(baseModel,baseRow,baseColumn,oldExpr.operand,addModel,addColumn,addColumnCount);if(arg!==oldExpr.operand){newExpr=new Expressions.UnaryOperatorExpression(oldExpr.operator,arg)}}else if(oldExpr instanceof Expressions.BinaryOperatorExpression){var arg0=self.adjustFormulaOnAddColumns(baseModel,baseRow,baseColumn,oldExpr.left,addModel,addColumn,addColumnCount);var arg1=self.adjustFormulaOnAddColumns(baseModel,baseRow,baseColumn,oldExpr.right,addModel,addColumn,addColumnCount);if(arg0!==oldExpr.left||arg1!==oldExpr.right){newExpr=new Expressions.BinaryOperatorExpression(oldExpr.operator,arg0,arg1)}}else if(oldExpr instanceof Expressions.FunctionExpression){var args=keyword_null,fnArg,i;var argCount=oldExpr.argCount();for(i=0;i<argCount;i++){fnArg=oldExpr.getArg(i);arg=self.adjustFormulaOnAddColumns(baseModel,baseRow,baseColumn,fnArg,addModel,addColumn,addColumnCount);if(arg!==fnArg){args=[];args[i]=arg;break}}if(args){for(i=0;i<argCount;i++){fnArg=oldExpr.getArg(i);if(args[i]===keyword_undefined||args[i]===keyword_null){args[i]=self.adjustFormulaOnAddColumns(baseModel,baseRow,baseColumn,fnArg,addModel,addColumn,addColumnCount)}}newExpr=new Expressions.FunctionExpression(oldExpr.fn,args)}}else if(oldExpr instanceof Expressions.StructReferenceExpression){newExpr=self._adjustStructReferenceExpressionOnAddColumn(baseModel,baseModel,baseRow,baseColumn,oldExpr,addModel,addColumn,addColumnCount)}return newExpr};_Controller.prototype.adjustFormulasOnAddColumns=function(addModel,addColumn,addColumnCount){this.adjustFormulasOnOperator(addModel,this.adjustFormulaOnAddColumns,addColumn,addColumnCount)};_Controller.prototype._adjustIndexOnRemove=function(baseModel,refModel,baseIndex,index,relative,removeModel,removeIndex,removeCount){if(baseIndex>=0||!relative){var refIndex=index+(relative?baseIndex:0);if(removeModel===baseModel){if(removeIndex<=baseIndex){refIndex+=(relative?removeCount:0)}}if(removeModel===refModel){if(removeIndex+removeCount<=refIndex){refIndex-=removeCount}else if(removeIndex<=refIndex){return CalcErrorsReference}}refIndex-=(relative?baseIndex:0);return refIndex}return index};_Controller.prototype._adjustRangeOnRemove=function(baseModel,refModel,baseIndex,index,relative,endIndex,endRelative,removeModel,removeIndex,removeCount){if(baseIndex>=0||!relative){var refIndex=index+(relative?baseIndex:0);var refEndIndex=endIndex+(endRelative?baseIndex:0);var removeEndIndex=removeIndex+removeCount-1;if(removeModel===baseModel){if(removeIndex<=baseIndex){refIndex+=(relative?removeCount:0);refEndIndex+=(endRelative?removeCount:0)}}if(removeModel===refModel){if(removeEndIndex<refIndex){refIndex-=removeCount;refEndIndex-=removeCount}else if(removeIndex<=refIndex&&removeEndIndex>=refEndIndex){return CalcErrorsReference}else if(removeIndex>refEndIndex){}else if(removeEndIndex<=refEndIndex){refIndex=removeIndex>=refIndex?refIndex:removeIndex;refEndIndex-=(endRelative?removeCount:0)}else
{refEndIndex=removeIndex}}refIndex-=(relative?baseIndex:0);refEndIndex-=(endRelative?baseIndex:0);return{index:refIndex,endIndex:refEndIndex}}return{index:index,endIndex:endIndex}};_Controller.prototype._adjustCellExpressionOnRemoveRow=function(baseModel,refModel,baseRow,baseColumn,refExpr,removeModel,removeRow,removeRowCount){if(refModel){var refRowRelative=refExpr.rowRelative;if(baseRow>=0||!refRowRelative){var refRow=this._adjustIndexOnRemove(baseModel,refModel,baseRow,refExpr.row,refExpr.rowRelative,removeModel,removeRow,removeRowCount);if(refRow instanceof CalcError){return new Expressions.ErrorExpression(refRow)}if(refRow!==refExpr.row){if(baseModel===refModel){return new Expressions.CellExpression(refRow,refExpr.column,refRowRelative,refExpr.columnRelative)}else
{return new Expressions.ExternalCellExpression(refModel,refRow,refExpr.column,refRowRelative,refExpr.columnRelative)}}}}return refExpr};_Controller.prototype._adjustRangeExpressionOnRemoveRow=function(baseModel,refModel,baseRow,baseColumn,refExpr,removeModel,removeRow,removeRowCount){if(refModel){var rangeType=refExpr._getRangeType();if(rangeType===RangeType.sheet||rangeType===RangeType.column){return refExpr}var refStartRowRelative=refExpr.startRowRelative;var refEndRowRelative=refExpr.endRowRelative;if(baseRow>=0||!refStartRowRelative||!refEndRowRelative){var refRange=this._adjustRangeOnRemove(baseModel,refModel,baseRow,refExpr.startRow,refStartRowRelative,refExpr.endRow,refEndRowRelative,removeModel,removeRow,removeRowCount);if(refRange instanceof CalcError){return new Expressions.ErrorExpression(refRange)}var refStartRow=refRange.index;var refEndRow=refRange.endIndex;if(rangeType===RangeType.column){var newExpr;if(baseModel===refModel){newExpr=new Expressions.RangeExpression;newExpr.initBand(refStartRow,refEndRow,refStartRowRelative,refEndRowRelative,false)}else
{newExpr=new Expressions.ExternalRangeExpression;newExpr.initBand(refModel,refStartRow,refEndRow,refStartRowRelative,refEndRowRelative,false)}return newExpr}if(baseModel===refModel){return new Expressions.RangeExpression(refStartRow,refExpr.startColumn,refEndRow,refExpr.endColumn,refStartRowRelative,refExpr.startColumnRelative,refEndRowRelative,refExpr.endColumnRelative)}else
{return new Expressions.ExternalRangeExpression(refModel,refStartRow,refExpr.startColumn,refEndRow,refExpr.endColumn,refStartRowRelative,refExpr.startColumnRelative,refEndRowRelative,refExpr.endColumnRelative)}}}return refExpr};_Controller.prototype._adjustCellExpressionOnRemoveColumn=function(baseModel,refModel,baseRow,baseColumn,refExpr,removeModel,removeColumn,removeColumnCount){if(refModel){var refColumnRelative=refExpr.columnRelative;if(baseColumn>=0||!refColumnRelative){var refColumn=this._adjustIndexOnRemove(baseModel,refModel,baseColumn,refExpr.column,refExpr.columnRelative,removeModel,removeColumn,removeColumnCount);if(refColumn instanceof CalcError){return new Expressions.ErrorExpression(refColumn)}if(refColumn!==refExpr.column){if(baseModel===refModel){return new Expressions.CellExpression(refExpr.row,refColumn,refExpr.rowRelative,refColumnRelative)}else
{return new Expressions.ExternalCellExpression(refModel,refExpr.row,refColumn,refExpr.rowRelative,refColumnRelative)}}}}return refExpr};_Controller.prototype._adjustRangeExpressionOnRemoveColumn=function(baseModel,refModel,baseRow,baseColumn,refExpr,removeModel,removeColumn,removeColumnCount){if(refModel){var rangeType=refExpr._getRangeType();if(rangeType===RangeType.sheet||rangeType===RangeType.row){return refExpr}var refStartColumnRelative=refExpr.startColumnRelative;var refEndColumnRelative=refExpr.endColumnRelative;if(baseColumn>=0||!refStartColumnRelative||!refEndColumnRelative){var refRange=this._adjustRangeOnRemove(baseModel,refModel,baseColumn,refExpr.startColumn,refStartColumnRelative,refExpr.endColumn,refEndColumnRelative,removeModel,removeColumn,removeColumnCount);if(refRange instanceof CalcError){return new Expressions.ErrorExpression(refRange)}var refStartColumn=refRange.index;var refEndColumn=refRange.endIndex;if(rangeType===RangeType.column){var newExpr;if(baseModel===refModel){newExpr=new Expressions.RangeExpression;newExpr.initBand(refStartColumn,refEndColumn,refStartColumnRelative,refEndColumnRelative,false)}else
{newExpr=new Expressions.ExternalRangeExpression;newExpr.initBand(refModel,refStartColumn,refEndColumn,refStartColumnRelative,refEndColumnRelative,false)}return newExpr}if(baseModel===refModel){return new Expressions.RangeExpression(refExpr.startRow,refStartColumn,refExpr.endRow,refEndColumn,refExpr.startRowRelative,refStartColumnRelative,refExpr.endRowRelative,refEndColumnRelative)}else
{return new Expressions.ExternalRangeExpression(refModel,refExpr.startRow,refStartColumn,refExpr.endRow,refEndColumn,refExpr.startRowRelative,refStartColumnRelative,refExpr.endRowRelative,refEndColumnRelative)}}}return refExpr};_Controller.prototype.adjustFormulaOnRemoveRows=function(baseModel,baseRow,baseColumn,oldExpr,removeModel,removeRow,removeRowCount){var self=this;var newExpr=oldExpr,arg,fnArg,i;if(oldExpr instanceof Expressions.CellExpression){newExpr=self._adjustCellExpressionOnRemoveRow(baseModel,baseModel,baseRow,baseColumn,oldExpr,removeModel,removeRow,removeRowCount)}else if(oldExpr instanceof Expressions.RangeExpression){newExpr=self._adjustRangeExpressionOnRemoveRow(baseModel,baseModel,baseRow,baseColumn,oldExpr,removeModel,removeRow,removeRowCount)}else if(oldExpr instanceof Expressions.ExternalCellExpression){newExpr=self._adjustCellExpressionOnRemoveRow(baseModel,oldExpr.source,baseRow,baseColumn,oldExpr,removeModel,removeRow,removeRowCount)}else if(oldExpr instanceof Expressions.ExternalRangeExpression){newExpr=self._adjustRangeExpressionOnRemoveRow(baseModel,oldExpr.source,baseRow,baseColumn,oldExpr,removeModel,removeRow,removeRowCount)}else if(oldExpr instanceof Expressions.ParenthesesExpression){arg=self.adjustFormulaOnRemoveRows(baseModel,baseRow,baseColumn,oldExpr.argument,removeModel,removeRow,removeRowCount);if(arg!==oldExpr.argument){newExpr=new Expressions.ParenthesesExpression(arg)}}else if(oldExpr instanceof Expressions.UnaryOperatorExpression){arg=self.adjustFormulaOnRemoveRows(baseModel,baseRow,baseColumn,oldExpr.operand,removeModel,removeRow,removeRowCount);if(arg!==oldExpr.operand){newExpr=new Expressions.UnaryOperatorExpression(oldExpr.operator,arg)}}else if(oldExpr instanceof Expressions.BinaryOperatorExpression){var arg0=self.adjustFormulaOnRemoveRows(baseModel,baseRow,baseColumn,oldExpr.left,removeModel,removeRow,removeRowCount);var arg1=self.adjustFormulaOnRemoveRows(baseModel,baseRow,baseColumn,oldExpr.right,removeModel,removeRow,removeRowCount);if(arg0!==oldExpr.left||arg1!==oldExpr.right){newExpr=new Expressions.BinaryOperatorExpression(oldExpr.operator,arg0,arg1)}}else if(oldExpr instanceof Expressions.FunctionExpression){var args=keyword_null;var argCount=oldExpr.argCount();for(i=0;i<argCount;i++){fnArg=oldExpr.getArg(i);arg=self.adjustFormulaOnRemoveRows(baseModel,baseRow,baseColumn,fnArg,removeModel,removeRow,removeRowCount);if(arg!==fnArg){args=[];args[i]=arg;break}}if(args){for(i=0;i<argCount;i++){fnArg=oldExpr.getArg(i);if(args[i]===keyword_undefined||args[i]===keyword_null){args[i]=self.adjustFormulaOnRemoveRows(baseModel,baseRow,baseColumn,fnArg,removeModel,removeRow,removeRowCount)}}newExpr=new Expressions.FunctionExpression(oldExpr.fn,args)}}return newExpr};_Controller.prototype.adjustFormulasOnRemoveRows=function(removeModel,removeRow,removeRowCount){this.adjustFormulasOnOperator(removeModel,this.adjustFormulaOnRemoveRows,removeRow,removeRowCount)};_Controller.prototype.adjustFormulaOnRemoveColumns=function(baseModel,baseRow,baseColumn,oldExpr,removeModel,removeColumn,removeColumnCount){var self=this;var newExpr=oldExpr,arg,fnArg,i;if(oldExpr instanceof Expressions.CellExpression){newExpr=self._adjustCellExpressionOnRemoveColumn(baseModel,baseModel,baseRow,baseColumn,oldExpr,removeModel,removeColumn,removeColumnCount)}else if(oldExpr instanceof Expressions.RangeExpression){newExpr=self._adjustRangeExpressionOnRemoveColumn(baseModel,baseModel,baseRow,baseColumn,oldExpr,removeModel,removeColumn,removeColumnCount)}else if(oldExpr instanceof Expressions.ExternalCellExpression){newExpr=self._adjustCellExpressionOnRemoveColumn(baseModel,oldExpr.source,baseRow,baseColumn,oldExpr,removeModel,removeColumn,removeColumnCount)}else if(oldExpr instanceof Expressions.ExternalRangeExpression){newExpr=self._adjustRangeExpressionOnRemoveColumn(baseModel,oldExpr.source,baseRow,baseColumn,oldExpr,removeModel,removeColumn,removeColumnCount)}else if(oldExpr instanceof Expressions.ParenthesesExpression){arg=self.adjustFormulaOnRemoveColumns(baseModel,baseRow,baseColumn,oldExpr.argument,removeModel,removeColumn,removeColumnCount);if(arg!==oldExpr.argument){newExpr=new Expressions.ParenthesesExpression(arg)}}else if(oldExpr instanceof Expressions.UnaryOperatorExpression){arg=self.adjustFormulaOnRemoveColumns(baseModel,baseRow,baseColumn,oldExpr.operand,removeModel,removeColumn,removeColumnCount);if(arg!==oldExpr.operand){newExpr=new Expressions.UnaryOperatorExpression(oldExpr.operator,arg)}}else if(oldExpr instanceof Expressions.BinaryOperatorExpression){var arg0=self.adjustFormulaOnRemoveColumns(baseModel,baseRow,baseColumn,oldExpr.left,removeModel,removeColumn,removeColumnCount);var arg1=self.adjustFormulaOnRemoveColumns(baseModel,baseRow,baseColumn,oldExpr.right,removeModel,removeColumn,removeColumnCount);if(arg0!==oldExpr.left||arg1!==oldExpr.right){newExpr=new Expressions.BinaryOperatorExpression(oldExpr.operator,arg0,arg1)}}else if(oldExpr instanceof Expressions.FunctionExpression){var args=keyword_null;var argCount=oldExpr.argCount();for(i=0;i<argCount;i++){fnArg=oldExpr.getArg(i);arg=self.adjustFormulaOnRemoveColumns(baseModel,baseRow,baseColumn,fnArg,removeModel,removeColumn,removeColumnCount);if(arg!==fnArg){args=[];args[i]=arg;break}}if(args){for(i=0;i<argCount;i++){fnArg=oldExpr.getArg(i);if(args[i]===keyword_undefined||args[i]===keyword_null){args[i]=self.adjustFormulaOnRemoveColumns(baseModel,baseRow,baseColumn,fnArg,removeModel,removeColumn,removeColumnCount)}}newExpr=new Expressions.FunctionExpression(oldExpr.fn,args)}}else if(oldExpr instanceof Expressions.StructReferenceExpression){newExpr=self._adjustStructReferenceExpressionOnRemoveColumn(baseModel,baseModel,baseRow,baseColumn,oldExpr,removeModel,removeColumn,removeColumnCount)}return newExpr};_Controller.prototype.adjustFormulasOnRemoveColumns=function(removeModel,removeColumn,removeColumnCount){this.adjustFormulasOnOperator(removeModel,this.adjustFormulaOnRemoveColumns,removeColumn,removeColumnCount)};_Controller.prototype.adjustFormulasOnOperator=function(model,expressionAdjustor,index,count){var self=this;var names=self.getAllCustomNames();for(var i=0;i<names.length;i++){var name=names[i];name.setExpression(expressionAdjustor.call(self,keyword_null,-1,-1,name.getExpression(),model,index,count))}var sheetSource,row,column,expr,node;var settedMap={};while(self._headAdjustCells){sheetSource=self._headAdjustCells.sheetSource;var calcModel=sheetSource._sheet._getCalcModel();row=self._headAdjustCells.row;column=self._headAdjustCells.column;if(settedMap[row]&&settedMap[row][column]){self.removeAdjustCell(self._headAdjustCells);continue}node=calcModel.getNode(row,column);if(node&&node.expr){expr=node.expr;expr=expressionAdjustor.call(self,sheetSource,row,column,expr,model,index,count);var arrayInfo=calcModel.getNode(row,column,false).arrayInfo;if(arrayInfo){arrayInfo=new _spread.Range(row,column,arrayInfo.rowCount,arrayInfo.colCount);for(var r=row;r<row+arrayInfo.rowCount;r++){if(!settedMap[r]){settedMap[r]={}}for(var c=column;c<column+arrayInfo.colCount;c++){sheetSource.setExpression(r,c,expr,arrayInfo,r===row&&c===column);settedMap[r][c]=true}}}else
{sheetSource.setExpression(row,column,expr,arrayInfo,true)}}else if((sheetSource.getRowExpression&&sheetSource.getRowExpression(row))||(sheetSource.getColumnExpression&&sheetSource.getColumnExpression(column))){sheetSource._addCellsToDirty(row,column,1,1)}self.removeAdjustCell(self._headAdjustCells)}while(self._headAdjustRows){sheetSource=self._headAdjustRows.sheetSource;row=self._headAdjustRows.row;if(sheetSource.getRowExpression){expr=sheetSource.getRowExpression(row);if(expr&&sheetSource.setExpression){sheetSource.setExpression(row,-1,expressionAdjustor.call(self,sheetSource,row,-1,expr,model,index,count),keyword_undefined,true)}}self.removeAdjustRow(self._headAdjustRows)}while(self._headAdjustColumns){sheetSource=self._headAdjustColumns.sheetSource;column=self._headAdjustColumns.column;if(sheetSource.getColumnExpression){expr=sheetSource.getColumnExpression(column);if(expr&&sheetSource.setExpression){sheetSource.setExpression(-1,column,expressionAdjustor.call(self,sheetSource,-1,column,expr,model,index,count),keyword_undefined,true)}}self.removeAdjustColumn(self._headAdjustColumns)}};_Controller.prototype.adjustFormulaOnRemoveSheet2=function(baseModel,baseRow,baseCol,oldExpr,removeModel){return this.adjustFormulaOnRemoveSheet(baseModel,oldExpr,removeModel)};_Controller.prototype.adjustFormulaOnRemoveSheet=function(baseModel,oldExpr,removeModel){var self=this;var newExpr=oldExpr,arg,fnArg,i;if(oldExpr instanceof Expressions.ExternalReferenceExpression){var refModel=oldExpr.source;if((baseModel!==removeModel&&refModel===removeModel)||(baseModel===removeModel&&refModel!==removeModel)){newExpr=new Expressions.ErrorExpression(CalcErrorsReference)}}else if(oldExpr instanceof Expressions.ParenthesesExpression){arg=self.adjustFormulaOnRemoveSheet(baseModel,oldExpr.argument,removeModel);if(arg!==oldExpr.argument){newExpr=new Expressions.ParenthesesExpression(arg)}}else if(oldExpr instanceof Expressions.UnaryOperatorExpression){arg=self.adjustFormulaOnRemoveSheet(baseModel,oldExpr.operand,removeModel);if(arg!==oldExpr.operand){newExpr=new Expressions.UnaryOperatorExpression(oldExpr.operator,arg)}}else if(oldExpr instanceof Expressions.BinaryOperatorExpression){var arg0=self.adjustFormulaOnRemoveSheet(baseModel,oldExpr.left,removeModel);var arg1=self.adjustFormulaOnRemoveSheet(baseModel,oldExpr.right,removeModel);if(arg0!==oldExpr.left||arg1!==oldExpr.right){newExpr=new Expressions.BinaryOperatorExpression(oldExpr.operator,arg0,arg1)}}else if(oldExpr instanceof Expressions.FunctionExpression){var args=keyword_null;var argCount=oldExpr.argCount();for(i=0;i<argCount;i++){fnArg=oldExpr.getArg(i);arg=self.adjustFormulaOnRemoveSheet(baseModel,fnArg,removeModel);if(arg!==fnArg){args=[];args[i]=arg;break}}if(args){for(i=0;i<argCount;i++){fnArg=oldExpr.getArg(i);if(args[i]===keyword_undefined||args[i]===keyword_null){args[i]=self.adjustFormulaOnRemoveSheet(baseModel,fnArg,removeModel)}}newExpr=new Expressions.FunctionExpression(oldExpr.fn,args)}}return newExpr};_Controller.prototype.adjustFormulasOnRemoveSheet=function(removeModel){this.adjustFormulasOnOperator(removeModel,this.adjustFormulaOnRemoveSheet2)};_Controller.prototype._adjustCellExpressionOnMove=function(baseModel,baseRow,baseColumn,refExpr,info){var isExternal=(refExpr instanceof Expressions.ExternalReferenceExpression);var refModel=isExternal?refExpr.source:baseModel;var refRowRelative=refExpr.rowRelative;var refColumnRelative=refExpr.columnRelative;var refRow,refColumn,moveRef,moveSource;if((baseRow>=0||!refRowRelative)&&(baseColumn>=0||!refColumnRelative)){refRow=refExpr.row+(refRowRelative?baseRow:0);refColumn=refExpr.column+(refColumnRelative?baseColumn:0);moveSource=info.destinationContains(baseModel,baseRow,baseColumn,1,1);if(refModel===info._toModel&&info.destinationContains(refModel,refRow,refColumn,1,1)&&(!refRowRelative&&!refColumnRelative||!moveSource)){return new Expressions.ErrorExpression(CalcErrorsReference)}moveRef=(!isExternal||refModel===info._fromModel)&&(!moveSource&&info.sourceContains(info._fromModel,refRow,refColumn,1,1)||moveSource&&info.destinationContains(info._toModel,refRow,refColumn,1,1));if(moveSource){refRow-=(refRowRelative?info.getRowOffset():0);refColumn-=(refColumnRelative?info.getColumnOffset():0)}if(moveRef){refRow+=info.getRowOffset();refColumn+=info.getColumnOffset()}refRow-=(refRowRelative?baseRow:0);refColumn-=(refColumnRelative?baseColumn:0);if(info._fromModel===info._toModel){refModel=isExternal?refExpr.source:keyword_undefined}else
{refModel=keyword_undefined;if(moveRef&&moveSource&&isExternal){refModel=info._toModel}else if(moveRef&&moveSource){}else if(moveRef){refModel=info._toModel}else if(moveSource&&!isExternal){refModel=info._fromModel}}if(refRow!==refExpr.row||refColumn!==refExpr.column||refModel!=refExpr.source){if(refModel){return new Expressions.ExternalCellExpression(refModel,refRow,refColumn,refRowRelative,refColumnRelative)}else
{return new Expressions.CellExpression(refRow,refColumn,refRowRelative,refColumnRelative)}}}else if((baseRow>=0||!refRowRelative)&&baseColumn===-1){refRow=refExpr.row+(refRowRelative?baseRow:0);if(info.destinationContains(baseModel,baseRow,baseColumn,1,1)){refRow-=(refRowRelative?info.getRowOffset():0)}if(info.sourceContains(refModel,refRow,-1,refRowRelative,-1)){refRow+=info.getRowOffset()}else if(info.destinationContains(refModel,refRow,-1,1,-1)){return new Expressions.ErrorExpression(CalcErrorsReference)}refRow-=(refRowRelative?baseRow:0);if(refRow!==refExpr.row){if(refExpr instanceof Expressions.CellExpression){return new Expressions.CellExpression(refRow,refExpr.column,refRowRelative,refExpr.columnRelative)}else if(refExpr instanceof Expressions.ExternalCellExpression){return new Expressions.ExternalCellExpression(refExpr.source,refRow,refExpr.column,refRowRelative,refExpr.columnRelative)}}}else if(baseRow===-1&&(baseColumn>=0&&!refColumnRelative)){refColumn=refExpr.column+(refColumnRelative?baseColumn:0);if(info.destinationContains(baseModel,baseRow,baseColumn,1,1)){refColumn-=(refColumnRelative?info.getColumnOffset():0)}if(info.sourceContains(refModel,refRow,refColumn,1,1)){refColumn+=info.getColumnOffset()}else if(info.destinationContains(refModel,refRow,refColumn,1,1)){return new Expressions.ErrorExpression(CalcErrorsReference)}refColumn-=(refColumnRelative?baseColumn:0);if(refRow!==refExpr.row||refColumn!==refExpr.column){if(refExpr instanceof Expressions.CellExpression){return new Expressions.CellExpression(refExpr.row,refColumn,refExpr.rowRelative,refColumnRelative)}else if(refExpr instanceof Expressions.ExternalCellExpression){return new Expressions.ExternalCellExpression(refExpr.source,refExpr.row,refColumn,refExpr.rowRelative,refColumnRelative)}}}return refExpr};_Controller.prototype._adjustRangeExpressionOnMove=function(baseModel,baseRow,baseColumn,refExpr,info){var isExternal=refExpr instanceof Expressions.ExternalReferenceExpression;var refModel=isExternal?refExpr.source:baseModel;var rangeType=refExpr._getRangeType();var refStartRowRelative,refStartColumnRelative,refEndRowRelative,refEndColumnRelative;var refStartRow,refEndRow,refStartColumn,refEndColumn,refRowCount,refColumnCount;var ro,co,ro1,ro2,co1,co2,moveRef,moveSource;if(rangeType===RangeType.cell){refStartRowRelative=refExpr.startRowRelative;refStartColumnRelative=refExpr.startColumnRelative;refEndRowRelative=refExpr.endRowRelative;refEndColumnRelative=refExpr.endColumnRelative;if((baseRow>=0||!refStartRowRelative||!refEndRowRelative)||(baseColumn>=0||!refStartColumnRelative||!refEndColumnRelative)){refStartRow=refExpr.startRow+(refStartRowRelative?baseRow:0);refEndRow=refExpr.endRow+(refEndRowRelative?baseRow:0);refStartColumn=refExpr.startColumn+(refStartColumnRelative?baseColumn:0);refEndColumn=refExpr.endColumn+(refEndColumnRelative?baseColumn:0);refRowCount=refEndRow-refStartRow+1;refColumnCount=refEndColumn-refStartColumn+1;moveSource=info.destinationContains(baseModel,baseRow,baseColumn,1,1);if(moveSource){var offsetRow=info._toRow-info._toColumn,offsetCol=info._toColumn-info._toRow;refRowCount+=(refStartRowRelative?-offsetRow:0)+(refEndRowRelative?offsetRow:0);refColumnCount+=(refStartColumnRelative?-offsetCol:0)+(refEndColumnRelative?offsetCol:0)}if(refModel===info._toModel&&info.destinationContains(refModel,refStartRow,refStartColumn,refRowCount,refColumnCount)&&(!refStartRowRelative&&!refStartColumnRelative&&!refEndRowRelative&&!refEndColumnRelative||!moveSource)){return new Expressions.ErrorExpression(CalcErrorsReference)}moveRef=(!isExternal||refModel===info._fromModel)&&(!moveSource&&info.sourceContains(info._fromModel,refStartRow,refStartColumn,refRowCount,refColumnCount)||moveSource&&info.destinationContains(info._toModel,refStartRow,refStartColumn,refRowCount,refColumnCount));if(moveSource){ro1=(refStartRowRelative?info.getRowOffset():0);ro2=(refEndRowRelative?info.getRowOffset():0);co1=(refStartColumnRelative?info.getColumnOffset():0);co2=(refEndColumnRelative?info.getColumnOffset():0);refStartRow-=ro1;refEndRow-=ro2;refStartColumn-=co1;refEndColumn-=co2}var refRangeChanged=false;if(moveRef){ro=info.getRowOffset();co=info.getColumnOffset();refStartRow+=ro;refEndRow+=ro;refStartColumn+=co;refEndColumn+=co}else if(info.destinationContains(refModel,refStartRow,refStartColumn,refRowCount,refColumnCount)){var intersectedRange=info.sourceIntersectWith(refModel,refStartRow,refStartColumn,refRowCount,refColumnCount);if(intersectedRange&&(intersectedRange.rowCount===refRowCount||intersectedRange.columnCount===refColumnCount)){refStartRow=intersectedRange.row+info.getRowOffset();refStartColumn=intersectedRange.column+info.getColumnOffset();refEndRow=refStartRow+intersectedRange.rowCount;refEndColumn=refStartColumn+intersectedRange.columnCount;refRangeChanged=true}else
{return new Expressions.ErrorExpression(CalcErrorsReference)}}refStartRow-=(refStartRowRelative?baseRow:0);refEndRow-=(refEndRowRelative?baseRow:0);refStartColumn-=(refStartColumnRelative?baseColumn:0);refEndColumn-=(refEndColumnRelative?baseColumn:0);if(info._fromModel===info._toModel){refModel=isExternal?refExpr.source:keyword_undefined}else
{refModel=keyword_undefined;if(moveRef&&moveSource&&isExternal){refModel=info._toModel}else if(moveRef&&moveSource){}else if(moveRef){refModel=info._toModel}else if(moveSource&&!isExternal){refModel=info._fromModel}}if(refStartRow!==refExpr.startRow||refStartColumn!==refExpr.startColumn||refEndRow!==refExpr.endRow||refEndColumn!==refExpr.endColumn||refRangeChanged||refModel!=refExpr.source){if(refModel){return new Expressions.ExternalRangeExpression(refModel,refStartRow,refStartColumn,refEndRow,refEndColumn,refStartRowRelative,refStartColumnRelative,refEndRowRelative,refEndColumnRelative)}else
{return new Expressions.RangeExpression(refStartRow,refStartColumn,refEndRow,refEndColumn,refStartRowRelative,refStartColumnRelative,refEndRowRelative,refEndColumnRelative)}}}else if((baseRow>=0||!refStartRowRelative||!refEndRowRelative)&&baseColumn===-1){refStartRow=refExpr.startRow+(refStartRowRelative?baseRow:0);refEndRow=refExpr.endRow+(refEndRowRelative?baseRow:0);if(refStartRow>refEndRow){return new Expressions.ErrorExpression(CalcErrorsReference)}if(info.destinationContains(baseModel,baseRow,baseColumn,1,1)){ro1=(refStartRowRelative?info.getRowOffset():0);ro2=(refEndRowRelative?info.getRowOffset():0);refStartRow-=ro1;refEndRow-=ro2}refRowCount=refEndRow-refStartRow;if(info.sourceContains(refModel,refStartRow,-1,refRowCount,-1)){ro=info.getRowOffset();refStartRow+=ro;refEndRow+=ro}else if(info.destinationContains(refModel,refStartRow,-1,refRowCount,-1)){return new Expressions.ErrorExpression(CalcErrorsReference)}refStartRow-=(refStartRowRelative?baseRow:0);refEndRow-=(refEndRowRelative?baseRow:0);if(refStartRow!==refExpr.startRow||refEndRow!==refExpr.endRow){if(refExpr instanceof Expressions.RangeExpression){return new Expressions.RangeExpression(refStartRow,refExpr.startColumn,refEndRow,refExpr.endColumn,refStartRowRelative,refExpr.startColumnRelative,refEndRowRelative,refExpr.endColumnRelative)}else if(refExpr instanceof Expressions.ExternalRangeExpression){return new Expressions.ExternalRangeExpression(refExpr.source,refStartRow,refExpr.startColumn,refEndRow,refExpr.endColumn,refStartRowRelative,refExpr.startColumnRelative,refEndRowRelative,refExpr.endColumnRelative)}}}else if(baseRow===-1&&(baseColumn>=0||!refStartColumnRelative||!refEndColumnRelative)){refStartColumn=refExpr.startColumn+(refStartColumnRelative?baseColumn:0);refEndColumn=refExpr.endColumn+(refEndColumnRelative?baseColumn:0);if(refStartColumn>refEndColumn){return new Expressions.ErrorExpression(CalcErrorsReference)}if(info.destinationContains(baseModel,baseRow,baseColumn,1,1)){co1=(refStartColumnRelative?info.getColumnOffset():0);co2=(refEndColumnRelative?info.getColumnOffset():0);refStartColumn-=co1;refEndColumn-=co2}refColumnCount=refEndColumn-refStartColumn;if(info.sourceContains(refModel,-1,refStartColumn,-1,refColumnCount)){co=info.getColumnOffset();refStartColumn+=co;refEndColumn+=co}else if(info.destinationContains(refModel,-1,refStartColumn,-1,refColumnCount)){return new Expressions.ErrorExpression(CalcErrorsReference)}refStartColumn-=(refStartColumnRelative?baseColumn:0);refEndColumn-=(refEndColumnRelative?baseColumn:0);if(refStartColumn!==refExpr.startColumn||refEndColumn!==refExpr.endColumn){if(refExpr instanceof Expressions.RangeExpression){return new Expressions.RangeExpression(refExpr.startRow,refStartColumn,refExpr.endRow,refEndColumn,refExpr.startRowRelative,refStartColumnRelative,refExpr.endRowRelative,refEndColumnRelative)}else if(refExpr instanceof Expressions.ExternalRangeExpression){return new Expressions.ExternalRangeExpression(refExpr.source,refExpr.startRow,refStartColumn,refExpr.endRow,refEndColumn,refExpr.startRowRelative,refStartColumnRelative,refExpr.endRowRelative,refEndColumnRelative)}}}}else if(rangeType===RangeType.row){refStartRowRelative=refExpr.startRowRelative;refEndRowRelative=refExpr.endRowRelative;if(baseRow>=0||!refStartRowRelative||!refEndRowRelative){refStartRow=refExpr.startRow+(refStartRowRelative?baseRow:0);refEndRow=refExpr.endRow+(refEndRowRelative?baseRow:0);if(refStartRow>refEndRow){return new Expressions.ErrorExpression(CalcErrorsReference)}if(info.destinationContains(baseModel,baseRow,baseColumn,1,1)){ro1=(refStartRowRelative?info.getRowOffset():0);ro2=(refEndRowRelative?info.getRowOffset():0);refStartRow-=ro1;refEndRow-=ro2}refRowCount=refEndRow-refStartRow;if(info.sourceContains(refModel,refStartRow,-1,refRowCount,-1)){ro=info.getRowOffset();refStartRow+=ro;refEndRow+=ro}else if(info.destinationContains(refModel,refStartRow,-1,refRowCount,-1)){return new Expressions.ErrorExpression(CalcErrorsReference)}refStartRow-=(refStartRowRelative?baseRow:0);refEndRow-=(refEndRowRelative?baseRow:0);if(refStartRow!==refExpr.startRow||refEndRow!==refExpr.endRow){if(refExpr instanceof Expressions.RangeExpression){var r1=new Expressions.RangeExpression;r1.initBand(refStartRow,refEndRow,refStartRowRelative,refEndRowRelative,true);return r1}else if(refExpr instanceof Expressions.ExternalRangeExpression){var r2=new Expressions.ExternalRangeExpression;r2.initBand(refExpr.source,refStartRow,refEndRow,refStartRowRelative,refEndRowRelative,true);return r2}}}}else if(rangeType===RangeType.column){refStartColumnRelative=refExpr.startColumnRelative;refEndColumnRelative=refExpr.endColumnRelative;refStartColumn=refExpr.startColumn+(refStartColumnRelative?baseColumn:0);refEndColumn=refExpr.endColumn+(refEndColumnRelative?baseColumn:0);if(refStartColumn<refEndColumn){return new Expressions.ErrorExpression(CalcErrorsReference)}if(info.destinationContains(baseModel,baseRow,baseColumn,1,1)){co1=(refStartColumnRelative?info.getColumnOffset():0);co2=(refEndColumnRelative?info.getColumnOffset():0);refStartColumn-=co1;refEndColumn-=co2}refColumnCount=refEndColumn-refStartColumn;if(info.sourceContains(refModel,-1,refStartColumn,-1,refColumnCount)){co=info.getColumnOffset();refStartColumn+=co;refEndColumn+=co}else if(info.destinationContains(refModel,-1,refStartColumn,-1,refColumnCount)){return new Expressions.ErrorExpression(CalcErrorsReference)}refStartColumn-=(refStartColumnRelative?baseColumn:0);refEndColumn-=(refEndColumnRelative?baseColumn:0);if(refStartColumn!==refExpr.startColumn||refEndColumn!==refExpr.endColumn){if(refExpr instanceof Expressions.RangeExpression){var r3=new Expressions.RangeExpression;r3.initBand(refStartColumn,refEndColumn,refStartColumnRelative,refEndColumnRelative,false);return r3}else if(refExpr instanceof Expressions.ExternalRangeExpression){var r4=new Expressions.ExternalRangeExpression;r4.initBand(refExpr.source,refStartColumn,refEndColumn,refStartColumnRelative,refEndColumnRelative,false);return r4}}}return refExpr};_Controller.prototype.adjustFormulaOnMove=function(baseModel,baseRow,baseColumn,oldExpr,info){var self=this;var newExpr=oldExpr,arg;if(oldExpr instanceof Expressions.CellExpression||oldExpr instanceof Expressions.ExternalCellExpression){newExpr=self._adjustCellExpressionOnMove(baseModel,baseRow,baseColumn,oldExpr,info)}else if(oldExpr instanceof Expressions.RangeExpression||oldExpr instanceof Expressions.ExternalRangeExpression){newExpr=self._adjustRangeExpressionOnMove(baseModel,baseRow,baseColumn,oldExpr,info)}else if(oldExpr instanceof Expressions.ParenthesesExpression){var parenthesesExpr=oldExpr;arg=self.adjustFormulaOnMove(baseModel,baseRow,baseColumn,parenthesesExpr.argument,info);if(arg!==parenthesesExpr.argument){newExpr=new Expressions.ParenthesesExpression(arg)}}else if(oldExpr instanceof Expressions.UnaryOperatorExpression){var unaryExpr=oldExpr;arg=self.adjustFormulaOnMove(baseModel,baseRow,baseColumn,unaryExpr.operand,info);if(arg!==unaryExpr.operand){newExpr=new Expressions.UnaryOperatorExpression(unaryExpr.operator,arg)}}else if(oldExpr instanceof Expressions.BinaryOperatorExpression){var binaryExpr=oldExpr;var arg0=self.adjustFormulaOnMove(baseModel,baseRow,baseColumn,binaryExpr.left,info);var arg1=self.adjustFormulaOnMove(baseModel,baseRow,baseColumn,binaryExpr.right,info);if(arg0!==binaryExpr.left||arg1!==binaryExpr.right){newExpr=new Expressions.BinaryOperatorExpression(binaryExpr.operator,arg0,arg1)}}else if(oldExpr instanceof Expressions.FunctionExpression){var args=keyword_null,fnArg,i;var functionExpr=oldExpr;var argCount=functionExpr.argCount();for(i=0;i<argCount;i++){fnArg=functionExpr.getArg(i);arg=self.adjustFormulaOnMove(baseModel,baseRow,baseColumn,fnArg,info);if(arg!==fnArg){args=[];args[i]=arg;break}}if(args){for(i=0;i<argCount;i++){fnArg=functionExpr.getArg(i);if(args[i]===keyword_undefined||args[i]===keyword_null){args[i]=self.adjustFormulaOnMove(baseModel,baseRow,baseColumn,fnArg,info)}}newExpr=new Expressions.FunctionExpression(functionExpr.fn,args)}}return newExpr};_Controller.prototype.adjustFormulasOnMove=function(fromModel,fromRow,fromColumn,toModel,toRow,toColumn,rowCount,columnCount){var self=this;var info=new MoveSwapInfo(fromModel,fromRow,fromColumn,toModel,toRow,toColumn,rowCount,columnCount);var names=self.getAllCustomNames();for(var i=0;i<names.length;i++){var name=names[i];name.setExpression(self.adjustFormulaOnMove(keyword_null,-1,-1,name.getExpression(),info))}var sheetSource,row,column,expr,settedMap={};while(self._headAdjustCells){sheetSource=self._headAdjustCells.sheetSource;var calcModel=sheetSource._sheet._getCalcModel();row=self._headAdjustCells.row;column=self._headAdjustCells.column;if(settedMap[row]&&settedMap[row][column]){self.removeAdjustCell(self._headAdjustCells);continue}expr=sheetSource.getExpression(row,column);if(expr){expr=self.adjustFormulaOnMove(sheetSource,row,column,expr,info);var arrayInfo=calcModel.getNode(row,column,false).arrayInfo;if(arrayInfo){arrayInfo=new _spread.Range(row,column,arrayInfo.rowCount,arrayInfo.colCount);for(var r=row;r<row+arrayInfo.rowCount;r++){if(!settedMap[r]){settedMap[r]={}}for(var c=column;c<column+arrayInfo.colCount;c++){sheetSource.setExpression(r,c,expr,arrayInfo,r===row&&c===column);settedMap[r][c]=true}}}else
{sheetSource.setExpression(row,column,expr,arrayInfo,true)}}else if((sheetSource.getRowExpression&&sheetSource.getRowExpression(row))||(sheetSource.getColumnExpression&&sheetSource.getColumnExpression(column))){sheetSource._addCellsToDirty(row,column,1,1)}self.removeAdjustCell(self._headAdjustCells)}while(self._headAdjustRows){sheetSource=self._headAdjustRows.sheetSource;row=self._headAdjustRows.row;if(sheetSource.getRowExpression){expr=sheetSource.getRowExpression(row);if(expr&&sheetSource._setRowExpression){sheetSource._setRowExpression(row,self.adjustFormulaOnMove(sheetSource,row,-1,expr,info),keyword_undefined)}}self.removeAdjustRow(self._headAdjustRows)}while(self._headAdjustColumns){sheetSource=self._headAdjustColumns.sheetSource;column=self._headAdjustColumns.column;if(sheetSource.getColumnExpression){expr=sheetSource.getColumnExpression(column);if(expr&&sheetSource._setColumnExpression){sheetSource._setColumnExpression(column,self.adjustFormulaOnMove(sheetSource,-1,column,expr,info),keyword_undefined)}}self.removeAdjustColumn(self._headAdjustColumns)}};_Controller.prototype._adjustCellExpressionOnSwap=function(baseModel,baseRow,baseColumn,refExpr,info){var refModel=(refExpr instanceof Expressions.ExternalReferenceExpression)?refExpr.source:baseModel;var refRowRelative=refExpr.rowRelative,refColumnRelative=refExpr.columnRelative,refRow,refColumn;if((baseRow>=0||!refRowRelative)&&(baseColumn>=0||!refColumnRelative)){refRow=refExpr.row+(refRowRelative?baseRow:0);refColumn=refExpr.column+(refColumnRelative?baseColumn:0);if(info.destinationContains(baseModel,baseRow,baseColumn,1,1)){refRow-=(refRowRelative?info.getRowOffset():0);refColumn-=(refColumnRelative?info.getColumnOffset():0)}else if(info.sourceContains(baseModel,refRow,refColumn,1,1)){refRow+=(refRowRelative?info.getRowOffset():0);refColumn+=(refColumnRelative?info.getColumnOffset():0)}if(info.sourceContains(refModel,refRow,refColumn,1,1)){refRow+=info.getRowOffset();refColumn+=info.getColumnOffset()}else if(info.destinationContains(refModel,refRow,refColumn,1,1)){refRow-=info.getRowOffset();refColumn-=info.getColumnOffset()}refRow-=(refRowRelative?baseRow:0);refColumn-=(refColumnRelative?baseColumn:0);if(refRow!==refExpr.row||refColumn!==refExpr.column){if(refExpr instanceof Expressions.CellExpression){return new Expressions.CellExpression(refRow,refColumn,refRowRelative,refColumnRelative)}else if(refExpr instanceof Expressions.ExternalCellExpression){return new Expressions.ExternalCellExpression(refExpr.source,refRow,refColumn,refRowRelative,refColumnRelative)}}}else if((baseRow>=0||!refRowRelative)&&baseColumn===-1){refRow=refExpr.row+(refRowRelative?baseRow:0);if(info.destinationContains(baseModel,baseRow,-1,1,-1)){refRow-=(refRowRelative?info.getRowOffset():0)}else if(info.sourceContains(baseModel,refRow,-1,1,-1)){refRow+=(refRowRelative?info.getRowOffset():0)}if(info.sourceContains(refModel,refRow,-1,1,-1)){refRow+=info.getRowOffset()}else if(info.destinationContains(refModel,refRow,-1,1,-1)){refRow-=info.getRowOffset()}refRow-=(refRowRelative?baseRow:0);if(refRow!==refExpr.row||refColumn!==refExpr.column){if(refExpr instanceof Expressions.CellExpression){return new Expressions.CellExpression(refRow,refExpr.column,refRowRelative,refExpr.columnRelative)}else if(refExpr instanceof Expressions.ExternalCellExpression){return new Expressions.ExternalCellExpression(refExpr.source,refRow,refExpr.column,refRowRelative,refExpr.columnRelative)}}}else if(baseRow===-1&&(baseColumn>=0&&!refColumnRelative)){refColumn=refExpr.column+(refColumnRelative?baseColumn:0);if(info.destinationContains(baseModel,-1,baseColumn,-1,1)){refColumn-=(refColumnRelative?info.getColumnOffset():0)}else if(info.sourceContains(baseModel,-1,refColumn,-1,1)){refColumn+=(refColumnRelative?info.getColumnOffset():0)}if(info.sourceContains(refModel,-1,refColumn,-1,1)){refColumn+=info.getColumnOffset()}else if(info.destinationContains(refModel,-1,refColumn,-1,1)){refColumn-=info.getColumnOffset()}refColumn-=(refColumnRelative?baseColumn:0);if(refRow!==refExpr.row||refColumn!==refExpr.column){if(refExpr instanceof Expressions.CellExpression){return new Expressions.CellExpression(refExpr.row,refColumn,refExpr.rowRelative,refColumnRelative)}else if(refExpr instanceof Expressions.ExternalCellExpression){return new Expressions.ExternalCellExpression(refExpr.source,refExpr.row,refColumn,refExpr.rowRelative,refColumnRelative)}}}return refExpr};_Controller.prototype._adjustRangeExpressionOnSwap=function(baseModel,baseRow,baseColumn,refExpr,info){var refModel=(refExpr instanceof Expressions.ExternalReferenceExpression)?refExpr.source:baseModel;var rangeType=refExpr._getRangeType();var refStartRow,refEndRow,refStartColumn,refEndColumn,refRowCount,refColumnCount;var refStartRowRelative,refStartColumnRelative,refEndRowRelative,refEndColumnRelative;var ro,co,ro1,co1,ro2,co2;if(rangeType===RangeType.cell){refStartRowRelative=refExpr.startRowRelative;refStartColumnRelative=refExpr.startColumnRelative;refEndRowRelative=refExpr.endRowRelative;refEndColumnRelative=refExpr.endColumnRelative;if((baseRow>=0||!refStartRowRelative||!refEndRowRelative)&&(baseColumn>=0||!refStartColumnRelative||!refEndColumnRelative)){refStartRow=refExpr.startRow+(refStartRowRelative?baseRow:0);refEndRow=refExpr.endRow+(refEndRowRelative?baseRow:0);refStartColumn=refExpr.startColumn+(refStartColumnRelative?baseColumn:0);refEndColumn=refExpr.endColumn+(refEndColumnRelative?baseColumn:0);refRowCount=refEndRow-refStartRow;refColumnCount=refEndColumn-refStartColumn;if(info.destinationContains(baseModel,baseRow,baseColumn,1,1)){ro1=(refStartRowRelative?info.getRowOffset():0);co1=(refStartColumnRelative?info.getColumnOffset():0);ro2=(refEndRowRelative?info.getRowOffset():0);co2=(refEndColumnRelative?info.getColumnOffset():0);refStartRow-=ro1;refEndRow-=ro2;refStartColumn-=co1;refEndColumn-=co2}else if(info.sourceContains(baseModel,refStartRow,refStartColumn,refRowCount,refColumnCount)){ro1=(refStartRowRelative?info.getRowOffset():0);co1=(refStartColumnRelative?info.getColumnOffset():0);ro2=(refEndRowRelative?info.getRowOffset():0);co2=(refEndColumnRelative?info.getColumnOffset():0);refStartRow+=ro1;refEndRow+=ro2;refStartColumn+=co1;refEndColumn+=co2}if(info.sourceContains(refModel,refStartRow,refStartColumn,refRowCount,refColumnCount)){ro=info.getRowOffset();co=info.getColumnOffset();refStartRow+=ro;refEndRow+=ro;refStartColumn+=co;refEndColumn+=co}else if(info.destinationContains(refModel,refStartRow,refStartColumn,refRowCount,refColumnCount)){ro=info.getRowOffset();co=info.getColumnOffset();refStartRow-=ro;refEndRow-=ro;refStartColumn-=co;refEndColumn-=co}refStartRow-=(refStartRowRelative?baseRow:0);refEndRow-=(refEndRowRelative?baseRow:0);refStartColumn-=(refStartColumnRelative?baseColumn:0);refEndColumn-=(refEndColumnRelative?baseColumn:0);if(refStartRow!==refExpr.startRow||refStartColumn!==refExpr.startColumn||refEndRow!==refExpr.endRow||refEndColumn!==refExpr.endColumn){if(refExpr instanceof Expressions.RangeExpression){return new Expressions.RangeExpression(refStartRow,refStartColumn,refEndRow,refEndColumn,refStartRowRelative,refStartColumnRelative,refEndRowRelative,refEndColumnRelative)}else if(refExpr instanceof Expressions.ExternalRangeExpression){return new Expressions.ExternalRangeExpression(refExpr.source,refStartRow,refStartColumn,refEndRow,refEndColumn,refStartRowRelative,refStartColumnRelative,refEndRowRelative,refEndColumnRelative)}}}else if((baseRow>=0||!refStartRowRelative||!refEndRowRelative)&&baseColumn===-1){refStartRow=refExpr.startRow+(refStartRowRelative?baseRow:0);refEndRow=refExpr.endRow+(refEndRowRelative?baseRow:0);if(refStartRow<refEndRow){return new Expressions.ErrorExpression(CalcErrorsReference)}if(info.destinationContains(baseModel,baseRow,-1,1,-1)){ro1=(refStartRowRelative?info.getRowOffset():0);ro2=(refStartRowRelative?info.getRowOffset():0);refStartRow-=ro1;refEndRow-=ro2}else if(info.sourceContains(baseModel,baseRow,-1,1,-1)){ro1=(refStartRowRelative?info.getRowOffset():0);ro2=(refStartRowRelative?info.getRowOffset():0);refStartRow+=ro1;refEndRow+=ro2}refRowCount=refEndRow-refStartRow;if(info.sourceContains(refModel,refStartRow,-1,refRowCount,-1)){ro=info.getRowOffset();refStartRow+=ro;refEndRow+=ro}else if(info.destinationContains(refModel,refStartRow,-1,refRowCount,-1)){ro=info.getRowOffset();refStartRow-=ro;refEndRow-=ro}refStartRow-=(refStartRowRelative?baseRow:0);refEndRow-=(refEndRowRelative?baseRow:0);if(refStartRow!==refExpr.startRow||refEndRow!==refExpr.endRow){if(refExpr instanceof Expressions.RangeExpression){return new Expressions.RangeExpression(refStartRow,refExpr.startColumn,refEndRow,refExpr.endColumn,refStartRowRelative,refExpr.startColumnRelative,refEndRowRelative,refExpr.endColumnRelative)}else if(refExpr instanceof Expressions.ExternalRangeExpression){return new Expressions.ExternalRangeExpression(refExpr.source,refStartRow,refExpr.startColumn,refEndRow,refExpr.endColumn,refStartRowRelative,refExpr.startColumnRelative,refEndRowRelative,refExpr.endColumnRelative)}}}else if(baseRow===-1&&(baseColumn>=0||!refStartColumnRelative||!refEndColumnRelative)){refStartColumn=refExpr.startColumn+(refStartColumnRelative?baseColumn:0);refEndColumn=refExpr.endColumn+(refEndColumnRelative?baseColumn:0);if(refStartColumn<refEndColumn){return new Expressions.ErrorExpression(CalcErrorsReference)}if(info.destinationContains(baseModel,-1,baseColumn,-1,1)){co1=(refStartColumnRelative?info.getColumnOffset():0);co2=(refEndColumnRelative?info.getColumnOffset():0);refStartColumn-=co1;refEndColumn-=co2}else if(info.sourceContains(baseModel,-1,baseColumn,-1,1)){co1=(refStartColumnRelative?info.getColumnOffset():0);co2=(refEndColumnRelative?info.getColumnOffset():0);refStartColumn+=co1;refEndColumn+=co2}refColumnCount=refEndColumn-refStartColumn;if(info.sourceContains(refModel,-1,refStartColumn,-1,refColumnCount)){co=info.getColumnOffset();refStartColumn+=co;refEndColumn+=co}else if(info.destinationContains(refModel,-1,refStartColumn,-1,refColumnCount)){co=info.getColumnOffset();refStartColumn-=co;refEndColumn-=co}refStartColumn-=(refStartColumnRelative?baseColumn:0);refEndColumn-=(refEndColumnRelative?baseColumn:0);if(refStartColumn!==refExpr.startColumn||refEndColumn!==refExpr.endColumn){if(refExpr instanceof Expressions.RangeExpression){return new Expressions.RangeExpression(refExpr.startRow,refStartColumn,refExpr.endRow,refEndColumn,refExpr.startRowRelative,refStartColumnRelative,refExpr.endRowRelative,refEndColumnRelative)}else if(refExpr instanceof Expressions.ExternalRangeExpression){return new Expressions.ExternalRangeExpression(refExpr.source,refExpr.startRow,refStartColumn,refExpr.endRow,refEndColumn,refExpr.startRowRelative,refStartColumnRelative,refExpr.endRowRelative,refEndColumnRelative)}}}}else if(rangeType===RangeType.row){refStartRowRelative=refExpr.startRowRelative;refEndRowRelative=refExpr.endRowRelative;if(baseRow>=0||!refStartRowRelative||!refEndRowRelative){refStartRow=refExpr.startRow+(refStartRowRelative?baseRow:0);refEndRow=refExpr.endRow+(refEndRowRelative?baseRow:0);if(refStartRow<refEndRow){return new Expressions.ErrorExpression(CalcErrorsReference)}if(info.destinationContains(baseModel,baseRow,-1,1,-1)){ro1=(refStartRowRelative?info.getRowOffset():0);ro2=(refEndRowRelative?info.getRowOffset():0);refStartRow-=ro1;refEndRow-=ro2}else if(info.sourceContains(baseModel,baseRow,-1,1,-1)){ro1=(refStartRowRelative?info.getRowOffset():0);ro2=(refEndRowRelative?info.getRowOffset():0);refStartRow+=ro1;refEndRow+=ro2}refRowCount=refEndRow-refStartRow;if(info.sourceContains(refModel,refStartRow,-1,refRowCount,-1)){ro=info.getRowOffset();refStartRow+=ro;refEndRow+=ro}else if(info.destinationContains(refModel,refStartRow,-1,refRowCount,-1)){ro=info.getRowOffset();refStartRow-=ro;refEndRow-=ro}refStartRow-=(refStartRowRelative?baseRow:0);refEndRow-=(refEndRowRelative?baseRow:0);if(refStartRow!==refExpr.startRow||refEndRow!==refExpr.endRow){if(refExpr instanceof Expressions.RangeExpression){var r1=new Expressions.RangeExpression;r1.initBand(refStartRow,refEndRow,refStartRowRelative,refEndRowRelative,true);return r1}else if(refExpr instanceof Expressions.ExternalRangeExpression){var r2=new Expressions.ExternalRangeExpression;r2.initBand(refExpr.source,refStartRow,refEndRow,refStartRowRelative,refEndRowRelative,true);return r2}}}}else if(rangeType===RangeType.column){refStartColumnRelative=refExpr.startColumnRelative;refEndColumnRelative=refExpr.endColumnRelative;refStartColumn=refExpr.startColumn+(refStartColumnRelative?baseColumn:0);refEndColumn=refExpr.endColumn+(refEndColumnRelative?baseColumn:0);if(refStartColumn>refEndColumn){return new Expressions.ErrorExpression(CalcErrorsReference)}if(info.destinationContains(baseModel,-1,baseColumn,-1,1)){co1=(refStartColumnRelative?info.getColumnOffset():0);co2=(refEndColumnRelative?info.getColumnOffset():0);refStartColumn-=co1;refEndColumn-=co2}else if(info.sourceContains(baseModel,-1,baseColumn,-1,1)){co1=(refStartColumnRelative?info.getColumnOffset():0);co2=(refEndColumnRelative?info.getColumnOffset():0);refStartColumn+=co1;refEndColumn+=co2}refColumnCount=refEndColumn-refStartColumn;if(info.sourceContains(refModel,-1,refStartColumn,-1,refColumnCount)){co=info.getColumnOffset();refStartColumn+=co;refEndColumn+=co}else if(info.destinationContains(refModel,-1,refStartColumn,-1,refColumnCount)){co=info.getColumnOffset();refStartColumn-=co;refEndColumn-=co}refStartColumn-=(refStartColumnRelative?baseColumn:0);refEndColumn-=(refEndColumnRelative?baseColumn:0);if(refStartColumn!==refExpr.startColumn||refEndColumn!==refExpr.endColumn){if(refExpr instanceof Expressions.RangeExpression){var r3=new Expressions.RangeExpression;r3.initBand(refStartColumn,refEndColumn,refStartColumnRelative,refEndColumnRelative,false);return r3}else if(refExpr instanceof Expressions.ExternalRangeExpression){var r4=new Expressions.ExternalRangeExpression;r4.initBand(refExpr.source,refStartColumn,refEndColumn,refStartColumnRelative,refEndColumnRelative,false);return r4}}}return refExpr};_Controller.prototype.adjustFormulaOnSwap=function(baseModel,baseRow,baseColumn,oldExpr,info){var self=this;var newExpr=oldExpr,arg;if(oldExpr instanceof Expressions.CellExpression||oldExpr instanceof Expressions.ExternalCellExpression){newExpr=self._adjustCellExpressionOnSwap(baseModel,baseRow,baseColumn,oldExpr,info)}else if(oldExpr instanceof Expressions.RangeExpression||oldExpr instanceof Expressions.ExternalRangeExpression){newExpr=self._adjustRangeExpressionOnSwap(baseModel,baseRow,baseColumn,oldExpr,info)}else if(oldExpr instanceof Expressions.ParenthesesExpression){arg=self.adjustFormulaOnSwap(baseModel,baseRow,baseColumn,oldExpr.argument,info);if(arg!==oldExpr.argument){newExpr=new Expressions.ParenthesesExpression(arg)}}else if(oldExpr instanceof Expressions.UnaryOperatorExpression){arg=self.adjustFormulaOnSwap(baseModel,baseRow,baseColumn,oldExpr.operand,info);if(arg!==oldExpr.operand){newExpr=new Expressions.UnaryOperatorExpression(oldExpr.operator,arg)}}else if(oldExpr instanceof Expressions.BinaryOperatorExpression){var arg0=self.adjustFormulaOnSwap(baseModel,baseRow,baseColumn,oldExpr.left,info);var arg1=self.adjustFormulaOnSwap(baseModel,baseRow,baseColumn,oldExpr.right,info);if(arg0!==oldExpr.left||arg1!==oldExpr.right){newExpr=new Expressions.BinaryOperatorExpression(oldExpr.operator,arg0,arg1)}}else if(oldExpr instanceof Expressions.FunctionExpression){var args=keyword_null,fnArg,i;var argCount=oldExpr.argCount();for(i=0;i<argCount;i++){fnArg=oldExpr.getArg(i);arg=self.adjustFormulaOnSwap(baseModel,baseRow,baseColumn,fnArg,info);if(arg!==fnArg){args=[];args[i]=arg;break}}if(args){for(i=0;i<argCount;i++){fnArg=oldExpr.getArg(i);if(args[i]===keyword_undefined||args[i]===keyword_null){args[i]=self.adjustFormulaOnSwap(baseModel,baseRow,baseColumn,fnArg,info)}}newExpr=new Expressions.FunctionExpression(oldExpr.fn,args)}}return newExpr};_Controller.prototype.adjustFormulasOnSwap=function(fromModel,fromRow,fromColumn,toModel,toRow,toColumn,rowCount,columnCount){var self=this;var info=new MoveSwapInfo(fromModel,fromRow,fromColumn,toModel,toRow,toColumn,rowCount,columnCount);var names=self.getAllCustomNames();for(var i=0;i<names.length;i++){var name=names[i];name.setExpression(self.adjustFormulaOnSwap(keyword_null,-1,-1,name.getExpression(),info))}var sheetSource,row,column,expr,settedMap={};while(self._headAdjustCells){sheetSource=self._headAdjustCells.sheetSource;var calcModel=sheetSource._sheet._getCalcModel();row=self._headAdjustCells.row;column=self._headAdjustCells.column;if(settedMap[row]&&settedMap[row][column]){self.removeAdjustCell(self._headAdjustCells);continue}expr=sheetSource.getExpression(row,column);if(expr){expr=self.adjustFormulaOnSwap(sheetSource,row,column,expr,info);var arrayInfo=calcModel.getNode(row,column,false).arrayInfo;if(arrayInfo){arrayInfo=new _spread.Range(row,column,arrayInfo.rowCount,arrayInfo.colCount);for(var r=row;r<row+arrayInfo.rowCount;r++){if(!settedMap[r]){settedMap[r]={}}for(var c=column;c<column+arrayInfo.colCount;c++){sheetSource.setExpression(r,c,expr,arrayInfo,r===row&&c===column);settedMap[r][c]=true}}}else
{sheetSource.setExpression(row,column,expr,arrayInfo,true)}}else if((sheetSource.getRowExpression&&sheetSource.getRowExpression(row))||(sheetSource.getColumnExpression&&sheetSource.getColumnExpression(column))){sheetSource._addCellsToDirty(row,column,1,1)}self.removeAdjustCell(self._headAdjustCells)}while(self._headAdjustRows){sheetSource=self._headAdjustRows.sheetSource;row=self._headAdjustRows.row;if(sheetSource.getRowExpression){expr=sheetSource.getRowExpression(row);if(expr&&sheetSource._setRowExpression){sheetSource._setRowExpression(row,self.adjustFormulaOnSwap(sheetSource,row,-1,expr,info),keyword_undefined)}}self.removeAdjustRow(self._headAdjustRows)}while(self._headAdjustColumns){sheetSource=self._headAdjustColumns.sheetSource;column=self._headAdjustColumns.column;if(sheetSource.getColumnExpression){expr=sheetSource.getColumnExpression(column);if(expr&&sheetSource._setColumnExpression){sheetSource._setColumnExpression(column,self.adjustFormulaOnSwap(sheetSource,-1,column,expr,info),keyword_undefined)}}self.removeAdjustColumn(self._headAdjustColumns)}};return _Controller})();Calc._Controller=_Controller;function shouldUseRange(row,col,rowCount,colCount){return(row===-1&&colCount>127)||(col===-1&&rowCount>127)||(rowCount*colCount>127)}var _SheetSource=(function(){function _SheetSource(sheet,sheetArea){var self=this;self._sheet=sheet;self._sheetArea=sheetArea;self._controller=new _Controller;self._controller.attachDataModel(self)}_SheetSource.prototype._getSheetReference=function(){var self=this;self._reference=self._reference||(new _SheetReference(self));return self._reference};_SheetSource.prototype.getAllValue=function(range,row,col,rowCount,colCount){var result=[[]];var maxRowCount=this.getRowCount();var maxColCount=this.getColumnCount();if(row>maxRowCount||col>maxColCount){return[[[CalcErrorsReference]]]}row=row===undefined?0:row;col=col===undefined?0:col;rowCount=rowCount===undefined?maxRowCount-row:rowCount;colCount=colCount===undefined?maxColCount-col:colCount;var startRow=0,startCol=0;for(var i=0;i<rowCount;i++){result[0][i]=[]}if(row<0){startRow=-row;for(var i=0;i<startRow;i++){for(var j=0;j<colCount;i++){result[0][i][j]=CalcErrorsValue}}row=0;rowCount+=row}if(col<0){startCol=-col;for(var i=0;i<rowCount;i++){for(var j=0;j<startCol;i++){result[0][i][j]=CalcErrorsValue}}col=0;colCount+=col}if(row+rowCount>maxRowCount){for(var i=maxRowCount-row;i<rowCount;i++){for(var j=0;j<colCount;i++){result[0][i][j]=CalcErrorsReference}}rowCount-=rowCount-maxRowCount+row}if(col+colCount>maxColCount){for(i=0;i<rowCount;i++){for(var j=maxColCount-col;j<colCount;j++){result[0][i][j]=CalcErrorsReference}}colCount-=colCount-maxColCount+col}this._sheet._getValuesForCalc(result,row,col,rowCount,colCount,startRow,startCol);return result};_SheetSource.prototype.getValue=function(row,column){var self=this;if(row<0||column<0)return CalcErrorsValue;if(row>=self.getRowCount()){return CalcErrorsReference}if(column>=self.getColumnCount()){return CalcErrorsReference}return self._sheet._getCurrentValue(row,column)};_SheetSource.prototype.getReference=function(row,column,rowCount,columnCount){var self=this;if(row===-1&&column===-1){return self._getSheetReference()}else if(row===-1){return new _ConcreteReference(self._getSheetReference(),[{row:0,rowCount:self.getRowCount(),col:column,colCount:columnCount}])}else if(column===-1){return new _ConcreteReference(self._getSheetReference(),[{row:row,rowCount:rowCount,col:0,colCount:self.getColumnCount()}])}else
{return new _ConcreteReference(self._getSheetReference(),[{row:row,rowCount:rowCount,col:column,colCount:columnCount}])}};_SheetSource.prototype.getFunction=function(name){return this._sheet?this._sheet._findCustomFunction(name):keyword_null};_SheetSource.prototype.getName=function(name,row,column){var nameInfo=this._sheet?this._sheet._findCustomName(name):keyword_null;if(nameInfo){return nameInfo.getExpression()}return keyword_null};_SheetSource.prototype.getColumnCount=function(){return this._sheet.getColumnCount()};_SheetSource.prototype.getRowCount=function(){return this._sheet.getRowCount()};_SheetSource.prototype.getCalcService=function(){return this._sheet?this._sheet.getCalcService():keyword_null};_SheetSource.prototype.hasFormula=function(row,col){row=row!==keyword_undefined?row:-1;col=col!==keyword_undefined?col:-1;return!!this.getExpression(row,col)};_SheetSource.prototype.setFormula=function(row,col,value,ignoreError){var self=this;if(value&&value.length===0){value=keyword_null}if(!ignoreError&&self._intersectWithArrayFormula(row,col,1,1)){self._throwArrayPartException()};var oldFormula=self.getFormula(row,col);if((oldFormula!==value)&&!((oldFormula===""&&!value)||(!oldFormula&&value===""))){var svc=self.getCalcService();if(svc){try
{var expr=value?svc.parse(value,row>=0?row:0,col>=0?col:0):keyword_null;self.setExpression(row,col,expr,keyword_undefined,false)}catch(ex){if(!ignoreError){throw ex;}}}if(row>=0&&col>=0){self._sheet._getModel(self._sheetArea).setFormula(row,col,value)}}};_SheetSource.prototype.getFormula=function(row,col){var svc=this.getCalcService();if(svc){var node=this.getEvaluateNode(row,col);if(node&&node.expr){row=node.arrayInfo?node.arrayInfo.row:row;col=node.arrayInfo?node.arrayInfo.col:col;return svc.unparse(node.expr,row,col)}}return keyword_null};_SheetSource.prototype.getRowFormula=function(row){return this.getFormula(row,-1)};_SheetSource.prototype.setRowFormula=function(row,value){this.setFormula(row,-1,value)};_SheetSource.prototype.getColumnFormula=function(col){this.getFormula(-1,col)};_SheetSource.prototype.setColumnFormula=function(col,value){this.setFormula(-1,col,value)};_SheetSource.prototype._throwArrayPartException=function(){throw _spread.SR.Exp_ArrayFromulaPart;};_SheetSource.prototype.setArrayFormula=function(row,col,rowCount,colCount,value,ignoreError){var self=this;if(value&&value.length===0){value=keyword_null}var sheet=self._sheet;if(sheet._hasSpans(row,col,rowCount,colCount)){throw _spread.SR.Exp_ArrayFromulaSpan;}if(self._intersectWithArrayFormula(row,col,rowCount,colCount)){self._throwArrayPartException()}row=row<0?0:row;col=col<0?0:col;var svc=self.getCalcService();if(!svc){return}self._clear(row,col,rowCount,colCount);if(!value){return}try
{var expr=value?svc.parse(value,row,col):keyword_null}catch(ex){if(!ignoreError){throw ex;}return}for(var rowIndex=row;rowIndex<row+rowCount;rowIndex++){for(var colIndex=col;colIndex<col+colCount;colIndex++){self.setExpression(rowIndex,colIndex,expr,new spread.Range(row,col,rowCount,colCount),false)}}if(row>=0&&col>=0){sheet._getModel(self._sheetArea).setFormula(row,col,value,new _spread.Range(row,col,rowCount,colCount))}};_SheetSource.prototype._clear=function(row,col,rowCount,colCount){var self=this;var calcMode=self._sheet._getCalcModel(self._sheetArea);if(!calcMode){return keyword_null}var row1=row<0?0:row;var col1=col<0?0:col;var rowCount1=row<0?calcMode.getRowCount():rowCount;var colCount1=col<0?calcMode.getColumnCount():colCount;var row2=row1+rowCount1-1;var col2=col1+colCount1-1;var svc=self.getCalcService();var hasPart=false;var ranges=[],formulas=[];for(var r=row1;r<=row2&&r>=0;r=calcMode.nextNonNullRow(r)){for(var c=col1;c<=col2&&c>=0;c=calcMode.nextNonNullColumn(r,c)){var node=calcMode.getNode(r,c);if(!node){continue}if(node.workingExpr||node.expr){var baseRange=node.arrayInfo?new spread.Range(node.arrayInfo.row,node.arrayInfo.col,node.arrayInfo.rowCount,node.arrayInfo.colCount):keyword_undefined;self.setExpression(r,c,keyword_null,baseRange,true)}}}};_SheetSource.prototype._intersectWithArrayFormula=function(row,col,rowCount,colCount){return this._getFormulaExps(row,col,rowCount,colCount,true,true)};_SheetSource.prototype._getFormulaExps=function(row,col,rowCount,colCount,testIntersect,onlyArrayFormula){var self=this;var calcMode=self._sheet._getCalcModel(self._sheetArea);if(!calcMode){return keyword_null}var row1=row<0?0:row;var col1=col<0?0:col;var rowCount1=row<0?calcMode.getRowCount():rowCount;var colCount1=col<0?calcMode.getColumnCount():colCount;var row2=row1+(rowCount1===0?1:rowCount1)-1;var col2=col1+(colCount1===0?1:colCount1)-1;var svc=self.getCalcService();var hasPart=false;var ranges=[],formulas=[];for(var r=row1;r<=row2&&r>=0;r=calcMode.nextNonNullRow(r)){for(var c=col1;c<=col2&&c>=0;c=calcMode.nextNonNullColumn(r,c)){var node=calcMode.getNode(r,c);if(!node){continue}if(node.arrayInfo){var array=node.arrayInfo;if(array.row<row1||(rowCount1>0&&array.row+array.rowCount-1>row2)||array.col<col1||(colCount1>0&&array.col+array.colCount-1>col2)){if(testIntersect){return true}hasPart=true}if(r!==array.row&&r!==row1){continue}ranges.push(new spread.Range(array.row,array.col,array.rowCount,array.colCount));var expr=node.expr;formulas.push(expr);c=array.col+array.colCount-1}else if(!onlyArrayFormula&&node.expr){ranges.push({row:r,col:c});formulas.push(node.expr)}}}if(testIntersect){return false}return{hasPart:hasPart,ranges:ranges,formulas:formulas}};_SheetSource.prototype.getExpression=function(row,col){var self=this;var expr=keyword_null,node,rowNode,colNode;var dataModel=self._sheet._getCalcModel(self._sheetArea);if(self._sheet){node=dataModel.getNode(row,col);if(node){expr=node.expr}if(!expr&&row<dataModel.getRowCount()){rowNode=dataModel.getNode(row,-1);if(rowNode){expr=rowNode.expr}}if(!expr&&col<dataModel.getColumnCount()){colNode=dataModel.getNode(-1,col);if(colNode){expr=colNode.expr}}}else if(row>=0&&col===-1){if(!expr&&row<dataModel.getRowCount()){rowNode=dataModel.getNode(row,-1);if(rowNode){expr=rowNode.expr}}}else if(row===-1&&col>=0){if(expr&&col<dataModel.getColumnCount()){colNode=dataModel.getNode(-1,col);if(colNode){expr=colNode.expr}}}else if(row===-1&&col===-1){node=dataModel.getNode(-1,-1);if(node){expr=node.expr}}return expr};_SheetSource.prototype.getEvaluateNode=function(row,col){var self=this;var expr=keyword_null,node;var dataModel=self._sheet._getCalcModel(self._sheetArea);if(row>=0&&col>=0){node=dataModel.getNode(row,col);if(node){expr=node.workingExpr||node.expr}}else if(row>=0&&col===-1){if(!expr&&row<dataModel.getRowCount()){node=dataModel.getNode(row,-1);if(node){expr=node.workingExpr||node.expr}}}else if(row===-1&&col>=0){if(expr&&col<dataModel.getColumnCount()){node=dataModel.getNode(-1,col);if(node){expr=node.workingExpr||node.expr}}}else if(row===-1&&col===-1){node=dataModel.getNode(-1,-1);if(node){expr=node.workingExpr||node.expr}}return node};_SheetSource.prototype.setExpression=function(row,col,expr,baseRange,updateModel){var self=this;var svc=self.getCalcService();var isArrayFormula=baseRange!==keyword_undefined&&baseRange!==null;var context=new EvaluateContext(self,isArrayFormula,isArrayFormula?baseRange.row:row,isArrayFormula?baseRange.col:col);var workingExpr=Expressions._mappingArray(context,expr,isArrayFormula,isArrayFormula?row-baseRange.row:0,isArrayFormula?col-baseRange.col:0);workingExpr=workingExpr===expr?keyword_undefined:workingExpr;var arrayInfo;if(baseRange!==keyword_undefined){arrayInfo=baseRange}if(row>=0&&col>=0){if(updateModel===keyword_undefined||updateModel){var formula=expr?svc.unparse(expr,row>=0?row:0,col>=0?col:0):keyword_undefined;self._sheet._getModel(self._sheetArea).setFormula(row,col,formula)}self._setCellExpression(row,col,expr,workingExpr,arrayInfo)}else if(row>=0&&col===-1){self._setRowExpression(row,expr,workingExpr)}else if(row===-1&&col>=0){self._setColumnExpression(col,expr,workingExpr)}if(self._controller.autoCalculation&&!svc.IsSuspended()){self._controller.recalculate()}};_SheetSource.prototype.getRowExpression=function(row){return this.getExpression(row,-1)};_SheetSource.prototype.getColumnExpression=function(column){return this.getExpression(-1,column)};_SheetSource.prototype._setCellExpression=function(row,col,value,workingExpr,arrayInfo){var self=this;var cellCalc;if(arrayInfo){cellCalc=self._getCellCalc(row,col,true)}else
{cellCalc=self._getCellCalc(row,col,true)}if(cellCalc){cellCalc.stopListening();var node=self._sheet._getCalcModel(self._sheetArea).getNode(row,col,true);node.expr=value;if(value){if(workingExpr||node.workingExpr){node.workingExpr=workingExpr}if(arrayInfo||node.arrayInfo){node.arrayInfo=arrayInfo}}else
{node.workingExpr=keyword_undefined;node.arrayInfo=keyword_undefined}cellCalc.startListening();self._controller.addDirtyCell(cellCalc)}};_SheetSource.prototype._setRowExpression=function(row,value,workingExpr){var self=this;var rowCalc=self._getRowCalc(row,true);if(rowCalc){rowCalc.stopListening();var dataModel=self._sheet._getCalcModel(self._sheetArea);var node=self._sheet._getCalcModel(self._sheetArea).getNode(row,-1,true);node.expr=value;if(workingExpr||node.workingExpr){node.workingExpr=workingExpr}rowCalc.startListening();self._controller.addDirtyRow(rowCalc)}};_SheetSource.prototype._setColumnExpression=function(column,value,workingExpr){var self=this;var columnCalc=self._getColumnCalc(column,true);if(columnCalc){columnCalc.stopListening();var dataModel=self._sheet._getCalcModel(self._sheetArea);var node=self._sheet._getCalcModel(self._sheetArea).getNode(-1,column,true);node.expr=value;if(workingExpr||node.workingExpr){node.workingExpr=workingExpr}columnCalc.startListening();self._controller.addDirtyRow(columnCalc)}};_SheetSource.prototype.onBeforeAddRemoveRows=function(row){var self=this;var rc=self.getRowCount(),cc=self.getColumnCount();self.unlinkCellExpression(row,0,rc-row,cc);self.unlinkRowExpression(row,rc-row);self._addDependentsToAdjust(row,-1,rc-row,-1)};_SheetSource.prototype.onAfterAddRows=function(row,count){var self=this;var rc=self.getRowCount(),cc=self.getColumnCount();self._addCellsToDirty(row,0,count,cc);self._addCellsToAdjust(row,0,rc-row,cc);self._addRowsToAdjust(row,rc-row);self._controller.adjustFormulasOnAddRows(self,row,count);if(self._controller.autoCalculation){self._controller.recalculate()}};_SheetSource.prototype.onAfterRemoveRows=function(row,count){var self=this;var rc=self.getRowCount(),cc=self.getColumnCount();self._addCellsToAdjust(row,0,rc-row,cc);self._addRowsToAdjust(row,rc-row);self._controller.adjustFormulasOnRemoveRows(self,row,count);if(self._controller.autoCalculation){self._controller.recalculate()}};_SheetSource.prototype.onBeforeAddRemoveColumns=function(column){var self=this;var rc=self.getRowCount(),cc=self.getColumnCount();self.unlinkCellExpression(0,column,rc,cc-column);self.unlinkColumnExpression(column,cc-column);self._addDependentsToAdjust(-1,column,-1,cc-column)};_SheetSource.prototype.onAfterAddColumns=function(column,count){var self=this;var rc=self.getRowCount(),cc=self.getColumnCount();self._addCellsToDirty(0,column,rc,count);self._addCellsToAdjust(0,column,rc,cc-column);self._addColumnsToAdjust(column,cc-column);self._controller.adjustFormulasOnAddColumns(self,column,count)};_SheetSource.prototype.onAfterRemoveColumns=function(column,count){var self=this;var rc=self.getRowCount(),cc=self.getColumnCount();self._addCellsToAdjust(0,column,rc,cc-column);self._addColumnsToAdjust(column,cc-column);self._controller.adjustFormulasOnRemoveColumns(self,column,count);if(self._controller.autoCalculation){self._controller.recalculate()}};_SheetSource.prototype._dealWithExpression=function(exprCalc,row,column,expr,isAdd){var self=this;while(expr instanceof Expressions.ParenthesesExpression){expr=expr.argument}while(expr instanceof Expressions.ExpandExpression){expr=expr.expr}if(expr instanceof Expressions.StructReferenceExpression){var cellRange=expr.getRange(row,column);if(cellRange===keyword_null){return}if(cellRange.rowCount===1&&cellRange.columnCount===1){expr=new Expressions.CellExpression(cellRange.row,cellRange.column,false,false)}else
{expr=new Expressions.RangeExpression(cellRange.row,cellRange.column,cellRange.row+cellRange.rowCount-1,cellRange.column+cellRange.columnCount-1,false,false,false,false)}}var refRow,refColumn,refStartRow,refEndRow,refStartColumn,refEndColumn,refRowCount,refColumnCount,refCellCalc,refRowCalc,refColumnCalc,r,c,sheetSource;if(expr instanceof Expressions.CellExpression||expr instanceof Expressions.ExternalCellExpression){var cellExpr=expr;sheetSource=expr instanceof Expressions.CellExpression?self:expr.source;if(0<=row&&0<=column){refRow=cellExpr.row+(cellExpr.rowRelative?row:0);refColumn=cellExpr.column+(cellExpr.columnRelative?column:0);refCellCalc=sheetSource._getCellCalc(refRow,refColumn,true);if(!refCellCalc){return}refCellCalc.processCellListener(exprCalc,isAdd)}else if(0<=row&&column===-1){refRow=cellExpr.row+(cellExpr.rowRelative?row:0);refColumn=cellExpr.column;if(cellExpr.columnRelative){refRowCalc=sheetSource._getRowCalc(refRow,true);if(!refRowCalc){return}refRowCalc.processRowListener2(exprCalc,-refColumn,isAdd)}else
{refCellCalc=sheetSource._getCellCalc(refRow,refColumn,true);if(!refCellCalc){return}refCellCalc.processRowListener(exprCalc,isAdd)}}else if(row===-1&&0<=column){refRow=cellExpr.row;refColumn=cellExpr.column+(cellExpr.columnRelative?column:0);if(cellExpr.rowRelative){refColumnCalc=sheetSource._getColumnCalc(refColumn,true);if(!refColumnCalc){return}refColumnCalc.processColumnListener2(exprCalc,-refRow,isAdd)}else
{refCellCalc=sheetSource._getCellCalc(refRow,refColumn,true);if(!refCellCalc){return}refCellCalc.processColumnListener(exprCalc,isAdd)}}}else if(expr instanceof Expressions.RangeExpression||expr instanceof Expressions.ExternalRangeExpression){sheetSource=expr instanceof Expressions.RangeExpression?self:expr.source;var rangeExpr=expr;var refRangeType=rangeExpr._getRangeType();if(refRangeType===RangeType.cell){if(0<=row&&0<=column){refStartRow=rangeExpr.startRow+(rangeExpr.startRowRelative?row:0);refStartColumn=rangeExpr.startColumn+(rangeExpr.startColumnRelative?column:0);refEndRow=rangeExpr.endRow+(rangeExpr.endRowRelative?row:0);refEndColumn=rangeExpr.endColumn+(rangeExpr.endColumnRelative?column:0);refRowCount=Math_abs(refEndRow-refStartRow)+1;refColumnCount=Math_abs(refEndColumn-refStartColumn)+1;if(shouldUseRange(refRow,refColumn,refRowCount,refColumnCount)){var rangeCalc=sheetSource._getRangeCalc(true);if(!rangeCalc){return}rangeCalc.processCellListener(refStartRow,refStartColumn,refRowCount,refColumnCount,exprCalc,isAdd)}else
{for(r=refStartRow;r<=refEndRow;r++){for(c=refStartColumn;c<=refEndColumn;c++){refCellCalc=sheetSource._getCellCalc(r,c,true);if(refCellCalc){refCellCalc.processCellListener(exprCalc,isAdd)}}}}}else if(0<=row&&column===-1){refStartRow=rangeExpr.startRow+(rangeExpr.startRowRelative?row:0);refStartColumn=rangeExpr.startColumn+(rangeExpr.startColumnRelative?column:0);refEndRow=rangeExpr.endRow+(rangeExpr.endRowRelative?row:0);refEndColumn=rangeExpr.endColumn+(rangeExpr.endColumnRelative?column:0);for(r=refStartRow;r<=refEndRow;r++){for(c=refStartColumn;c<=refEndColumn;c++){if(rangeExpr.startColumnRelative||rangeExpr.endColumnRelative){refRowCalc=sheetSource._getRowCalc(r,true);if(refRowCalc){refRowCalc.processRowListener2(exprCalc,-c,isAdd)}}else
{refCellCalc=sheetSource._getCellCalc(r,c,true);if(refCellCalc){refCellCalc.processRowListener(exprCalc,isAdd)}}}}}else if(row===-1&&0<=column){refStartRow=rangeExpr.startRow+(rangeExpr.startRowRelative?row:0);refStartColumn=rangeExpr.startColumn+(rangeExpr.startColumnRelative?column:0);refEndRow=rangeExpr.endRow+(rangeExpr.endRowRelative?row:0);refEndColumn=rangeExpr.endColumn+(rangeExpr.endColumnRelative?column:0);for(r=refStartRow;r<=refEndRow;r++){for(c=refStartColumn;c<=refEndColumn;c++){if(rangeExpr.startRowRelative||rangeExpr.endRowRelative){refColumnCalc=sheetSource._getColumnCalc(c,true);if(refColumnCalc){refColumnCalc.processColumnListener2(exprCalc,-r,isAdd)}}else
{refCellCalc=sheetSource._getCellCalc(r,c,true);if(refCellCalc){refCellCalc.processColumnListener(exprCalc,isAdd)}}}}}}else if(refRangeType===RangeType.row){if(0<=row&&0<=column){refStartRow=rangeExpr.startRow+(rangeExpr.startRowRelative?row:0);refEndRow=rangeExpr.endRow+(rangeExpr.endRowRelative?row:0);for(r=refStartRow;r<=refEndRow;r++){refRowCalc=sheetSource._getRowCalc(r,true);if(refRowCalc){refRowCalc.processCellListener(exprCalc,isAdd)}}}else if(0<=row&&column===-1){}else if(row===-1&&0<=column){}}else if(refRangeType===RangeType.column){if(0<=row&&0<=column){refStartColumn=rangeExpr.startColumn+(rangeExpr.startColumnRelative?column:0);refEndColumn=rangeExpr.endColumn+(rangeExpr.endColumnRelative?column:0);for(c=refStartColumn;c<=refEndColumn;c++){refColumnCalc=sheetSource._getColumnCalc(c,true);if(refColumnCalc){refColumnCalc.processCellListener(exprCalc,isAdd)}}}else if(0<=row&&column===-1){}else if(row===-1&&0<=column){}}else if(refRangeType===RangeType.sheet){if(0<=row&&0<=column){}else if(0<=row&&column===-1){}else if(row===-1&&0<=column){}}}else if(expr instanceof Expressions.UnaryOperatorExpression){self._dealWithExpression(exprCalc,row,column,expr.operand,isAdd)}else if(expr instanceof Expressions.BinaryOperatorExpression){self._dealWithExpression(exprCalc,row,column,expr.left,isAdd);self._dealWithExpression(exprCalc,row,column,expr.right,isAdd)}else if(expr instanceof Expressions.NameExpression||expr instanceof Expressions.ExternalNameExpression){sheetSource=expr instanceof Expressions.NameExpression?self:expr.source;var refNameCalc=sheetSource._getNameCalc(expr.name,true);if(!refNameCalc){return}refNameCalc.processCellListener(exprCalc,isAdd);self._dealWithExpression(exprCalc,row,column,sheetSource.getName(expr.name,row,column),isAdd)}else if(expr instanceof Expressions.FunctionExpression){var funcExpr=expr;if(funcExpr.fn&&(funcExpr.fn instanceof Calc.Functions.Function)&&!funcExpr.fn.precedentReference()){return}var argCount=funcExpr.argCount();for(var i=0;i<argCount;i++){self._dealWithExpression(exprCalc,row,column,funcExpr.getArg(i),isAdd)}}};_SheetSource.prototype._dealWithCellExpression=function(row,column,rowCount,columnCount,isAdd){var self=this;var dataModel=self._sheet._getCalcModel(self._sheetArea),endRow=row+rowCount,endCol=column+columnCount;for(var r=row;r<endRow;r++){for(var c=column;c<endCol;c++){var node=dataModel.getNode(r,c);if(node&&(node.workingExpr||node.expr)){if(node.arrayInfo){self._dealWithExpression(self._getCellCalc(r,c),node.arrayInfo.row,node.arrayInfo.col,node.workingExpr||node.expr,isAdd)}else
{self._dealWithExpression(self._getCellCalc(r,c),r,c,node.workingExpr||node.expr,isAdd)}}}}};_SheetSource.prototype.linkCellExpression=function(row,column,rowCount,columnCount){this._dealWithCellExpression(row,column,rowCount,columnCount,true)};_SheetSource.prototype.unlinkCellExpression=function(row,column,rowCount,columnCount){this._dealWithCellExpression(row,column,rowCount,columnCount,false)};_SheetSource.prototype.linkRowExpression=function(row,rowCount){};_SheetSource.prototype.unlinkRowExpression=function(row,rowCount){};_SheetSource.prototype.linkColumnExpression=function(col,colCount){};_SheetSource.prototype.unlinkColumnExpression=function(col,colCount){};_SheetSource.prototype._addColumnsToDirty=function(col,colCount){var self=this;var dataModel=self._sheet._getCalcModel(self._sheetArea);for(var c=col;c!==-1&&c<col+colCount;c++){var node=dataModel.getNode(-1,c,false);if(!node||(!node.columnCalc&&!node.expr)){continue}var columnCalc=self._getColumnCalc(c,true);self._controller.addDirtyColumn(columnCalc)}};_SheetSource.prototype._addRowsToDirty=function(row,rowCount){var self=this;var dataModel=self._sheet._getCalcModel(self._sheetArea);for(var r=row;r!==-1&&r<row+rowCount;r++){var node=dataModel.getNode(r,-1,false);if(!node||(!node.rowCalc&&!node.expr)){continue}var rowCalc=self._getRowCalc(r,true);self._controller.addDirtyRow(rowCalc)}};_SheetSource.prototype._addCellsToDirty=function(row,col,rowCount,colCount){var self=this;var dataModel=self._sheet._getCalcModel(self._sheetArea),endRow=row+rowCount,endCol=col+colCount;for(var r=row;r<endRow;r++){for(var c=col;c<endCol;c++){if(!dataModel.containsNoe(r,c)){continue}var cellCalc=self._getCellCalc(r,c,true);self._controller.addDirtyCell(cellCalc)}}self._addRowsToDirty(row,rowCount);self._addColumnsToDirty(col,colCount)};_SheetSource.prototype._addDependentsToAdjust=function(row,col,rowCount,colCount){this._addDependents(row,col,rowCount,colCount,true,false)};_SheetSource.prototype._iterateEachCell=function(dataModel,row,column,rowCount,columnCount,setAdjust,setDirty){var endRow=row+rowCount,endCol=column+columnCount;for(var r=row;r<endRow;r++){for(var c=column;c<endCol;c++){var cellCalc=this._getCellCalc(r,c,false);if(cellCalc){if(setAdjust){cellCalc.addListenersToAdjust()}if(setDirty){cellCalc.addListenersToDirty()}}}}};_SheetSource.prototype._iterateEachRow=function(dataModel,row,rowCount,setAdjust,setDirty){if(dataModel._rowDataArray){for(var r=row;r!==-1&&r<row+rowCount&&r<dataModel._rowDataArray.length;r++){var node=dataModel._rowDataArray[r];if(!node||!node.rowCalc){continue}var rowCalc=node.rowCalc;if(setAdjust){rowCalc.addListenersToAdjust()}if(setDirty){rowCalc.addListenersToDirty()}}}};_SheetSource.prototype._iterateEachColumn=function(dataModel,column,columnCount,setAdjust,setDirty){if(dataModel._columnDataArray){for(var c=column;c!==-1&&c<column+columnCount&&c<dataModel._columnDataArray.length;c++){var node=dataModel._columnDataArray[c];if(!node||!node.columnCalc){continue}var columnCalc=node.columnCalc;if(setAdjust){columnCalc.addListenersToAdjust()}if(setDirty){columnCalc.addListenersToDirty()}}}};_SheetSource.prototype._addDependents=function(row,column,rowCount,columnCount,setAdjust,setDirty){if(setAdjust||setDirty){var self=this;var dataModel=self._sheet._getCalcModel(self._sheetArea);if(0<=row&&0<=column){self._iterateEachCell(dataModel,row,column,rowCount,columnCount,setAdjust,setDirty);self._iterateEachRow(dataModel,row,rowCount,setAdjust,setDirty);self._iterateEachColumn(dataModel,column,columnCount,setAdjust,setDirty);if(self._rangeCalc){if(setAdjust){self._rangeCalc.addListenersToAdjust(row,column,rowCount,columnCount)}if(setDirty){self._rangeCalc.addListenersToDirty(row,column,rowCount,columnCount)}}}else if(0<=row&&column===-1){self._iterateEachCell(dataModel,row,0,rowCount,self.getColumnCount(),setAdjust,setDirty);self._iterateEachRow(dataModel,row,rowCount,setAdjust,setDirty);if(self._rangeCalc){if(setAdjust){self._rangeCalc.addListenersToAdjust(row,column,rowCount,columnCount)}if(setDirty){self._rangeCalc.addListenersToDirty(row,column,rowCount,columnCount)}}}else if(row===-1&&0<=column){self._iterateEachCell(dataModel,0,column,self.getRowCount(),columnCount,setAdjust,setDirty);self._iterateEachColumn(dataModel,column,columnCount,setAdjust,setDirty);if(self._rangeCalc){if(setAdjust){self._rangeCalc.addListenersToAdjust(row,column,rowCount,columnCount)}if(setDirty){self._rangeCalc.addListenersToDirty(row,column,rowCount,columnCount)}}}else if(row===-1&&column===-1){var rc=self.getRowCount(),cc=self.getColumnCount();self._iterateEachCell(dataModel,0,0,rc,cc,setAdjust,setDirty);self._iterateEachRow(dataModel,0,rc,setAdjust,setDirty);self._iterateEachColumn(dataModel,0,cc,setAdjust,setDirty);if(self._rangeCalc){if(setAdjust){self._rangeCalc.addListenersToAdjust(row,column,rowCount,columnCount)}if(setDirty){self._rangeCalc.addListenersToDirty(row,column,rowCount,columnCount)}}}}};_SheetSource.prototype._addCellsToAdjust=function(row,column,rowCount,columnCount){var self=this;var dataModel=self._sheet._getCalcModel(self._sheetArea),endRow=row+rowCount,endCol=column+columnCount;for(var r=row;r<endRow;r++){for(var c=column;c<endCol;c++){var node=dataModel.getNode(r,c,false);if(!node||(!node.cellCalc&&!node.expr)){continue}if(node.cellCalc){node.cellCalc=keyword_null}var cellCalc=self._getCellCalc(r,c,true);self._controller.addAdjustCell(cellCalc)}}};_SheetSource.prototype._addColumnsToAdjust=function(col,colCount){var self=this;var dataModel=self._sheet._getCalcModel(self._sheetArea);for(var c=col;c!==-1&&c<col+colCount;c++){var node=dataModel.getNode(-1,col);if(!node||(!node.columnCalc&&!node.expr)){continue}var columnCalc=self._getColumnCalc(c,true);self._controller.addAdjustColumn(columnCalc)}};_SheetSource.prototype._addRowsToAdjust=function(row,rowCount){var self=this;var dataModel=self._sheet._getCalcModel(self._sheetArea);for(var r=row;r!==-1&&r<row+rowCount;r++){var node=dataModel.getNode(row,-1);if(!node||(!node.rowCalc&&!node.expr)){continue}var rowCalc=self._getRowCalc(r,true);self._controller.addAdjustRow(rowCalc)}};_SheetSource.prototype._getCellCalc=function(row,col,create){var self=this;var cell=keyword_null;if(row>=0&&col>=0){var calcModel=self._sheet._getCalcModel(self._sheetArea);var node=calcModel.getNode(row,col,create);if(node){cell=node.cellCalc;if(!cell&&create){node.cellCalc=cell=new CellCalc(self,row,col)}}}return cell};_SheetSource.prototype._getRowCalc=function(row,create){var self=this;var calc=keyword_null;if(row>=0){var calcModel=self._sheet._getCalcModel(self._sheetArea);var node=calcModel.getNode(row,-1,create);if(node){calc=node.rowCalc;if(!calc&&create){node.rowCalc=calc=new RowCalc(self,row)}}}return calc};_SheetSource.prototype._getColumnCalc=function(column,create){var self=this;var calc=keyword_null;if(column>=0){var calcModel=self._sheet._getCalcModel(self._sheetArea);var node=calcModel.getNode(-1,column,create);if(node){calc=node.columnCalc;if(!calc&&create){node.columnCalc=calc=new ColumnCalc(self,column)}}}return calc};_SheetSource.prototype._getRangeCalc=function(create){var self=this;var calcModel=self._sheet._getCalcModel(self._sheetArea);if(!calcModel._rangeCalc&&create){calcModel._rangeCalc=new RangeCalc(self)}return calcModel._rangeCalc};_SheetSource.prototype._getNameCalc=function(name,create){var self=this;var nameCalc=keyword_null,calcModel;if(self._sheet.getCustomName(name)){calcModel=self._sheet._getCalcModel(self._sheetArea);if(!calcModel._names){calcModel._names={}}nameCalc=calcModel._names[name];if(!nameCalc&&create){nameCalc=calcModel._names[name]=new NameCalc(name)}}else
{var calcService=self._sheet.getCalcService();if(calcService&&calcService._getNameCalc){nameCalc=calcService._getNameCalc(name,create)}if(!nameCalc){calcModel=self._sheet._getCalcModel(self._sheetArea);if(!calcModel._names){calcModel._names={}}nameCalc=calcModel._names[name];if(!nameCalc&&create){nameCalc=calcModel._names[name]=new NameCalc(name)}}}return nameCalc};_SheetSource.prototype.recalculateCell=function(row,column){var self=this;var node=self.getEvaluateNode(row,column);var expr=node?node.workingExpr||node.expr:keyword_null;if(expr){var oldValue=self._sheet.getValue(row,column);var isArrayFormula=false,baseRow,baseCol,rowCount,colCount;if(node.arrayInfo){isArrayFormula=true;baseRow=node.arrayInfo.row;baseCol=node.arrayInfo.col;rowCount=node.arrayInfo.rowCount;colCount=node.arrayInfo.colCount}var value=self._sheet.getCalcService().evaluateParsedFormula(self,expr,row,column,isArrayFormula,true,baseRow,baseCol,rowCount,colCount);if(oldValue===value){return}else if((oldValue instanceof Date)&&(value instanceof Date)){if(oldValue.valueOf()===value.valueOf()){return}}var m=self._sheet._getModel();if(!m){return}var valueSet=false;var bm=self._sheet._bindingManager;if(bm&&bm._dataSource){valueSet=bm.setValue(row,column,value)}if(!valueSet||self._sheet.checkingChanges){m.setValue(row,column,value)}}};_SheetSource.prototype.shareCalculations=function(sheetSource){var self=this;if(self._controller===sheetSource._controller){return}self._controller.detachDataModel(self);if(self._controller._dataModels.length>0){var dm=self._controller._dataModels[0];if(dm){dm.shareCalculations(sheetSource)}}self._controller=sheetSource._controller;self._controller.attachDataModel(self)};_SheetSource.prototype.unshareCalculations=function(){var self=this;self._addCellsToAdjust(0,0,self.getRowCount(),self.getColumnCount());self._addRowsToAdjust(0,self.getRowCount());self._addColumnsToAdjust(0,self.getColumnCount());self._addDependentsToAdjust(-1,-1,-1,-1);self._controller.adjustFormulasOnRemoveSheet(self);if(self._controller.autoCalculation){self._controller.recalculate()}self._controller.detachDataModel(self);self._controller=new _Controller;self._controller.attachDataModel(self)};return _SheetSource})();Calc._SheetSource=_SheetSource;var Service=(function(){function Service(context){var self=this;self.context=context;self.parser=new Parser;self.evaluator=new Evaluator;self.useR1C1=false;self._suspended=0}Service.prototype.contextChanged=function(){this.cachedContexts=keyword_null};Service.prototype._getExternalSource=function(bookName,sheetName){var self=this;if(!self.context){return keyword_null}if(bookName&&(!(self.context instanceof wijmo.spread.Spread)||(self.context.name!==bookName))){return keyword_null}var sc=self.getSheetContexts();if(sc&&sc.length>0){for(var i=0;i<sc.length;i++){var ctx=sc[i];if(compareStringIgnoreCase(ctx.name,sheetName)){return ctx.target._getSheetSource()}}}return keyword_null};Service.prototype._getExternalSourceToken=function(source){return source._sheet._name};Service.prototype._getTableByName=function(name){var self=this;if(self.context.getActiveSheet&&self.context._findTable){return self.context._findTable(name)}else if(self.context.parent&&self.context._findTable){return self.context._findTable(name)}else if(self.context.findTableByName){return self.context.findTableByName(name)}return keyword_null};Service.prototype._getTableByIndex=function(rowIndex,columnIndex){var sheet=this.context;if(sheet.getActiveSheet){sheet=sheet.getActiveSheet()}if(sheet.findTable){return sheet.findTable(rowIndex,columnIndex)}};Service.prototype._getParserContext=function(row,col){var parserContext=new ParserContext(this.useR1C1,row,col,keyword_null);var self=this;parserContext.getExternalSource=function(book,sheet){return self._getExternalSource(book,sheet)};parserContext.getExternalSourceToken=function(source){return self._getExternalSourceToken(source)};parserContext.getTableByName=function(name){return self._getTableByName(name)};parserContext.getTableByIndex=function(rowIndex,columnIndex){return self._getTableByIndex(rowIndex,columnIndex)};return parserContext};Service.prototype._getEvaluatorContext4Cell=function(sheet,row,col,arrayFormula,baseRow,baseCol,rowCount,colCount){if(arrayFormula){baseRow=typeof baseRow===const_undefined?row:baseRow;baseCol=typeof baseCol===const_undefined?col:baseCol;return new EvaluateContext(sheet._getSheetSource(),arrayFormula,baseRow,baseCol,rowCount,colCount,row,col)}else
{return new EvaluateContext(sheet._getSheetSource(),arrayFormula,row,col)}};Service.prototype.getSheetContexts=function(){var self=this;if(!self.cachedContexts){self.createSheetContexts()}return self.cachedContexts};Service.prototype.createSheetContexts=function(){var self=this;if(!self.context){return}self.cachedContexts=self.context._getCalcContexts()};Service.prototype.parse=function(formula,row,col){var parseContext=this._getParserContext(row,col);parseContext.row=row;parseContext.column=col;return this.parser.parse(formula,parseContext)};Service.prototype.unparse=function(expr,row,col){var parseContext=this._getParserContext(row,col);parseContext.row=row;parseContext.column=col;return this.parser.unparse(expr,parseContext)};Service.prototype.evaluateParsedFormula=function(sheetSource,expr,row,col,isArrayFormula,convertNullToZero,baseRow,baseCol,rowCount,colCount){var evalContext=this._getEvaluatorContext4Cell(sheetSource._sheet,row,col,isArrayFormula,baseRow,baseCol,rowCount,colCount);var val=this.evaluator.evaluateExpression(expr,evalContext,convertNullToZero);if(isArrayFormula&&arguments.length<=5){return(val===keyword_undefined||val===keyword_null)?0:val}if(val instanceof Reference){var rc=val.getRowCount(0),cc=val.getColumnCount(0);if(val.getRangeCount()<=0){return CalcErrorsReference}else
{if(val.getRangeCount()!==1){return CalcErrorsValue}else
{try
{var ro=isArrayFormula?row-baseRow:row-val.getRow(0),co=isArrayFormula?col-baseCol:col-val.getColumn(0);if(rc===1&&cc===1){val=val.getValue(0,0,0)}else if(rc===1&&cc>1&&co>=0&&co<cc){val=val.getValue(0,0,co)}else if(rc>1&&cc===1&&ro>=0&&ro<rc){val=val.getValue(0,ro,0)}else if(isArrayFormula&&ro<rc&&co<cc){val=val.getValue(0,ro,co)}else if(isArrayFormula){return CalcErrorsNotAvailable}else
{return CalcErrorsValue}}catch(iex){return CalcErrorsValue}}}}else if(val instanceof CalcArray){if(!isArrayFormula){val=val.getValueByIndex(0)}else
{var arrayValue=val;var rc1=arrayValue.getRowCount();var cc1=arrayValue.getColumnCount();if(rc1!=1&&row-baseRow>=rc1||cc1!=1&&col-baseCol>=cc1){return CalcErrorsNotAvailable}val=val.getValue(rc1==1?0:row-baseRow,cc1==1?0:col-baseCol)}}return(val===keyword_undefined||val===keyword_null)?0:val};Service.prototype.evaluate=function(sourceContext,formula,row,col){var self=this;return self.evaluator.evaluateFormula(formula,self._getParserContext(row,col),self._getEvaluatorContext4Cell(sourceContext._sheet,row,col,false))};Service.prototype.recalculate=function(context,row,col){var sheet=context.target;if(sheet){var sheetSource=sheet._getSheetSource();if(sheetSource){sheetSource._addCellsToDirty(row,col,1,1);if(!this.IsSuspended()){sheetSource._controller.recalculate()}}}};Service.prototype.recalculateAll=function(dirtyAll){var contexts=this.getSheetContexts();if(contexts){for(var i=0;i<contexts.length;i++){var sheet=contexts[i].target;if(sheet){var sheetSource=sheet._getSheetSource();if(sheetSource){if(dirtyAll!==false){var colCount=sheet.getColumnCount();var rowCount=sheet.getRowCount();sheetSource._addColumnsToDirty(0,colCount);sheetSource._addRowsToDirty(0,rowCount);sheetSource._addCellsToDirty(0,0,rowCount,colCount)}}}}if(!this.IsSuspended()){for(var i=0;i<contexts.length;i++){var sheet=contexts[i].target;if(sheet){var sheetSource=sheet._getSheetSource();if(sheetSource){sheetSource._controller.recalculate(dirtyAll===false)}}}}}};Service.prototype.ignoreDirty=function(){return this._ignoreDirty};Service.prototype.suspend=function(ignoreDirty){this._suspended++;this._ignoreDirty=ignoreDirty?true:ignoreDirty};Service.prototype.resume=function(recalcAll){var self=this;self._suspended--;if(self._suspended<0){self._suspended=0}if(!self.IsSuspended()){self._ignoreDirty=false;self.recalculateAll(recalcAll)}};Service.prototype.resumeWithoutCalc=function(){this._suspended=0;var contexts=this.getSheetContexts();if(contexts){for(var i=0;i<contexts.length;i++){var sheet=contexts[i].target;if(sheet){var sheetSource=sheet._getSheetSource();if(sheetSource){sheetSource._controller.clearDirties()}}}}};Service.prototype.IsSuspended=function(){return this._suspended>0};return Service})();Calc.Service=Service;function evaluateFormula(context,formula,baseRow,baseColumn,useR1C1){var parser=new Calc.Parser;var parserContext=new ParserContext(!!useR1C1,baseRow,baseColumn);var expression=parser.parse(formula,parserContext);return Calc.evaluateExpression(context,expression,baseRow,baseColumn)}Calc.evaluateFormula=evaluateFormula;function evaluateExpression(context,expression,baseRow,baseColumn){var calcService=context.getCalcService();if(baseRow===keyword_undefined){baseRow=context.getActiveRowIndex()}if(baseColumn===keyword_undefined){baseColumn=context.getActiveColumnIndex()}var sheetSource=context._getSheetSource();var result=calcService.evaluateParsedFormula(sheetSource,expression,baseRow,baseColumn,false,true);return result}Calc.evaluateExpression=evaluateExpression;function rangeToExpression(range,baseRow,baseCol,rangeReferenceRelative){var row=range.row,col=range.col,endRow=range.row+range.rowCount-1,endCol=range.col+range.colCount-1;var startRowRelative=false,endRowRelative=false,startColRelative=false,endColRelative=false;if(arguments.length>=4){startRowRelative=(rangeReferenceRelative&1)!==0;endRowRelative=(rangeReferenceRelative&4)!==0;startColRelative=(rangeReferenceRelative&2)!==0;endColRelative=(rangeReferenceRelative&8)!==0;row-=startRowRelative?baseRow:0;endRow-=endRowRelative?baseRow:0;col-=startColRelative?baseCol:0;endCol-=endColRelative?baseCol:0}var expression;if(range.row<0&&range.col<0){expression=new Expressions.RangeExpression}else if(range.row<0){expression=new Expressions.RangeExpression;expression.initBand(col,endCol,startColRelative,endColRelative,false)}else if(range.col<0){expression=new Expressions.RangeExpression;expression.initBand(row,endRow,startRowRelative,endRowRelative,true)}else if(range.rowCount===1&&range.colCount===1){expression=new Expressions.CellExpression(row,col,startRowRelative,startColRelative)}else
{expression=new Expressions.RangeExpression(row,col,endRow,endCol,startRowRelative,startColRelative,endRowRelative,endColRelative)}return expression}Calc.rangeToExpression=rangeToExpression;function rangeToFormula(range,baseRow,baseCol,rangeReferenceRelative,useR1C1){var expression=Calc.rangeToExpression(range,baseRow,baseCol,rangeReferenceRelative);var context=new Calc.ParserContext(!!useR1C1,baseRow,baseCol);var parser=new Calc.Parser;return parser.unparse(expression,context)}Calc.rangeToFormula=rangeToFormula;function formulaToRange(formula,baseRow,baseCol,useR1C1){if(!formula){return null}baseRow=!baseRow?0:baseRow;baseCol=!baseCol?0:baseCol;var context=new Calc.ParserContext(!!useR1C1,baseRow,baseCol);var parser=new Calc.Parser;var expr=parser.parse(formula,context);if(expr&&expr.getRange){var cellRange=expr.getRange(baseRow,baseCol);return new _spread.Range(cellRange.row,cellRange.column,cellRange.rowCount,cellRange.columnCount)}return null}Calc.formulaToRange=formulaToRange;function rangesToFormula(ranges,baseRow,baseCol,rangeReferenceRelative,useR1C1){var formula="";var parser=new Calc.Parser;var context=new Calc.ParserContext(!!useR1C1,baseRow,baseCol);if(ranges.length>1){formula="("}for(var i=0;i<ranges.length;i++){var expression=Calc.rangeToExpression(ranges[i],baseRow,baseCol,rangeReferenceRelative);var rangeFormula=parser.unparse(expression,context);if(i>0){formula+=', '+rangeFormula}else
{formula=rangeFormula}}if(ranges.length>1){formula+=")"}return formula}Calc.rangesToFormula=rangesToFormula;(function(RangeReferenceRelative){RangeReferenceRelative[RangeReferenceRelative["allAbsolute"]=0]="allAbsolute";RangeReferenceRelative[RangeReferenceRelative["startRowRelative"]=1]="startRowRelative";RangeReferenceRelative[RangeReferenceRelative["startColRelative"]=2]="startColRelative";RangeReferenceRelative[RangeReferenceRelative["endRowRelative"]=4]="endRowRelative";RangeReferenceRelative[RangeReferenceRelative["endColRelative"]=8]="endColRelative";RangeReferenceRelative[RangeReferenceRelative["rowRelative"]=5]="rowRelative";RangeReferenceRelative[RangeReferenceRelative["colRelative"]=10]="colRelative";RangeReferenceRelative[RangeReferenceRelative["allRelative"]=15]="allRelative"})(Calc.RangeReferenceRelative||(Calc.RangeReferenceRelative={}));var RangeReferenceRelative=Calc.RangeReferenceRelative})(_spread.Calc||(_spread.Calc={}));var Calc=_spread.Calc})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){(function(Calc){(function(_Functions){spread.feature("calc.functions",["calc.common"]);var $=jQuery;var keyword_null=null,keyword_undefined=undefined,Math_abs=Math.abs,Math_sqrt=Math.sqrt,Math_max=Math.max,Math_min=Math.min,Math_floor=Math.floor,Math_ceil=Math.ceil,Math_sin=Math.sin,Math_asin=Math.asin,Math_cos=Math.cos,Math_acos=Math.acos,Math_tan=Math.tan,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_PI=Math.PI,Math_random=Math.random,Math_pow=Math.pow,const_string="string",const_boolean="boolean";var CalcErrors=Calc.Errors,CalcErrorsNull=CalcErrors.Null,CalcErrorsDivideByZero=CalcErrors.DivideByZero,CalcErrorsValue=CalcErrors.Value,CalcErrorsReference=CalcErrors.Reference,CalcErrorsName=CalcErrors.Name,CalcErrorsNotAvailable=CalcErrors.NotAvailable,CalcErrorsNumber=CalcErrors.Number;_Functions.Functions=Calc.Functions;_Functions.Functions._builtInFunctions=_Functions.Functions._builtInFunctions||{};function _defineBuildInFunction(name,fnEvaluate,options){if(name===keyword_undefined||name===keyword_null){throw spread.SR.Exp_InvalidFunctionName;}var fn;name=name.toUpperCase();if(!_Functions.Functions._builtInFunctions.hasOwnProperty(name)){fn=new _Functions.Functions.Function(name,0,255);_Functions.Functions._builtInFunctions[name]=fn}else
{fn=_Functions.Functions._builtInFunctions[name];if(!fn){_Functions.Functions._builtInFunctions[name]=new _Functions.Functions.Function(name,0,255);fn=_Functions.Functions[name.toUpperCase()]}else if(!options||!options.override){throw spread.SR.Exp_OverrideNotAllowed;}}if(fnEvaluate&&typeof fnEvaluate==="function"){fn.evaluate=fnEvaluate}if(options){for(var prop in options){if(options.hasOwnProperty(prop)&&prop!=='override'){fn[prop]=options[prop]}}}return fn}_Functions._defineBuildInFunction=_defineBuildInFunction;;_Functions.def=_defineBuildInFunction;var _DateHelper=(function(){function _DateHelper(){}_DateHelper.days360=dt_days360;_DateHelper.yearfrac=dt_yearfrac;return _DateHelper})();_Functions._DateHelper=_DateHelper;function acceptsAny(i){return true}_Functions.acceptsAny=acceptsAny;function acceptsNone(){return false}_Functions.acceptsNone=acceptsNone;function acceptsNotZero(i){return i!==0}_Functions.acceptsNotZero=acceptsNotZero;function acceptsOne(i){return i===1}_Functions.acceptsOne=acceptsOne;function acceptsTwo(i){return i===2}_Functions.acceptsTwo=acceptsTwo;function acceptsZeroTwo(i){return i===0||i===2}_Functions.acceptsZeroTwo=acceptsZeroTwo;function acceptsZeroOdd(i){return i===0||i%2===1}_Functions.acceptsZeroOdd=acceptsZeroOdd;function acceptsThree(i){return i===3}_Functions.acceptsThree=acceptsThree;function isVolatile(){return true}_Functions.isVolatile=isVolatile;function acceptsOneTwo(i){return i===1||i===2}_Functions.acceptsOneTwo=acceptsOneTwo;function isBranch(){return true}_Functions.isBranch=isBranch;function acceptsZero(i){return i===0}_Functions.acceptsZero=acceptsZero;function __iterate(obj,fn,ctx){var Convert=Calc.Convert;if(Convert.isError(obj)){ctx.value=obj;return false}else if(Convert._isCalcReference(obj)){for(var a=0;a<obj.getRangeCount();a++){for(var r=0;r<obj.getRowCount(a);r++){for(var c=0;c<obj.getColumnCount(a);c++){if(obj instanceof Calc._SheetRangeReference){for(var i=0;i<obj.getSheetCount();i++){if(ctx.includeSubtotal||!obj.isSubtotal(i,a,r,c)){if(fn(obj.getValue(i,a,r,c),ctx)===false){return false}}}}else if(ctx.includeSubtotal||!obj.isSubtotal(a,r,c)){if(fn(obj.getValue(a,r,c),ctx)===false){return false}}}}}}else if(Convert._isCalcArray(obj)){Convert._inArray=true;for(var i1=0;i1<obj.length();i1++){if(fn(obj.getValueByIndex(i1),ctx)===false){return false}}Convert._inArray=false}else if($.isArray(obj)){$.each(obj,function(i,v){return fn(v,ctx)})}else
{if(fn(obj,ctx)===false){return false}}return true}function findTestArgument(){return 0}_Functions.findTestArgument=findTestArgument;function findBranchArgument(test){var Convert=Calc.Convert;if(Convert.isError(test)){return-1}var result=false;try
{result=Convert.toBool(test)}catch(err){}return result?1:2}function acceptAboveZero(i){return i>0}_Functions.acceptAboveZero=acceptAboveZero;function acceptsSecond(i){return i===1}_Functions.acceptsSecond=acceptsSecond;function acceptsSecondOrThirdOrFourth(i){return i===1||i===2||i===3}_Functions.acceptsSecondOrThirdOrFourth=acceptsSecondOrThirdOrFourth;function acceptsThird(i){return i===2}_Functions.acceptsThird=acceptsThird;function acceptsFirstOrThird(i){return i===0||i===2}_Functions.acceptsFirstOrThird=acceptsFirstOrThird;function acceptsFirstOrOne(i){return i===0||i===1}_Functions.acceptsFirstOrOne=acceptsFirstOrOne;function acceptsFirstOrOdd(i){return i===0||i%2===1}_Functions.acceptsFirstOrOdd=acceptsFirstOrOdd;function acceptsFirst(i){return i===0}_Functions.acceptsFirst=acceptsFirst;function acceptsFirstOrSecondOrThird(i){return i===0||i===1||i===2}_Functions.acceptsFirstOrSecondOrThird=acceptsFirstOrSecondOrThird;function acceptsEven(i){return i%2===0}_Functions.acceptsEven=acceptsEven;function acceptsFourth(i){return i===3}_Functions.acceptsFourth=acceptsFourth;function acceptsNotFourth(i){return i!==3}_Functions.acceptsNotFourth=acceptsNotFourth;function acceptsFourthOrFifth(i){return i===3||i===4}_Functions.acceptsFourthOrFifth=acceptsFourthOrFifth;function acceptsNotSecond(i){return i!==1}_Functions.acceptsNotSecond=acceptsNotSecond;function acceptsThreeFour(i){return i===3||i===4}_Functions.acceptsThreeFour=acceptsThreeFour;function acceptsPositive(i){return i>0}_Functions.acceptsPositive=acceptsPositive;function acceptsFour(i){return i===4}_Functions.acceptsFour=acceptsFour;function acceptsFourFive(i){return i===4||i===5}_Functions.acceptsFourFive=acceptsFourFive;function acceptsFive(i){return i===5}_Functions.acceptsFive=acceptsFive;function acceptsSix(i){return i===6}_Functions.acceptsSix=acceptsSix;function acceptsEight(i){return i===8}_Functions.acceptsEight=acceptsEight;function acceptsSeven(i){return i===7}_Functions.acceptsSeven=acceptsSeven;function acceptsNotTwo(i){return i!==2}_Functions.acceptsNotTwo=acceptsNotTwo;function acceptsFiveSix(i){return i===5||i===6}_Functions.acceptsFiveSix=acceptsFiveSix;function acceptsFourSixSeven(i){return i===4||i===6||i===7}_Functions.acceptsFourSixSeven=acceptsFourSixSeven;function acceptsThreeFourFive(i){return i===3||i===4||i===5}_Functions.acceptsThreeFourFive=acceptsThreeFourFive;function acceptsMoreThanOne(i){return i>=1}_Functions.acceptsMoreThanOne=acceptsMoreThanOne;function acceptsTwoThreeFour(i){return i===2||i===3||i===4}_Functions.acceptsTwoThreeFour=acceptsTwoThreeFour;function acceptsOneTwoThree(i){return i===1||i===2||i===3}_Functions.acceptsOneTwoThree=acceptsOneTwoThree;var KeyValuePair=(function(){function KeyValuePair(charKey,intValue){this.Key=charKey;this.Value=intValue}return KeyValuePair})();var regExpKeyPattern=[/\\/g,/\(/g,/\[/g,/\{/g,/\^/g,/\$/g,/\|/g,/\)/g,/\+/g,/\./g];function __createStringcomparisonRegexPattern(s1){if(s1===""||s1===keyword_undefined||s1===keyword_null){return s1}for(var i in regExpKeyPattern){if(regExpKeyPattern.hasOwnProperty(i)){s1=s1.replace(regExpKeyPattern[i],regExpKeyPattern[i].source)}}s1=s1.replace("~?","{113E2532-EAF5-444c-A5CB-3D7446971C4D}");s1=s1.replace("~*","{E21523B3-0F1F-458f-B547-23D25713D0EC}");s1=s1.replace("?",".");s1=s1.replace("*","((.|\\n)*)");s1=s1.replace("{113E2532-EAF5-444c-A5CB-3D7446971C4D}","\\?");s1=s1.replace("{E21523B3-0F1F-458f-B547-23D25713D0EC}","\\*");return s1.toString()}var _FinancialHelper=(function(){function _FinancialHelper(){}_FinancialHelper.__isLeapYear=function(year){return(year%400===0||(year%4===0&&year%100!==0))||year===1900};_FinancialHelper.__compareDateTime=function(date1,date2){return date1-date2};_FinancialHelper.__toOADate=function(date){return new wijmo.spread._DateTimeHelper(date).toOADate()};_FinancialHelper.__annual_year_basis=function(date,basis){var leap_year;switch(basis){case 0:return 360;case 1:leap_year=_FinancialHelper.__isLeapYear(date.getFullYear());return leap_year?366:365;case 2:return 360;case 3:return 365;case 4:return 360;default:return-1}};_FinancialHelper.__getDaysInMonth=function(year,month){switch(month){case 0:case 2:case 4:case 6:case 7:case 9:case 11:return 31;case 1:if(_FinancialHelper.__isLeapYear(year)){return 29}else
{return 28}break;case 3:case 5:case 8:case 10:return 30}};_FinancialHelper.__Days_Between_BASIS_30E_360=function(from,to){var y1,m1,d1,y2,m2,d2;y1=from.getFullYear();m1=from.getMonth();d1=from.getDate();y2=to.getFullYear();m2=to.getMonth();d2=to.getDate();if(d1===31){d1=30}if(d2===31){d2=30}return(y2-y1)*360+(m2-m1)*30+(d2-d1)};_FinancialHelper.__Days_Between_BASIS_30Ep_360=function(from,to){var y1,m1,d1,y2,m2,d2;y1=from.getFullYear();m1=from.getMonth();d1=from.getDate();y2=to.getFullYear();m2=to.getMonth();d2=to.getDate();if(d1===31){d1=30}if(d2===31){d2=1;m2++}return(y2-y1)*360+(m2-m1)*30+(d2-d1)};_FinancialHelper.__Days_Between_BASIS_MSRB_30_360_SYM=function(from,to){var y1,m1,d1,y2,m2,d2;y1=from.getFullYear();m1=from.getMonth();d1=from.getDate();y2=to.getFullYear();m2=to.getMonth();d2=to.getDate();if(m1===2&&_FinancialHelper.__getDaysInMonth(y1,m1)===d1){d1=30}if(m2===2&&_FinancialHelper.__getDaysInMonth(y2,m2)===d2){d2=30}if(d2===31&&d1>=30){d2=30}if(d1===31){d1=30}return(y2-y1)*360+(m2-m1)*30+(d2-d1)};_FinancialHelper.__Days_Between_BASIS_MSRB_30_360=function(from,to){var y1,m1,d1,y2,m2,d2;y1=from.getFullYear();m1=from.getMonth();d1=from.getDate();y2=to.getFullYear();m2=to.getMonth();d2=to.getDate();if((m1===2&&_FinancialHelper.__getDaysInMonth(y1,m1)===d1)&&(m2===2&&_FinancialHelper.__getDaysInMonth(y2,m2)===d2)){d1=30;d2=30}if(d2===31&&d1>=30){d2=30}if(d1===31){d1=30}return(y2-y1)*360+(m2-m1)*30+(d2-d1)};_FinancialHelper.__days_between_basis=function(from,to,basis){var sign=1;if(_FinancialHelper.__compareDateTime(from,to)>0){var tmp=from;from=to;to=tmp;sign=-1}switch(basis){case 1:case 2:case 3:return sign*Calc.Convert.toInt(_FinancialHelper.__toOADate(to)-_FinancialHelper.__toOADate(from));case 4:return sign*_FinancialHelper.__Days_Between_BASIS_30E_360(from,to);case 5:return sign*_FinancialHelper.__Days_Between_BASIS_30Ep_360(from,to);case 6:return sign*_FinancialHelper.__Days_Between_BASIS_MSRB_30_360_SYM(from,to);default:return sign*_FinancialHelper.__Days_Between_BASIS_MSRB_30_360(from,to)}};return _FinancialHelper})();_Functions._FinancialHelper=_FinancialHelper;var _StatHelper=(function(){function _StatHelper(){}_StatHelper.__dev1=function(args,stc,includeSubtotals){var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;for(var i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}else if(arrayHelper.isArrayOrReference(args[i])){for(var j=0;j<arrayHelper.getLength(args[i]);j++){if(includeSubtotals||!arrayHelper.isSubtotalByIndex(args[i],j)){var obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)){var x=convert.toDouble(obj);stc.sumx+=x;stc.sumx2+=x*x;stc.n++}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}}Calc.Convert._inArray=false}else
{var x2;if(isNaN(x2=convert.toDouble(args[i]))){return CalcErrorsValue}stc.sumx+=x2;stc.sumx2+=x2*x2;stc.n++}}};_StatHelper.st_normsdist=function(args){var z;var convert=Calc.Convert;if(isNaN(z=convert.toDouble(args[0]))){return CalcErrorsValue}var Z_MAX=6.0;var y;var x;var w;if(z===0.0){x=0.0}else
{y=0.5*Math_abs(z);if(y>=(Z_MAX*0.5)){x=1.0}else if(y<1.0){w=y*y;x=((((((((0.000124818987*w-0.001075204047)*w+0.005198775019)*w-0.019198292004)*w+0.059054035642)*w-0.151968751364)*w+0.319152932694)*w-0.531923007300)*w+0.797884560593)*y*2.0}else
{y-=2.0;x=(((((((((((((-0.000045255659*y+0.000152529290)*y-0.000019538132)*y-0.000676904986)*y+0.001390604284)*y-0.000794620820)*y-0.002034254874)*y+0.006549791214)*y-0.010557625006)*y+0.011630447319)*y-0.009279453341)*y+0.005353579108)*y-0.002141268741)*y+0.000535310849)*y+0.999936657524}}return z>0.0?((x+1.0)*0.5):((1.0-x)*0.5)};_StatHelper.__averageIncludeSubtotals=function(args,includeSubtotals){var sum=0.0;var n=0.0;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;for(var i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}if(arrayHelper.isArrayOrReference(args[i])){for(var r=0;r<arrayHelper.getRangeCount(args[i]);r++){for(var j=0;j<arrayHelper.getLength(args[i],r);j++){if(includeSubtotals||!arrayHelper.isSubtotalByIndex(args[i],j,r)){var obj=arrayHelper.getValueByIndex(args[i],j,r);if(convert.isNumber(obj)){sum+=convert.toDouble(obj);n++}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}}}Calc.Convert._inArray=false}else
{var x;if(isNaN(x=convert.toDouble(args[i]))){return CalcErrorsValue}sum+=x;n++}}if(n===0){return CalcErrorsDivideByZero}return convert.toResult(sum/n)};_StatHelper.__countIncludeSubtotals=function(args,includeSubtotals){var n=0;var convert=Calc.Convert;var rowCount,columnCount,row,column;for(var i=0;i<args.length;i++){if(convert._isCalcArray(args[i])){convert._inArray=true;columnCount=args[i].getColumnCount();rowCount=args[i].getRowCount();for(column=0;column<columnCount;column++){for(row=0;row<rowCount;row++){if(convert.isNumber(args[i].getValue(row,column))){n++}}}convert._inArray=false}else if(convert._isCalcReference(args[i])){var rangeCount=args[i].getRangeCount();columnCount=0;rowCount=0;for(var area=0;area<rangeCount;area++){columnCount=args[i].getColumnCount(area);for(column=0;column<columnCount;column++){rowCount=args[i].getRowCount(area);for(row=0;row<rowCount;row++){var o;if(args[i]instanceof Calc._SheetRangeReference){for(var sheetIndex=0;sheetIndex<args[i].getSheetCount();sheetIndex++){if(includeSubtotals||!args[i].isSubtotal(sheetIndex,area,row,column)){o=args[i].getValue(sheetIndex,area,row,column)}}}else if(includeSubtotals||!args[i].isSubtotal(area,row,column)){o=args[i].getValue(area,row,column)}if(convert.isNumber(o)){n++}}}}}else
{if(convert.isNumber(args[i])){n++}}}return convert.toResult(n)};_StatHelper.__countaIncludeSubtotals=function(args,includeSubtotals){var n=0;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;for(var i=0;i<args.length;i++){if(arrayHelper.isArrayOrReference(args[i])){for(var r=0;r<arrayHelper.getRangeCount(args[i]);r++){for(var j=0;j<arrayHelper.getLength(args[i],r);j++){if(includeSubtotals||!arrayHelper.isSubtotalByIndex(args[i],j,r)){var obj=arrayHelper.getValueByIndex(args[i],j,r);if(obj!==keyword_undefined&&obj!==keyword_null){n++}}}}Calc.Convert._inArray=false}else
{if(args[i]!==keyword_undefined&&args[i]!==keyword_null){n++}}}return convert.toResult(n)};_StatHelper.__maxIncludeSubtotals=function(args,includeSubtotals){var isAny=false;var max=0.0;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;for(var i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}if(arrayHelper.isArrayOrReference(args[i])){for(var j=0;j<arrayHelper.getLength(args[i]);j++){if(includeSubtotals||!arrayHelper.isSubtotalByIndex(args[i],j)){var obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)){var val=convert.toDouble(obj);if(!isAny||val>max){max=val}isAny=true}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}}Calc.Convert._inArray=false}else
{var val1=convert.toDouble(args[i]);if(isNaN(val1)){return CalcErrorsValue}if(!isAny||val1>max){max=val1}isAny=true}}return max};_StatHelper.__minIncludeSubtotals=function(args,includeSubtotals){var any=false,min=0.0,val;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;for(var i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}if(arrayHelper.isArrayOrReference(args[i])){for(var j=0;j<arrayHelper.getLength(args[i]);j++){if(includeSubtotals||!arrayHelper.isSubtotalByIndex(args[i],j)){var obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)){val=convert.toDouble(obj);if(!any||val<min){min=val}any=true}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}}Calc.Convert._inArray=false}else
{if(isNaN(val=convert.toDouble(args[i]))){return CalcErrorsValue}if(!any||val<min){min=val}any=true}}return min};_StatHelper.__stdevIncludeSubtotals=function(args,includeSubtotals){var data={sumx:0.0,sumx2:0.0,n:0.0};var flag=_StatHelper.__dev1(args,data,includeSubtotals);var convert=Calc.Convert;if(convert.isError(flag)){return flag}if(data.n<=1.0){return CalcErrorsDivideByZero}return convert.toResult(Math_sqrt(Math_max(0.0,(data.n*data.sumx2-data.sumx*data.sumx)/(data.n*(data.n-1.0)))))};_StatHelper.__stdevpIncludeSubtotals=function(args,includeSubtotals){var data={sumx:0.0,sumx2:0.0,n:0.0};var flag=_StatHelper.__dev1(args,data,includeSubtotals);var convert=Calc.Convert;if(convert.isError(flag)){return flag}if(data.n<=0.0){return CalcErrorsDivideByZero}return convert.toResult(Math_sqrt(Math_max(0.0,(data.n*data.sumx2-data.sumx*data.sumx)/(data.n*data.n))))};_StatHelper.__varrIncludeSubtotals=function(args,includeSubtotals){var data={sumx:0.0,sumx2:0.0,n:0.0};var flag=_StatHelper.__dev1(args,data,includeSubtotals);var convert=Calc.Convert;if(convert.isError(flag)){return flag}if(data.n<=1.0){return CalcErrorsDivideByZero}return convert.toResult(Math_max(0.0,(data.n*data.sumx2-data.sumx*data.sumx)/(data.n*(data.n-1.0))))};_StatHelper.__varpIncludeSubtotals=function(args,includeSubtotals){var data={sumx:0.0,sumx2:0.0,n:0.0};var flag=_StatHelper.__dev1(args,data,includeSubtotals);var convert=Calc.Convert;if(convert.isError(flag)){return flag}if(data.n<=0.0){return CalcErrorsDivideByZero}return convert.toResult(Math_max(0.0,(data.n*data.sumx2-data.sumx*data.sumx)/(data.n*data.n)))};_StatHelper.st_percentile=st_percentile;return _StatHelper})();_Functions._StatHelper=_StatHelper;function mt_abs(args){var num;var Convert=Calc.Convert;if(isNaN(num=Convert.toDouble(args[0]))){return CalcErrorsValue}return Convert.toResult(Math_abs(num))}function mt_int(args){var num=parseFloat((args[0]));if(num===keyword_undefined||num===keyword_null){return CalcErrorsValue}return _Functions.Functions._MathHelper.approxFloor(num)}function mt_ceiling(args){var Convert=Calc.Convert;var num=Convert.toDouble(args[0]);var sign=Convert.toDouble(args[1]);if(isNaN(num)||isNaN(sign)){return CalcErrorsValue}if(num===0.0||sign===0.0){return 0.0}if(num>0.0&&sign<0.0){return CalcErrorsNumber}if(num<0.0&&0.0<sign){sign=-sign;return _Functions.Functions._MathHelper.approxFloor(num/sign)*sign}return _Functions.Functions._MathHelper.approxCeiling(num/sign)*sign}function mt_combin(args){var n=parseFloat(args[0]);var k=parseFloat(args[1]);if(isNaN(n)||isNaN(k)){return CalcErrorsValue}if(n<0.0||k<0.0||n<k){return CalcErrorsNumber}var result=1.0;k=Math_min(n-k,k);for(var i=1.0;i<=k;i++){result*=n-i+1.0;result/=i}return Calc.Convert.toResult(result)}function mt_degrees(args){var num;if(isNaN(num=parseFloat(args[0]))){return CalcErrorsValue}return 180.0*num/Math_PI}function mt_even(args){var num=parseFloat(args[0]);if(num<0.0){num=Math_floor(num);if(num%2.0!==0.0){num-=1.0}}else
{num=Math_ceil(num);if(num%2.0!==0.0){num+=1.0}}return num}function mt_fact(args){var num=parseInt(args[0],10);var result=1.0;if(isNaN(num)){return CalcErrorsValue}if(num<0||170<num){return CalcErrorsNumber}for(var i=1;i<=num;i++){result*=i}return result}function mt_factdouble(args){var num=parseInt(args[0],10);var result=1.0;if(isNaN(num)){return CalcErrorsValue}if(num<0||300<num){return CalcErrorsNumber}for(var i=num;i>1;i-=2){result*=i}return result}function mt_ln(args){var num=parseFloat(args[0]);if(num===keyword_undefined||num===keyword_null){return CalcErrorsValue}if(num<=0.0){return CalcErrorsNumber}return Calc.Convert.toResult(Math_log(num))}function mt_mod(args){var num=parseFloat(args[0]);var divisor=parseFloat(args[1]);if(divisor===0.0){return"#DIV/0!"}return num-divisor*Math_floor(num/divisor)}function mt_odd(args){var num=parseFloat(args[0]);if(num<0.0){num=Math_floor(num);if(num%2.0===0.0){num-=1.0}}else
{num=Math_ceil(num);if(num%2.0===0.0){num+=1.0}}return num}function mt_pi(args){return Math_PI}function mt_power(args){var num=parseFloat(args[0]);var power=parseFloat(args[1]);return Math_pow(num,power)}function __sumItems(item,ctx){var Convert=Calc.Convert;if(Convert.isError(item)){ctx.value=item;return false}else if(Convert._isCalcReference(item)||Convert._isCalcArray(item)||$.isArray(item)){return __iterate(item,__sumItems,ctx)}else
{var dv={value:0};if(Convert.tryToDouble(item,dv)){var v=dv.value;if(!isNaN(v)&&isFinite(v)){ctx.value+=v}}return true}}function mt_sum(args){if(!args||args.length<1){throw spread.SR.Exp_InvalidArgument;}var result=0;var length1,length2,length3;for(var argIndex=0;argIndex<args.length;argIndex++){var obj=args[argIndex];var arrayValue;var Convert=Calc.Convert;if(Convert.isError(obj)){return obj}else if(Convert._isCalcReference(obj)){var ref=obj;arrayValue=ref.getAllValue()}else if(Convert._isCalcArray(obj)){Convert._inArray=true;var arr=obj;arrayValue=[arr.getAllValue()]}else if($.isArray(obj)){arrayValue=obj}else
{arrayValue=[[[obj]]]}length1=arrayValue.length;for(var i=0;i<length1;i++){var ca1=arrayValue[i];var length2=ca1.length;for(var j=0;j<length2;j++){var ca2=ca1[j];var length3=ca2.length;for(var k=0;k<length3;k++){var item=ca2[k];if(Convert.isError(item)){return item}else
{var dv={value:0};if(Convert.tryToDouble(item,dv)){var v=dv.value;if(!isNaN(v)&&isFinite(v)){result+=v}}}}}}Convert._inArray=false}return result}function mt_sign(args){var num=parseFloat(args[0]);if(num>0){return 1}else if(num===0){return 0}else
{return-1}}function __gcdImp(a,b){while(b!==0){var r=a%b;a=b;b=r}return a}function mt_gcd(args){var result=0;var length=args.length;var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;for(var i=0;i<length;i++){if(Convert.isError(args[i])){return args[i]}if(_ArrayHelper.isArrayOrReference(args[i])){var len=_ArrayHelper.getLength(args[i]);for(var j=0;j<len;j++){var obj=_ArrayHelper.getValueByIndex(args[i],j);if(Convert.isError(obj)){Convert._inArray=false;return obj}else
{var x=Convert.toInt(obj);if(x<0){Convert._inArray=false;return CalcErrorsNumber}result=__gcdImp(result,x)}}Convert._inArray=false}else
{var x1=Convert.toInt(args[i]);if(x1<0){return CalcErrorsNumber}result=__gcdImp(result,x1)}}return result}function mt_lcm(args){var result=1;var nums=[];var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;for(var i=0;i<args.length;i++){if(Convert.isError(args[i])){return args[i]}if(_ArrayHelper.isArrayOrReference(args[i])){for(var j=0;j<_ArrayHelper.getLength(args[i]);j++){var obj=_ArrayHelper.getValueByIndex(args[i],j);if(Convert.isError(obj)){Convert._inArray=false;return obj}else
{nums.push(Convert.toInt(obj))}}Convert._inArray=false}else
{nums.push(Convert.toInt(args[i]))}for(var k=0;k<nums.length;k++){var item=nums[k];if(item<0){return CalcErrorsNumber}else if(item===0){return 0}result/=__gcdImp(result,item);result*=item}}return result}function __productImp(args,includeSubtotals){var result=1.0;var count=0;var Convert=Calc.Convert;var rowCount,columnCount,row,column,o;for(var i=0;i<args.length;i++){if(Convert.isError(args[i])){return args[i]}if(Convert._isCalcArray(args[i])){Convert._inArray=true;columnCount=args[i].getColumnCount();rowCount=args[i].getRowCount();for(column=0;column<columnCount;column++){for(row=0;row<rowCount;row++){o=args[i].getValue(row,column);if(Convert.isNumber(o)){result*=Convert.toDouble(o);count++}else if(Convert.isError(o)){return o}}}Convert._inArray=false}else if(Convert._isCalcReference(args[i])){var rangeCount=args[i].getRangeCount();columnCount=0;rowCount=0;for(var area=0;area<rangeCount;area++){columnCount=args[i].getColumnCount(area);for(column=0;column<columnCount;column++){rowCount=args[i].getRowCount(area);for(row=0;row<rowCount;row++){if(args[i]instanceof Calc._SheetRangeReference){for(var sheetIndex=0;sheetIndex<args[i].getSheetCount();sheetIndex++){if(includeSubtotals||!args[i].isSubtotal(sheetIndex,area,row,column)){o=args[i].getValue(sheetIndex,area,row,column)}}}else if(includeSubtotals||!args[i].isSubtotal(area,row,column)){o=args[i].getValue(area,row,column)}if(Convert.isNumber(o)){result*=Convert.toDouble(o);count++}else if(Convert.isError(o)){return o}}}}}else
{if(isNaN(Convert.toDouble(args[i]))){return CalcErrorsValue}result*=args[i];count++}}return Convert.toResult(count>0?result:0.0)}function mt_product(args){return __productImp(args,true)}function mt_sqrt(args){var num=parseFloat(args[0]);if(num>=0){return Math_sqrt(num)}else
{return CalcErrorsNumber}}function mt_quotient(args){var Convert=Calc.Convert;if(Convert.isError(args[0])){return args[0]}if(Convert.isError(args[1])){return args[1]}var num=Convert.toDouble(args[0]);var denom=Convert.toDouble(args[1]);if(isNaN(num)||isNaN(denom)){return CalcErrorsValue}if(denom===0.0){return CalcErrorsDivideByZero}return parseInt((num/denom).toString(),10)}function mt_subtotal(args){var number=Calc.Convert.toInt(args[0]);var list=[];for(var i=1;i<args.length;i++){list[i-1]=args[i]}var Functions=Calc.Functions;var _StatHelper=Functions._StatHelper;if(number===1||number===101){return _StatHelper.__averageIncludeSubtotals(list,false)}else if(number===2||number===102){return _StatHelper.__countIncludeSubtotals(list,false)}else if(number===3||number===103){return _StatHelper.__countaIncludeSubtotals(list,false)}else if(number===4||number===104){return _StatHelper.__maxIncludeSubtotals(list,false)}else if(number===5||number===105){return _StatHelper.__minIncludeSubtotals(list,false)}else if(number===6||number===106){return __productImp(list,false)}else if(number===7||number===107){return _StatHelper.__stdevIncludeSubtotals(list,false)}else if(number===8||number===108){return _StatHelper.__stdevpIncludeSubtotals(list,false)}else if(number===9||number===109){if(!list||list.length<1){throw spread.SR.Exp_InvalidArgument;}var ctx={value:0,includeSubtotal:false};for(var i1=0;i1<list.length;i1++){if(__iterate(list[i1],__sumItems,ctx)===false){break}}return ctx.value}else if(number===10||number===110){return _StatHelper.__varrIncludeSubtotals(list,false)}else if(number===11||number===111){return _StatHelper.__varpIncludeSubtotals(list,false)}return CalcErrorsValue}function mt_floor(args){var Convert=Calc.Convert;var num=Convert.toDouble(args[0]);var sign=Convert.toDouble(args[1]);if(isNaN(num)||isNaN(sign)){return CalcErrorsValue}if(num===0.0||sign===0.0){return 0.0}if(num>0.0&&sign<0.0){return CalcErrorsNumber}var _MathHelper=_Functions.Functions._MathHelper;if(num<0.0&&0.0<sign){sign=-sign;return _MathHelper.approxCeiling(num/sign)*sign}return _MathHelper.approxFloor(num/sign)*sign}function mt_mround(args){var Convert=Calc.Convert;var number=Convert.toDouble(args[0]);var multiple=Convert.toDouble(args[1]);if(isNaN(number)||isNaN(multiple)){return CalcErrorsValue}if(number===0.0||multiple===0.0){return 0.0}if((number<0.0&&0.0<multiple)||(multiple<0.0&&0.0<number)){return CalcErrorsNumber}return _Functions.Functions._MathHelper.approxFloor(number/multiple+0.5)*multiple}function mt_round(args){var Convert=Calc.Convert;var number=Convert.toDouble(args[0]);if(isNaN(number)){return CalcErrorsValue}var digits=Convert.toInt(args[1]);var _MathHelper=_Functions.Functions._MathHelper;var power=_MathHelper.pow10(Math_abs(digits));if(digits<0){number/=power}else
{number*=power}if(number<0.0){number=_MathHelper.approxCeiling(number-0.5)}else
{number=_MathHelper.approxFloor(number+0.5)}if(digits<0){number*=power}else
{number/=power}return Convert.toResult(number)}function mt_rounddown(args){var Convert=Calc.Convert;var number=Convert.toDouble(args[0]);if(isNaN(number)){return CalcErrorsValue}var digits=Convert.toInt(args[1]);var _MathHelper=_Functions.Functions._MathHelper;var power=_MathHelper.pow10(Math_abs(digits));if(digits<0){number/=power}else
{number*=power}if(number<0.0){number=_MathHelper.approxCeiling(number)}else
{number=_MathHelper.approxFloor(number)}if(digits<0){number*=power}else
{number/=power}return Convert.toResult(number)}function mt_roundup(args){var Convert=Calc.Convert;var number=Convert.toDouble(args[0]);if(isNaN(number)){return CalcErrorsValue}var digits=Convert.toInt(args[1]);var _MathHelper=_Functions.Functions._MathHelper;var power=_MathHelper.pow10(Math_abs(digits));if(digits<0){number/=power}else
{number*=power}if(number<0.0){number=_MathHelper.approxFloor(number)}else
{number=_MathHelper.approxCeiling(number)}if(digits<0){number*=power}else
{number/=power}return Convert.toResult(number)}function mt_trunc(args){var Convert=Calc.Convert;var number=Convert.toDouble(args[0]);if(isNaN(number)){return CalcErrorsValue}var digits=Calc._Helper._argumentExists(args,1)?Convert.toInt(args[1]):0;var _MathHelper=_Functions.Functions._MathHelper;var power=_MathHelper.pow10(Math_abs(digits));if(digits<0){number/=power}else
{number*=power}if(number<0.0){number=_MathHelper.approxCeiling(number)}else
{number=_MathHelper.approxFloor(number)}if(digits<0){number*=power}else
{number/=power}return Convert.toResult(number)}function mt_exp(args){var d;var Convert=Calc.Convert;if(isNaN(d=Convert.toDouble(args[0]))){return CalcErrorsValue}return Convert.toResult(Math_exp(d))}var MathEx=(function(){function MathEx(){}MathEx.log=function(a,base){if(isNaN(a)){return a}if(isNaN(base)){return base}if(base!==1.0&&a===1.0||base!==0.0&&(base!==Number.POSITIVE_INFINITY)){return(Math_log(a)/Math_log(base))}return NaN};MathEx.log10=function(num){return MathEx.log(num,10)};return MathEx})();function mt_log(args){var Convert=Calc.Convert;var num=Convert.toDouble(args[0]);if(isNaN(num)){return CalcErrorsValue}var newBase;if(Calc._Helper._argumentExists(args,1)){newBase=Convert.toDouble(args[1]);if(isNaN(newBase)){return CalcErrorsValue}}else
{newBase=10.0}if(num<=0.0||newBase<=0.0){return CalcErrorsNumber}if(newBase===1.0){return CalcErrorsDivideByZero}return Convert.toResult(MathEx.log(num,newBase))}function mt_log10(args){var Convert=Calc.Convert;var num=Convert.toDouble(args[0]);if(isNaN(num)){return CalcErrorsValue}if(num<=0.0){return CalcErrorsNumber}return Convert.toResult(MathEx.log10(num))}function _evaluateSingleCriteria(criteria,range,sumRange){var sum=0.0;if(criteria===keyword_undefined||criteria===keyword_null){return sum}var Convert=Calc.Convert;var criteriaFun=_Functions.Functions._MathHelper.parseCriteria(criteria);var rangeIsArray=range instanceof Calc.CalcArray;var sumRangeIsArray=sumRange instanceof Calc.CalcArray;var rangeArray=range;var rangeRef=range;var sumRangeArray=sumRange;var sumRangeRef=sumRange;var rangeCount=rangeIsArray?1:rangeRef.getRangeCount();if(rangeCount!=(sumRangeIsArray?1:sumRangeRef.getRangeCount())){return CalcErrorsValue}var rowCount=rangeIsArray?rangeArray.getRowCount():rangeRef.getRowCount(0);if(rowCount!=(sumRangeIsArray?sumRangeArray.getRowCount():sumRangeRef.getRowCount(0))){return CalcErrorsValue}var colCount=rangeIsArray?rangeArray.getColumnCount():rangeRef.getColumnCount(0);if(colCount!=(sumRangeIsArray?sumRangeArray.getColumnCount():sumRangeRef.getColumnCount(0))){return CalcErrorsValue}var rangeA=rangeIsArray?[rangeArray.getAllValue()]:rangeRef.getAllValue();var sumRangeA=sumRangeIsArray?[sumRangeArray.getAllValue()]:sumRangeRef.getAllValue();for(var rangeIndex=0;rangeIndex<rangeCount;rangeIndex++){for(var row=0;row<rowCount;row++){for(var col=0;col<colCount;col++){var val=rangeA[rangeIndex][row][col];if(val instanceof Calc.CalcError){return val}if(criteriaFun&&criteriaFun(val)){var obj=sumRangeA[rangeIndex][row][col];if(Convert.isNumber(obj)){sum+=Convert.toDouble(obj)}else if(obj instanceof Calc.CalcError){return obj}}}}}return Convert.toResult(sum)}function mt_sumif(args){var range=args[0];var criteria=args[1];if(criteria===keyword_undefined||criteria===keyword_null){throw spread.SR.Exp_CriteriaIsNull;}var sumRange=Calc._Helper._argumentExists(args,2)?args[2]:args[0];var Convert=Calc.Convert;var critieriaRef=args[1];var rowCount,colCount;if(Convert._isCalcReference(critieriaRef)){rowCount=critieriaRef.getRowCount(0);colCount=critieriaRef.getColumnCount(0);if(rowCount===1&&colCount===1){return _evaluateSingleCriteria(critieriaRef.getValue(0,0,0),range,sumRange)}return new Calc._TernaryCompositeConcreteReference(critieriaRef.getSource(),critieriaRef.getRow(0),critieriaRef.getColumn(0),rowCount,colCount,_evaluateSingleCriteria,range,sumRange)}var criteriaArray=args[1];if(Convert._isCalcArray(criteriaArray)){Convert._inArray=true;rowCount=criteriaArray.getRowCount();colCount=criteriaArray.getColumnCount();var result=new Calc._ConcreteArray(criteriaArray,colCount);for(var r=0;r<rowCount;r++){for(var c=0;c<colCount;c++){result._array[r][c]=_evaluateSingleCriteria(criteriaArray.getValue(r,c),range,sumRange)}}Convert._inArray=false;return result}return _evaluateSingleCriteria(criteria,range,sumRange)}function ___assertParams(args){if(args.length<3||args.length%2!==1){return false}var rc=Calc._ArrayHelper.getRowCount(args[0]);var cc=Calc._ArrayHelper.getColumnCount(args[0]);for(var i=1;i<args.length;i=i+2){if(rc!==Calc._ArrayHelper.getRowCount(args[i])){return false}if(cc!==Calc._ArrayHelper.getColumnCount(args[i])){return false}}return true}function mt_sumifs(args){if(!___assertParams(args)){return CalcErrorsValue}var sum=0.0;var sumRange=args[0];var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;var length=_ArrayHelper.getLength(args[0]);var ranges=[];var criteriaFuns=[];for(var j=1;j<args.length;j=j+2){var range=args[j];var criteria=args[j+1];var criteriaFun=_Functions.Functions._MathHelper.parseCriteria(criteria);ranges.push(range);criteriaFuns.push(criteriaFun)}var criteriaLength=ranges.length;for(var i=0;i<length;i++){var condition=true;for(var j=0;j<criteriaLength;j++){var range=ranges[j];var criteriaFun=criteriaFuns[j];var obj1=_ArrayHelper.getValueByIndex(range,i);condition=criteriaFun&&criteriaFun(obj1);if(!condition){break}}if(condition){var obj=_ArrayHelper.getValueByIndex(sumRange,i);if(Convert.isNumber(obj)){sum+=Convert.toDouble(obj)}else if(Convert.isError(obj)){return obj}}}return Convert.toResult(sum)}function mt_sumproduct(args){var sum=0.0;var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;var rowCount=_ArrayHelper.getRowCount(args[0]);var columnCount=_ArrayHelper.getColumnCount(args[0]);for(var i=1;i<args.length;i++){if(rowCount!==_ArrayHelper.getRowCount(args[i])){return CalcErrorsValue}if(columnCount!==_ArrayHelper.getColumnCount(args[i])){return CalcErrorsValue}}for(var r=0;r<rowCount;r++){for(var c=0;c<columnCount;c++){var product=1.0;for(var i1=0;i1<args.length;i1++){var o=_ArrayHelper.getValue(args[i1],r,c);if(Convert.isError(o)){return o}else if(Convert.isNumber(o)){product*=Convert.toDouble(o)}else
{product=0.0}}sum+=product}}return Convert.toResult(sum)}function mt_sumsq(args){var x;var sumx2=0.0;var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;for(var i=0;i<args.length;i++){if(Convert.isError(args[i])){return args[i]}if(_ArrayHelper.isArrayOrReference(args[i])){for(var j=0;j<_ArrayHelper.getLength(args[i]);j++){var o=_ArrayHelper.getValueByIndex(args[i],j);if(Convert.isNumber(o)){x=Convert.toDouble(o);sumx2+=x*x}else if(Convert.isError(o)){Convert._inArray=false;return o}}Convert._inArray=false}else
{if(isNaN(x=Convert.toDouble(args[i]))){return CalcErrorsValue}sumx2+=x*x}}return Convert.toResult(sumx2)}function mt_sumx2my2(args){var sum=0.0;var x;var y;var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;if(_ArrayHelper.getLength(args[0])!==_ArrayHelper.getLength(args[1])){return CalcErrorsNotAvailable}if(Convert.isError(args[0])){return args[0]}if(Convert.isError(args[1])){return args[1]}if(_ArrayHelper.isArrayOrReference(args[0])){for(var i=0;i<_ArrayHelper.getLength(args[0]);i++){var o1=_ArrayHelper.getValueByIndex(args[0],i);var o2=_ArrayHelper.getValueByIndex(args[1],i);if(Convert.isNumber(o1)&&Convert.isNumber(o2)){x=Convert.toDouble(o1);y=Convert.toDouble(o2);sum+=x*x-y*y}else if(Convert.isError(o1)){Convert._inArray=false;return o1}else if(Convert.isError(o2)){Convert._inArray=false;return o2}}Convert._inArray=false}else
{if(isNaN(x=Convert.toDouble(args[0]))||isNaN(y=Convert.toDouble(args[1]))){return CalcErrorsValue}sum+=x*x-y*y}return sum}function mt_sumx2py2(args){var sum=0.0;var x;var y;var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;if(_ArrayHelper.getLength(args[0])!==_ArrayHelper.getLength(args[1])){return CalcErrorsNotAvailable}if(Convert.isError(args[0])){return args[0]}if(Convert.isError(args[1])){return args[1]}if(_ArrayHelper.isArrayOrReference(args[0])){for(var i=0;i<_ArrayHelper.getLength(args[0]);i++){var o1=_ArrayHelper.getValueByIndex(args[0],i);var o2=_ArrayHelper.getValueByIndex(args[1],i);if(Convert.isNumber(o1)&&Convert.isNumber(o2)){x=Convert.toDouble(o1);y=Convert.toDouble(o2);sum+=x*x+y*y}else if(Convert.isError(o1)){Convert._inArray=false;return o1}else if(Convert.isError(o2)){Convert._inArray=false;return o2}}Convert._inArray=false}else
{if(isNaN(x=Convert.toDouble(args[0]))||isNaN(y=Convert.toDouble(args[1]))){return CalcErrorsValue}sum+=x*x+y*y}return Convert.toResult(sum)}function mt_sumxmy2(args){var sum=0.0;var x;var y;var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;if(_ArrayHelper.getLength(args[0])!==_ArrayHelper.getLength(args[1])){return CalcErrorsNotAvailable}if(Convert.isError(args[0])){return args[0]}if(Convert.isError(args[1])){return args[1]}if(_ArrayHelper.isArrayOrReference(args[0])){for(var i=0;i<_ArrayHelper.getLength(args[0]);i++){var o1=_ArrayHelper.getValueByIndex(args[0],i);var o2=_ArrayHelper.getValueByIndex(args[1],i);if(Convert.isNumber(o1)&&Convert.isNumber(o2)){x=Convert.toDouble(o1);y=Convert.toDouble(o2);sum+=(x-y)*(x-y)}else if(Convert.isError(o1)){Convert._inArray=false;return o1}else if(Convert.isError(o2)){Convert._inArray=false;return o2}}Convert._inArray=false}else
{if(isNaN(x=Convert.toDouble(args[0]))||isNaN(y=Convert.toDouble(args[1]))){return CalcErrorsValue}sum+=(x-y)*(x-y)}return Convert.toResult(sum)}function mt_seriessum(args){var x;var m,n;var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;if(isNaN(x=Convert.toDouble(args[0]))||isNaN(n=Convert.toInt(args[1]))||isNaN(m=Convert.toInt(args[2]))){return CalcErrorsValue}var coeff=args[3];var sum=0.0;for(var i=0;i<_ArrayHelper.getLength(coeff);i++){var a;if(isNaN(a=Convert.toDouble(_ArrayHelper.getValueByIndex(coeff,i)))){return CalcErrorsValue}sum+=a*Math_pow(x,n+i*m)}return Convert.toResult(sum)}function mt_sqrtpi(args){var number;var Convert=Calc.Convert;if(isNaN(number=Convert.toDouble(args[0]))){return CalcErrorsValue}if(number<0.0){return CalcErrorsNumber}return Convert.toResult(Math_sqrt(number*Math_PI))}function mt_radians(args){var d;if(isNaN(d=Calc.Convert.toDouble(args[0]))){return CalcErrorsValue}return Math_PI*d/180.0}function mt_cos(args){var d;var Convert=Calc.Convert;if(isNaN(d=Convert.toDouble(args[0]))){return CalcErrorsValue}return Convert.toResult(Math_cos(d))}function mt_acos(args){var num;var Convert=Calc.Convert;if(isNaN(num=Convert.toDouble(args[0]))){return CalcErrorsValue}if(num<-1.0||1.0<num){return CalcErrorsNumber}return Convert.toResult(Math_acos(num))}function mt_cosh(args){var d;var Convert=Calc.Convert;if(isNaN(d=Convert.toDouble(args[0]))){return CalcErrorsValue}return Convert.toResult((Math_exp(d)+Math_exp(-d))/2)}function mt_acosh(args){var num;var Convert=Calc.Convert;if(isNaN(num=Convert.toDouble(args[0]))){return CalcErrorsValue}if(num<1.0){return CalcErrorsNumber}return Convert.toResult(Math_log(num+Math_sqrt(num*num-1.0)))}function mt_sin(args){var d;var Convert=Calc.Convert;if(isNaN(d=Convert.toDouble(args[0]))){return CalcErrorsValue}return Convert.toResult(Math_sin(d))}function mt_asin(args){var num;var Convert=Calc.Convert;if(isNaN(num=Convert.toDouble(args[0]))){return CalcErrorsValue}if(num<-1.0||1.0<num){return CalcErrorsNumber}return Convert.toResult(Math_asin(num))}function mt_sinh(args){var d;var Convert=Calc.Convert;if(isNaN(d=Convert.toDouble(args[0]))){return CalcErrorsValue}return Convert.toResult((Math_exp(d)-Math_exp(-d))/2)}function mt_asinh(args){var number;var Convert=Calc.Convert;if(isNaN(number=Convert.toDouble(args[0]))){return CalcErrorsValue}return Convert.toResult(Math_log(number+Math_sqrt(number*number+1.0)))}function mt_tan(args){var d;var Convert=Calc.Convert;if(isNaN(d=Convert.toDouble(args[0]))){return CalcErrorsValue}return Convert.toResult(Math_tan(d))}function mt_atan(args){var d;var Convert=Calc.Convert;if(isNaN(d=Convert.toDouble(args[0]))){return CalcErrorsValue}return Convert.toResult(Math_atan(d))}function mt_atan2(args){var x,y;var Convert=Calc.Convert;if(isNaN(x=Convert.toDouble(args[0]))||isNaN(y=Convert.toDouble(args[1]))){return CalcErrorsValue}if(x===0.0&&y===0.0){return CalcErrorsDivideByZero}return Convert.toResult(Math_atan2(y,x))}function mt_tanh(args){var d;var Convert=Calc.Convert;if(isNaN(d=Convert.toDouble(args[0]))){return CalcErrorsValue}var x=Math_exp(d);var y=Math_exp(-d);return Convert.toResult(x-y)/(x+y)}function mt_atanh(args){var number;var Convert=Calc.Convert;if(isNaN(number=Convert.toDouble(args[0]))){return CalcErrorsValue}if(number<=-1.0||1.0<=number){return CalcErrorsNumber}return Convert.toResult(Math_log((1.0+number)/(1.0-number))/2.0)}function mt_mdeterm(args){var Convert=Calc.Convert;var array=Convert._toArray(args[0]);if(array.getRowCount()!==array.getColumnCount()){return CalcErrorsValue}var dim=array.getRowCount();var a=[];for(var i1=0;i1<dim;i1++){a[i1]=[dim];for(var j1=0;j1<dim;j1++){var value=array.getValue(i1,j1);if(Convert.isError(value)){return value}if(!Convert.isNumber(value)){return CalcErrorsValue}a[i1][j1]=Convert.toDouble(value)}}var result=1.0;for(var i2=0;i2<dim-1;i2++){if(a[i2][i2]===0.0){var found=false;for(var j2=i2+1;!found&&j2<dim;j2++){if(a[j2][i2]!==0.0){for(var k1=i2;k1<dim;k1++){var temp=a[i2][k1];a[i2][k1]=a[j2][k1];a[j2][k1]=temp}result*=-1.0;found=true}}if(!found){return 0.0}}for(var j3=i2+1;j3<dim;j3++){if(a[j3][i2]!==0.0){var factor=a[j3][i2]/a[i2][i2];for(var k2=i2;k2<dim;k2++){a[j3][k2]-=factor*a[i2][k2]}}}}for(var i=0;i<dim;i++){result*=a[i][i]}return result}function mt_minverse(args){var Convert=Calc.Convert;var array=Convert._toArray(args[0]);if(array.getRowCount()!==array.getColumnCount()){return CalcErrorsValue}var dim=array.getRowCount();var a=[];var b=[];for(var i=0;i<dim;i++){a[i]=[dim];for(var j=0;j<dim;j++){var value=array.getValue(i,j);if(Convert.isError(value)){return value}if(!Convert.isNumber(value)){return CalcErrorsValue}a[i][j]=Convert.toDouble(value)}}for(var i1=0;i1<dim;i1++){b[i1]=[dim];for(var j1=0;j1<dim;j1++){b[i1][j1]=i1===j1?1.0:0.0}}for(var i2=0;i2<dim;i2++){if(a[i2][i2]===0.0){var found=false;for(var j2=i2+1;!found&&j2<dim;j2++){if(a[j2][i2]!==0.0){for(var k=i2;k<dim;k++){var temp=a[i2][k];a[i2][k]=a[j2][k];a[j2][k]=temp}for(var k1=1;k1<dim;k1++){var temp1=b[i2][k1];b[i2][k1]=b[j2][k1];b[j2][k1]=temp1}found=true}}if(!found){return CalcErrorsNumber}}for(var j3=0;j3<dim;j3++){if(j3!==i2&&a[j3][i2]!==0.0){var factor=a[j3][i2]/a[i2][i2];for(var k2=i2;k2<dim;k2++){a[j3][k2]-=factor*a[i2][k2]}for(var k3=0;k3<dim;k3++){b[j3][k3]-=factor*b[i2][k3]}}}}for(var i3=0;i3<dim;i3++){var factor1=a[i3][i3];for(var k4=0;k4<dim;k4++){b[i3][k4]/=factor1}}return new Calc._ConcreteArray(b)}function mt_mmult(args){var Convert=Calc.Convert;var arrayA=Convert._toArray(args[0]);var arrayB=Convert._toArray(args[1]);var rowCountA=arrayA.getRowCount();var columnCountA=arrayA.getColumnCount();var rowCountB=arrayB.getRowCount();var columnCountB=arrayB.getColumnCount();if(columnCountA!==rowCountB){return CalcErrorsValue}var a=[];var b=[];var result=[];for(var i=0;i<rowCountA;i++){a[i]=[columnCountA];for(var j=0;j<columnCountA;j++){var value=arrayA.getValue(i,j);if(Convert.isError(value)){return value}if(!Convert.isNumber(value)){return CalcErrorsValue}a[i][j]=Convert.toDouble(value)}}for(var i1=0;i1<rowCountB;i1++){b[i1]=[columnCountB];for(var j1=0;j1<columnCountB;j1++){var value1=arrayB.getValue(i1,j1);if(Convert.isError(value1)){return value1}if(!Convert.isNumber(value1)){return CalcErrorsValue}b[i1][j1]=Convert.toDouble(value1)}}for(var i2=0;i2<rowCountA;i2++){result[i2]=[columnCountB];for(var j2=0;j2<columnCountB;j2++){var sum=0.0;for(var k=0;k<rowCountB;k++){sum+=a[i2][k]*b[k][j2]}result[i2][j2]=sum}}return new Calc._ConcreteArray(result)}function __fact(x){var result=1.0;for(var i=x;i>1;i--){result*=i}return result}function mt_multinomial(args){var sumx=0;var prod=1.0;var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;for(var i=0;i<args.length;i++){if(Convert.isError(args[i])){return args[i]}if(_ArrayHelper.isArrayOrReference(args[i])){for(var j=0;j<_ArrayHelper.getLength(args[i]);j++){var obj=_ArrayHelper.getValueByIndex(args[i],j);if(Convert.isError(obj)){Convert._inArray=false;return obj}else
{var x=Convert.toInt(obj);if(x<0||170<x){Convert._inArray=false;return CalcErrorsNumber}sumx+=x;prod*=__fact(x)}}Convert._inArray=false}else
{var x1=Convert.toInt(args[i]);if(x1<0||170<x1){return CalcErrorsNumber}sumx+=x1;prod*=__fact(x1)}}if(sumx<0||170<sumx){return CalcErrorsNumber}return __fact(sumx)/prod}function mt_rand(args){var random=Math_random();var result=-1+random*2;return Math_abs(result)}function mt_randbetween(args){var Convert=Calc.Convert;if(Convert.isError(args[1])){return args[1]}if(Convert.isError(args[0])){return args[0]}var min,max;if(isNaN(min=Convert.toInt(args[0]))||isNaN(max=Convert.toInt(args[1]))){return CalcErrorsValue}if(max<min){return CalcErrorsNumber}var random=Math_random();return Convert.toInt(min+random*(max-min+1))}function _getInfoList(){var info=[];info.push(new KeyValuePair('M',1000));info.push(new KeyValuePair('D',500));info.push(new KeyValuePair('C',100));info.push(new KeyValuePair('L',50));info.push(new KeyValuePair('X',10));info.push(new KeyValuePair('V',5));info.push(new KeyValuePair('I',1));return info}function mt_roman(args){var Convert=Calc.Convert,_Helper=Calc._Helper;if(Convert.isError(args[0])){return args[0]}var number=Convert.toInt(args[0]);var form=0;if(_Helper._argumentExists(args,1)){if(Convert.isError(args[1])){return args[1]}form=typeof(args[1])==='boolean'?(args[1]?0:4):Convert.toInt(args[1])}var sb=[];if(number<0||3999<number||form<0||4<form){return CalcErrorsValue}var info=_getInfoList();for(var i=0;i<info.length;i+=2){if(2<=i&&info[i-2].Value-info[i].Value<=number){var i1=i;var i2=i-2;for(var step=0;step<form&&i1+1<info.length&&info[i2].Value-info[i1+1].Value<=number;step++){i1++}sb.push(info[i1].Key);sb.push(info[i2].Key);number+=info[i1].Value;number-=info[i2].Value}if(1<=i&&info[i-1].Value<=number){sb.push(info[i-1].Key);number-=info[i-1].Value}if(1<=i&&info[i-1].Value-info[i].Value<=number){var i21=i;var i22=i-1;for(var step1=0;step1<form&&i21+1<info.length&&info[i22].Value-info[i21+1].Value<=number;step1++){i21++}sb.push(info[i21].Key);sb.push(info[i22].Key);number+=info[i21].Value;number-=info[i22].Value}while(info[i].Value<=number){sb.push(info[i].Key);number-=info[i].Value}}return sb.join('')}function lg_and(args){var result=true;var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;for(var i=0;i<args.length;i++){var t=args[i];for(var j=0;j<_ArrayHelper.getLength(t);j++){var tmpValue=_ArrayHelper.getValueByIndex(t,j);if(tmpValue!==keyword_undefined&&tmpValue!==keyword_null){var val;try
{val=Convert.toBool(tmpValue)}catch(err){return CalcErrorsValue}result&=val}else
{return false}}}return!!result}function lg_or(args){var result=false;var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;for(var i=0;i<args.length;i++){var t=args[i];for(var j=0;j<_ArrayHelper.getLength(t);j++){var tmpValue=_ArrayHelper.getValueByIndex(t,j);if(tmpValue!==keyword_undefined&&tmpValue!==keyword_null){var val;try
{val=Convert.toBool(tmpValue)}catch(err){return CalcErrorsValue}result|=val}}}return!!result}function _not$evaluateSingleValue(value){try
{var result=Calc.Convert.toBool(value);return!result}catch(err){return CalcErrorsValue}}function lg_not(args){var Convert=Calc.Convert;if(Convert._isCalcReference(args[0])){if(args[0].getRangeCount()>1){return CalcErrorsValue}return new Calc._UnaryCompositeConcreteReference(args[0].getSource(),args[0].getRow(0),args[0].getColumn(0),args[0].getRowCount(0),args[0].getColumnCount(0),_not$evaluateSingleValue)}if(Convert._isCalcArray(args[0])){Convert._inArray=true;var result=[];var rowCount=args[0].getRowCount();var columnCount=args[0].getColumnCount();for(var i=0;i<rowCount;i++){result[i]=[columnCount];for(var j=0;j<columnCount;j++){result[i][j]=_not$evaluateSingleValue(args[0].getValue(i,j))}}Convert._inArray=false;return new Calc._ConcreteArray(result)}return _not$evaluateSingleValue(args[0])}function _if$evaluateSingleValue(arg0,arg1,arg2){try
{var condition=Calc.Convert.toBool(arg0);return condition?arg1:arg2}catch(err){return CalcErrorsValue}}function lg_if(args){var arg0=args[0];var arg1=args[1];var _Helper=Calc._Helper;var arg2=_Helper._argumentExists(args,2)?args[2]:(args.length===2?false:0);var val=_Helper.tryExtractToSingleValue(arg0);if(val.success){arg0=val.value;return _if$evaluateSingleValue(arg0,arg1,arg2)}val=_Helper.tryExtractToSingleValue(arg1);arg1=val.value;var isArg1Simple=val.success;val=_Helper.tryExtractToSingleValue(arg2);arg2=val.value;var isArg2Simple=val.success;var rowCount=arg0.getRowCount();var columnCount=arg0.getColumnCount();var result=[];for(var i=0;i<rowCount;i++){result[i]=[columnCount];for(var j=0;j<columnCount;j++){result[i][j]=_if$evaluateSingleValue(arg0.getValue(i,j),isArg1Simple?arg1:_Helper.getArrayValue(arg1,i,j),isArg2Simple?arg2:_Helper.getArrayValue(arg2,i,j))}}return new Calc._ConcreteArray(result)}function _iferror$evaluateSingle(value,valueIfError){return(Calc.Convert.isError(value))?((valueIfError!==keyword_undefined&&valueIfError!==keyword_null)?valueIfError:0):((value!==keyword_undefined&&value!==keyword_null)?value:0)}function lg_iferror(args){var Convert=Calc.Convert;var isError=Convert.isError(args[0]);if(!isError&&Convert._isCalcReference(args[0])){var arg0Ref=args[0];if(arg0Ref.getRangeCount()>1){return CalcErrorsValue}return new Calc._BinaryCompositeConcreteReference(arg0Ref.getSource(),arg0Ref.getRow(0),arg0Ref.getColumn(0),arg0Ref.getRowCount(0),arg0Ref.getColumnCount(0),_iferror$evaluateSingle,args[1])}return isError?((args[1]!==keyword_undefined&&args[1]!==keyword_null)?args[1]:0):((args[0]!==keyword_undefined&&args[0]!==keyword_null)?args[0]:0)}function lg_true(args){return true}function lg_false(args){return false}function dt_date(args){try
{var Convert=Calc.Convert;var year,month,day;if(isNaN(year=Convert.toInt(args[0]))||isNaN(month=Convert.toInt(args[1]))||isNaN(day=Convert.toInt(args[2]))){return CalcErrorsValue}if(year<0||9999<year){return CalcErrorsNumber}if(year<=1899){year+=1900}var date=new Date(year,month-1,day);if(date<new Date(1899,11,30)){return CalcErrorsNumber}return date}catch(err){return CalcErrorsNumber}}function dt_time(args){var hour,minute,second;try
{var Convert=Calc.Convert;if(isNaN(hour=Convert.toInt(args[0]))||isNaN(minute=Convert.toInt(args[1]))||isNaN(second=Convert.toInt(args[2]))){return CalcErrorsValue}var time=wijmo.spread._DateTimeHelper.fromOADate(0);time.setHours(hour);time.setMinutes(minute);time.setSeconds(second);time.setMilliseconds(0);if(time.getHours()<0&&time.getMinutes()<0&&time.getSeconds()<0){return CalcErrorsNumber}return time}catch(err){return CalcErrorsNumber}}function _isLeapYear(year){return(year%400===0||(year%4===0&&year%100!==0))||year===1900}function dt_datevalue(args){var text=Calc.Convert.toString(args[0]);if(text===keyword_undefined||text===keyword_null||text===''){return CalcErrorsValue}try
{var date=wijmo.spread._DateTimeHelper.parseLocale(text);var year=date.getFullYear();if(year<1900){return CalcErrorsValue}var month=date.getMonth();var day=date.getDate();var days=0;for(var i=1900;i<year;i++){if(_isLeapYear(i)){days+=366}else
{days+=365}}for(var i1=0;i1<month;i1++){switch(i1){case 0:case 2:case 4:case 6:case 7:case 9:case 11:days+=31;break;case 1:if(_isLeapYear(year)){days+=29}else
{days+=28}break;case 3:case 5:case 8:case 10:days+=30;break}}days+=day;return days}catch(err){return CalcErrorsValue}}function __parseTime(text){try
{return wijmo.spread._DateTimeHelper.parseLocale(text)}catch(err){return CalcErrorsValue}}function dt_timevalue(args){var text=Calc.Convert.toString(args[0]);if(text===keyword_undefined||text===keyword_null||text===''){return CalcErrorsValue}try
{var time=__parseTime(text);var totalSeconds=((time.getHours()*60)+time.getMinutes())*60+time.getSeconds();var allSecondsADay=24*3600;return totalSeconds/allSecondsADay}catch(err){return CalcErrorsValue}}function dt_now(args){return new Date}function dt_today(args){var date=new Date;date.setHours(0);date.setMinutes(0);date.setSeconds(0);date.setMilliseconds(0);return date}function dt_hour(args){try
{var dt=Calc.Convert.toDateTime(args[0]);return dt.getHours()}catch(err){return CalcErrorsValue}}function dt_minute(args){try
{var dt=Calc.Convert.toDateTime(args[0]);return dt.getMinutes()}catch(err){return CalcErrorsValue}}function dt_second(args){try
{var dt=Calc.Convert.toDateTime(args[0]);return dt.getSeconds()}catch(err){return CalcErrorsValue}}function dt_day(args){try
{var dt=Calc.Convert.toDateTime(args[0]);return dt.getDate()}catch(err){return CalcErrorsValue}}function dt_month(args){try
{var dt=Calc.Convert.toDateTime(args[0]);return dt.getMonth()+1}catch(err){return CalcErrorsValue}}function dt_year(args){try
{var dt=Calc.Convert.toDateTime(args[0]);return dt.getFullYear()}catch(err){return CalcErrorsValue}}function _getDayOfYear(date){var year=date.getFullYear();var month=date.getMonth();var day=date.getDate();var days=0;for(var i=0;i<month;i++){switch(i){case 0:case 2:case 4:case 6:case 7:case 9:case 11:days+=31;break;case 1:if(_isLeapYear(year)){days+=29}else
{days+=28}break;case 3:case 5:case 8:case 10:days+=30;break}}days+=day;return days}function _getWeekOfYear(date,type){var days=_getDayOfYear(date);var dayOfFirstDay=new Date(date.getFullYear(),0,1).getDay();if(type===2){dayOfFirstDay-=1;if(dayOfFirstDay<0){dayOfFirstDay=6}}var dayDiff=days-1-(6-dayOfFirstDay);if(dayDiff<0){dayDiff=0}return 1+Calc.Convert.toInt(dayDiff/7)+((dayDiff%7!==0)?1:0)}function dt_weeknum(args){var date;var Convert=Calc.Convert;try
{date=Convert.toDateTime(args[0])}catch(err){return CalcErrorsValue}var type;if(isNaN(type=Convert.toInt(Calc._Helper._argumentExists(args,1)?args[1]:1))){return CalcErrorsValue}var cal;switch(type){case 1:case 2:return _getWeekOfYear(date,type);default:return CalcErrorsNumber}}function dt_weekday(args){var dt;try
{dt=Calc.Convert.toDateTime(args[0])}catch(err){return CalcErrorsValue}var type;if(isNaN(type=Calc.Convert.toInt(Calc._Helper._argumentExists(args,1)?args[1]:1))){return CalcErrorsValue}var result;switch(type){case 1:result=dt.getDay()+1;break;case 2:if(dt.getDay()===0){result=7}else
{result=dt.getDay()}break;case 3:if(dt.getDay()===0){result=6}else
{result=dt.getDay()-1}break;default:return CalcErrorsNumber}return result}function dt_edate(args){var startDate;var months;var Convert=Calc.Convert;try
{startDate=Convert.toDateTime(args[0])}catch(err){return CalcErrorsValue}if(isNaN(months=Convert.toInt(args[1]))){return CalcErrorsValue}startDate.setMonth(startDate.getMonth()+months);return startDate}function _getDaysInMonth(year,month){switch(month){case 0:case 2:case 4:case 6:case 7:case 9:case 11:return 31;case 1:return _isLeapYear(year)?29:28;case 3:case 5:case 8:case 10:return 30}}function dt_eomonth(args){var startDate;var months;var Convert=Calc.Convert;try
{startDate=Convert.toDateTime(args[0])}catch(err){return CalcErrorsValue}if(isNaN(months=Convert.toInt(args[1]))){return CalcErrorsValue}startDate.setMonth(startDate.getMonth()+months);var days=_getDaysInMonth(startDate.getFullYear(),startDate.getMonth());startDate.setDate(days);return startDate}function _compareDateTime(date1,date2){return date1-date2}function _containsDate(array,date){var length=array.length;for(var i=0;i<length;i++){var current=array[i];if(_compareDateTime(current,date)===0){return true}}return false}function dt_workday(args){var Convert=Calc.Convert,_Helper=Calc._Helper,_ArrayHelper=Calc._ArrayHelper;var date=Convert.toDateTime(args[0]);var days=Convert.toInt(args[1]);var cnt=_Helper._argumentExists(args,2)?_ArrayHelper.getLength(args[2]):0;var values=[];for(var k=0;k<cnt;k++){values.push(Convert.toDateTime(_ArrayHelper.getValueByIndex(args[2],k)))}var array=[];array[0]=date;array[1]=3;var o=dt_weekday(array);if(Convert.isError(o)){return o}var weekdayValue=Convert.toInt(o);for(;days<0;++days){try
{date.setDate(date.getDate()-1)}catch(err){return CalcErrorsNumber}if(weekdayValue===0){weekdayValue=6}else
{weekdayValue--}if(weekdayValue===5||weekdayValue===6){days--}else
{if(_containsDate(values,date)){days--}}}for(;days>0;--days){try
{date.setDate(date.getDate()+1)}catch(err1){return CalcErrorsNumber}if(weekdayValue===6){weekdayValue=0}else
{weekdayValue++}if(weekdayValue===5||weekdayValue===6){days++}else
{if(_containsDate(values,date)){days++}}}return new wijmo.spread._DateTimeHelper(date).toOADate()}function dt_days360(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var startDate=Convert.toDateTime(args[0]);var endDate=Convert.toDateTime(args[1]);var method=_Helper._argumentExists(args,2)?Convert.toBool(args[2]):false;var startDay=startDate.getDate();var endDay=endDate.getDate();var startMonth=startDate.getMonth();var endMonth=endDate.getMonth();var StartYear=startDate.getFullYear();var endYear=endDate.getFullYear();if(method){endDay=endDay===31?30:endDay;startDay=startDay===31?30:startDay}else
{startDay=startDay===31?30:startDay;if(endDay===31){if(startDay<30){endDay=1;endMonth++;if(endMonth>12){endMonth=1;endYear++}}else
{endDay=30}}}return((endYear-StartYear)*12+(endMonth-startMonth))*30+(endDay-startDay)}function _isWeekEnd(date){return date.getDay()===6||date.getDay()===0}function _removeHolidaies(args,start_serial,end_serial,res){var Convert=Calc.Convert,_Helper=Calc._Helper,_ArrayHelper=Calc._ArrayHelper;var cnt=_Helper._argumentExists(args,2)?_ArrayHelper.getLength(args[2]):0;var list=[];for(var k=0;k<cnt;k++){var tmpDateTime=Convert.toDateTime(_ArrayHelper.getValueByIndex(args[2],k));var tmpDateNum=new wijmo.spread._DateTimeHelper(tmpDateTime).toOADate();if(!_containsDate(list,tmpDateTime)&&!_isWeekEnd(tmpDateTime)&&tmpDateNum>=start_serial&&tmpDateNum<=end_serial){list.push(tmpDateTime)}}res-=list.length;return res}function _removeWeekends(start_date,end_date,res){var Convert=Calc.Convert,DateTimeHelper=wijmo.spread._DateTimeHelper;var offsetInOneWeek=Convert.toInt(new DateTimeHelper(end_date).toOADate()-new DateTimeHelper(start_date).toOADate())%7;var weekDays=Convert.toInt(dt_weekday([start_date,2])+offsetInOneWeek);offsetInOneWeek=weekDays>5?weekDays-5:0;var maxOffset=start_date.getDay()===0?1:2;offsetInOneWeek=offsetInOneWeek>maxOffset?maxOffset:offsetInOneWeek;res-=offsetInOneWeek;var weekends=Convert.toInt(res/7*2);res-=weekends;return res}function dt_networkdays(args){var Convert=Calc.Convert,DateTimeHelper=wijmo.spread._DateTimeHelper;var start_date=Convert.toDateTime(args[0]);var end_date=Convert.toDateTime(args[1]);var start_serial=Convert.toInt(new DateTimeHelper(start_date).toOADate());var end_serial=Convert.toInt(new DateTimeHelper(end_date).toOADate());var isNegative=false;if(start_serial>end_serial){var tmpDate=start_date;var tmp=start_serial;start_serial=end_serial;end_serial=tmp;start_date=end_date;end_date=tmpDate;isNegative=true}var res=end_serial-start_serial+1;res=_removeWeekends(start_date,end_date,res);if(res<=0){return 0}res=_removeHolidaies(args,start_serial,end_serial,res);res=isNegative?-res:res;return res}function _yearfracImp(from,to,basis){var Functions=Calc.Functions;var _FinancialHelper=Functions._FinancialHelper;var Convert=Calc.Convert;var days=_FinancialHelper.__days_between_basis(from,to,basis);var peryear;if(days<0){var tmp;days=-days;tmp=from;from=to;to=tmp}if(basis===1){var y1=from.getFullYear();var y2=to.getFullYear();var d1,d2;var feb29s,years;d1=from;d1.setFullYear(d1.getFullYear()+1);if(_compareDateTime(to,d1)>0){years=y2+1-y1;d1=new Date(y1,0,1);d2=new Date(y2+1,0,1);var DateTimeHelper=wijmo.spread._DateTimeHelper;feb29s=Convert.toInt(new DateTimeHelper(d2).toOADate()-new DateTimeHelper(d1).toOADate())-365*(y2+1-y1)}else
{years=1;if((_isLeapYear(y1)&&from.getMonth()<3)||(_isLeapYear(y2)&&(to.getMonth()*0x100+to.getDate()>=2*0x100+29))){feb29s=1}else
{feb29s=0}}var d=Convert.toDouble(feb29s)/Convert.toDouble(years);peryear=365.0+d}else
{peryear=_FinancialHelper.__annual_year_basis(new Date,basis)}return days/peryear}function dt_yearfrac(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var startDate=Convert.toDateTime(args[0]);var endDate=Convert.toDateTime(args[1]);var basis=_Helper._argumentExists(args,2)?Convert.toInt(args[2]):0;if(basis<0||basis>4){return CalcErrorsNumber}return _yearfracImp(startDate,endDate,basis)}function _calcDateDifFunction(){var builtinProcedure=[];builtinProcedure[0]=(function(startDate,endDate){return(endDate.getFullYear()-startDate.getFullYear())+(endDate.getMonth()<startDate.getMonth()||(endDate.getMonth()===startDate.getMonth()&&endDate.getDate()<startDate.getDate())?-1:0)});builtinProcedure[1]=(function(startDate,endDate){return 12*(endDate.getFullYear()-startDate.getFullYear())+(endDate.getMonth()-startDate.getMonth())+(endDate.getDate()<startDate.getDate()?-1:0)});builtinProcedure[2]=(function(startDate,endDate){return(endDate.getTime()-startDate.getTime())/(1000*3600*24)});builtinProcedure[3]=(function(startDate,endDate){var date=new Date(endDate.getFullYear(),endDate.getMonth()+endDate.getDate()<startDate.getDate()?-1:0,startDate.getDate());return(endDate.getTime()-date.getTime())/(1000*3600*24)});builtinProcedure[4]=(function(startDate,endDate){return(endDate.getMonth()-startDate.getMonth())+(endDate.getMonth()<startDate.getMonth()||(endDate.getMonth()===startDate.getMonth()&&endDate.getDate()<startDate.getDate())?12:0)+(endDate.getDate()<startDate.getDate()?-1:0)});builtinProcedure[5]=(function(startDate,endDate){var date=new Date(endDate.getFullYear()+(endDate.getMonth()<startDate.getMonth()||(endDate.getMonth()===startDate.getMonth()&&endDate.getDate()<startDate.getDate())?-1:0),startDate.getMonth(),startDate.getDate());return(endDate-date)/(1000*3600*24)});return builtinProcedure}function _getValueFromBuiltinProcedure(builtinProcedure,unit){var index;switch(unit){case"Y":index=0;break;case"M":index=1;break;case"D":index=2;break;case"MD":index=3;break;case"YM":index=4;break;case"YD":index=5;break;default:throw spread.SR.Exp_NotSupport;}return builtinProcedure[index]}function dt_datedif(args){var Convert=Calc.Convert;var startDate=Convert.toDateTime(args[0]);var endDate=Convert.toDateTime(args[1]);var unit=Convert.toString(args[2]).toLocaleUpperCase();if(endDate<startDate){return CalcErrorsNumber}var builtinProcedure=_calcDateDifFunction();var procedure=_getValueFromBuiltinProcedure(builtinProcedure,unit);if(procedure){try
{return procedure(startDate,endDate)}catch(err){return CalcErrorsValue}}return CalcErrorsNumber}function _isControlChar(ch){return(0x0<=ch&&ch<=0x1F)||(0x7F===ch)||(0x80<=ch&&ch<=0x9F)}function tx_clean(args){var text=Calc.Convert.toString(args[0]);var sb=[];for(var i=0;i<text.length;i++){if(!_isControlChar(text.charCodeAt(i))){sb.push(text[i])}}return sb.join("")}function _isWhiteSpace(ch){return(ch===' ')||(ch==='\t')||(ch==='\n')}function tx_trim(args){var text=Calc.Convert.toString(args[0]).trim();var str=[];var bAddWhiteSp=true;for(var i=0;i<text.length;i++){var ch=text.charAt(i);if(!_isWhiteSpace(ch)||bAddWhiteSp){str.push(ch)}bAddWhiteSp=!_isWhiteSpace(ch)}return str.join("")}function _addCommas(value){var str=value.toString();var prefix="";if(value<0){str=str.substr(1);prefix="-"}var splits=str.split(".");if(splits.length<1||splits.length>2){return CalcErrorsValue}var result=[];if(splits.length===2){result.push(splits[1]);result.push(".")}str=splits[0];for(var i=str.length-1-2;i>=0;i=i-3){result.push(str.substr(i,3));if(i>0){result.push(",")}}result.push(str.substring(0,i+3));result.reverse();return prefix+result.join("")}function _toCurrency(value){var commasValue=_addCommas(value);if(value<0){commasValue=commasValue.substr(1)}var result=[];result.push("$");result.push(commasValue);if(value<0){result.push(")");result.unshift("(")}return result.join("")}function tx_dollar(args){var _number;var Convert=Calc.Convert,_Helper=Calc._Helper;if(isNaN(_number=Convert.toDouble(args[0]))){return CalcErrorsValue}var decimals=_Helper._argumentExists(args,1)?Convert.toInt(args[1]):2;if(decimals>99){return CalcErrorsValue}_number=Convert.toDouble(mt_round([_number,decimals]));return _toCurrency(_number)}function tx_fixed(args){var _number;var Convert=Calc.Convert,_Helper=Calc._Helper;if(isNaN(_number=Convert.toDouble(args[0]))){return CalcErrorsValue}var decimals=_Helper._argumentExists(args,1)?Convert.toInt(args[1]):2;var noCommas=_Helper._argumentExists(args,2)?Convert.toBool(args[2]):false;var list=[];var divisor=0;if(decimals<0){divisor=Convert.toInt(Math_pow(10,Math_abs(decimals)));_number/=divisor;list[0]=_number;list[1]=0}else
{list[0]=_number;list[1]=decimals}_number=Convert.toDouble(mt_round(list));if(decimals<0){_number*=divisor}if(noCommas){return _number.toString()}else
{return _addCommas(_number)}}function _removeColorFormat(format){if(format.indexOf("[")!==-1&&format.indexOf("]")!==-1){var lpIndex=format.indexOf("[");var rpIndex=format.indexOf("]",lpIndex);while(lpIndex!==-1&&rpIndex!==-1){var before=format.substring(0,lpIndex-1);var after=format.substring(rpIndex+1);format=before.concat(after);lpIndex=format.indexOf("[");rpIndex=lpIndex===-1?-1:format.indexOf("]",lpIndex)}}return format}function tx_text(args){var value=args[0];var Convert=Calc.Convert,StandardDateTimeFormatter=spread._StandardDateTimeFormatter,StandardNumberFormatter=spread._StandardNumberFormatter;var format=Calc.Convert.toString(args[1]);if(format===""||format===keyword_null||format===keyword_undefined){return Convert.toString(value)}if(value===keyword_null||value===keyword_undefined){value=0}format=_removeColorFormat(format);try
{var formatter=new spread.GeneralFormatter(format);return formatter.Format(value)}catch(err){return CalcErrorsValue}}function tx_value(args){var Convert=Calc.Convert,DateTimeHelper=wijmo.spread._DateTimeHelper;var text=Convert.toString(args[0]);var dt=DateTimeHelper.parseLocale(text);if(dt!==keyword_undefined&&dt!==keyword_null){var result=new DateTimeHelper(dt).toOADate();if(!Convert.isError(result)){return result}else
{return dt_timevalue([dt])}}var d;if(!isNaN(d=parseFloat(text))){return d}return CalcErrorsValue}function tx_lower(args){var text=Calc.Convert.toString(args[0]);return text.toLowerCase()}function tx_upper(args){var text=Calc.Convert.toString(args[0]);return text.toUpperCase()}function tx_char(args){var number=Calc.Convert.toInt(args[0]);if(number<1||255<number){return CalcErrorsValue}return String.fromCharCode(number)}function tx_code(args){var text=Calc.Convert.toString(args[0]);if(text===""||text===keyword_undefined||text===keyword_null){return CalcErrorsValue}try
{return text[0].charCodeAt(0)}catch(err){return CalcErrorsValue}}function tx_replace(args){var Convert=Calc.Convert;var oldText=Convert.toString(args[0]);var start=Convert.toInt(args[1]);var length=Convert.toInt(args[2]);var newText=Convert.toString(args[3]);if(start<1||length<0){return CalcErrorsValue}start=Math_min(start,oldText.length+1);length=Math_min(length,oldText.length-start+1);var before=oldText.substring(0,start-1);var after=oldText.substr(start-1+length);return before.concat(newText).concat(after)}function tx_substitute(args){var Convert=Calc.Convert;var searchtext=Convert.toString(args[0]);var oldtext=Convert.toString(args[1]);var newtext=Convert.toString(args[2]);var result;if(oldtext===""||oldtext===keyword_undefined||oldtext===keyword_null){return searchtext}if(args.length>3){var inst=Convert.toInt(args[3]);var index=0;if(inst<1){return CalcErrorsValue}for(var i=0;i<inst;i++){index=searchtext.indexOf(oldtext,index);if(index===-1){return searchtext}index+=oldtext.length}index-=oldtext.length;var before=searchtext.substring(0,index);var after=searchtext.substr(index+oldtext.length);result=before.concat(newtext).concat(after)}else
{result=searchtext.replace(oldtext,newtext)}return result}function tx_concatenate(args){var sb=[];var length=args.length;var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;for(var i=0;i<length;i++){var len=_ArrayHelper.getLength(args[i]);for(var j=0;j<len;j++){var tmpValue=_ArrayHelper.getValueByIndex(args[i],j);if(tmpValue!==keyword_undefined&&tmpValue!==keyword_null){sb.push(Convert.toString(tmpValue))}}}return sb.join("")}function tx_left(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var text=Convert.toString(args[0]);var numChars=_Helper._argumentExists(args,1)?Convert.toInt(args[1]):1;if(numChars<0){return CalcErrorsValue}else if(numChars>=text.length){return text}else
{return text.substr(0,numChars)}}function tx_mid(args){var Convert=Calc.Convert;var text=Convert.toString(args[0]);var start=Convert.toInt(args[1])-1;var length=Convert.toInt(args[2]);if(start<0||length<0){return CalcErrorsValue}else if(start>=text.length){return""}else if(text.length<start+length){return text.substr(start)}else
{return text.substr(start,length)}}function tx_right(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var text=Convert.toString(args[0]);var numChars=_Helper._argumentExists(args,1)?Convert.toInt(args[1]):1;if(numChars<0){return CalcErrorsValue}else if(text.length<numChars){return text}else
{return text.substr(text.length-numChars,numChars)}}function tx_rept(args){var Convert=Calc.Convert;var text=Convert.toString(args[0]);var count=Convert.toInt(args[1]);if(count<0||32767<count*text.length){return CalcErrorsValue}var result=[];for(var i=0;i<count;i++){result.push(text)}return result.join("")}function tx_len(args){return Calc.Convert.toString(args[0]).length}function tx_find(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var searchtext=Convert.toString(args[0]);var text=Convert.toString(args[1]);var start=_Helper._argumentExists(args,2)?Convert.toInt(args[2]):1;var found;if(start<1||text.length<start){return CalcErrorsValue}found=text.indexOf(searchtext,start-1);if(found===-1){return CalcErrorsValue}return found+1}function tx_search(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var searchtext=Convert.toString(args[0]);var text=Convert.toString(args[1]);var startIndex=_Helper._argumentExists(args,2)?Convert.toInt(args[2]):1;startIndex--;if(startIndex<0){return CalcErrorsValue}var index=-1;try
{if(searchtext.indexOf('*')===-1&&searchtext.indexOf('?')===-1){index=text.toLowerCase().indexOf(searchtext.toLowerCase(),startIndex)}else
{var pattern=__createStringcomparisonRegexPattern(searchtext).toLowerCase();var regex=new RegExp(pattern,"i");var matchStr=regex.exec(text);if(matchStr!==keyword_undefined&&matchStr!==keyword_null){index=matchStr.index}else
{index=-1}}}catch(err){}if(index===-1){return CalcErrorsValue}return index+1}function tx_exact(args){var Convert=Calc.Convert;var text1=Convert.toString(args[0]);var text2=Convert.toString(args[1]);return text1===text2}function tx_t(args){var val=args[0];return typeof val==='string'?val:""}function _isError(obj,ctx){if(Calc.Convert.isError(obj)){ctx.value=true}else if((typeof obj)===const_string){var err=Calc.Error._parseCore(obj);ctx.value=(err!==keyword_undefined&&err!==keyword_null)}ctx.value=false}function _isErr(obj,ctx){if(Calc.Convert.isError(obj)&&(obj._code!==CalcErrorsNotAvailable._code)){ctx.value=true}else if((typeof obj)===const_string){var err=Calc.Error._parseCore(obj);ctx.value=(err!==keyword_undefined&&err!==keyword_null&&err!==CalcErrorsNotAvailable)}ctx.value=false}function _checkArgumentsLength(args){if(args===keyword_undefined||args===keyword_null){throw spread.SR.Exp_InvalidArgument;}else
{if(args.length<1||args.length>1){throw spread.SR.Exp_InvalidArgument;}}}function in_isError(args){_checkArgumentsLength(args);var result={value:false};if(Calc.Convert.isError(args[0])){result.value=true}else
{__iterate(args[0],_isError,result)}return result.value}function in_isErr(args){_checkArgumentsLength(args);var Convert=Calc.Convert;var result={value:false};if(Convert.isError(args[0])&&(args[0]._code!==CalcErrorsNotAvailable._code)){result.value=true}else if(Convert.isError(args[0])&&(args[0]._code===CalcErrorsNotAvailable._code)){result.value=false}else
{__iterate(args[0],_isErr,result)}return result.value}function in_isNA(args){_checkArgumentsLength(args);if(Calc.Convert.isError(args[0])){return args[0]._code===CalcErrorsNotAvailable._code}return false}function in_error_Type(args){_checkArgumentsLength(args);var err=args[0];if(err!==keyword_undefined&&err!==keyword_null){if(Calc.Convert.isError(err)){switch(err._code){case CalcErrorsNull._code:return 1;case CalcErrorsDivideByZero._code:return 2;case CalcErrorsValue._code:return 3;case CalcErrorsReference._code:return 4;case CalcErrorsName._code:return 5;case CalcErrorsNumber._code:return 6;case CalcErrorsNotAvailable._code:return 7;default:break}}}return CalcErrorsNotAvailable}function in_isNumber(args){_checkArgumentsLength(args);return Calc.Convert.isNumber(args[0])}function in_isEven(args){_checkArgumentsLength(args);var num;if(isNaN(num=Calc.Convert.toDouble(args[0]))){return CalcErrorsValue}return _Functions.Functions._MathHelper.approxFloor(Math_abs(num))%2.0===0.0}function in_isOdd(args){_checkArgumentsLength(args);var num;if(isNaN(num=Calc.Convert.toDouble(args[0]))){return CalcErrorsValue}return _Functions.Functions._MathHelper.approxFloor(Math_abs(num))%2.0!==0.0}function in_number(args){_checkArgumentsLength(args);var value=args[0];var Convert=Calc.Convert;if(Convert.isNumber(value)){return Convert.toDouble(value)}else if((typeof value)===const_boolean){return(value)?1.0:0.0}else if(Convert.isError(value)){return value}return 0.0}function in_isBlank(args){_checkArgumentsLength(args);return args[0]===keyword_undefined||args[0]===keyword_null}function in_isLogical(args){_checkArgumentsLength(args);return(typeof args[0])===const_boolean}function in_isText(args){_checkArgumentsLength(args);return(typeof args[0])===const_string}function in_isNonText(args){_checkArgumentsLength(args);return(typeof args[0])!==const_string}function in_isRef(args){_checkArgumentsLength(args);return Calc.Convert._isCalcReference(args[0])}function in_type(args){_checkArgumentsLength(args);var value=args[0];var Convert=Calc.Convert;if(Convert.isNumber(value)){return 1}else if((typeof value)===const_string){return 2}else if((typeof value)===const_boolean){return 4}else if(Convert.isError(value)){return 16}else if(Convert._isCalcArray(value)){return 64}else
{return CalcErrorsValue}}function in_na(args){return CalcErrorsNotAvailable}_Functions._MathHelper=(function(){function _approxFloor(x){var r=Math_floor(x);if(_Functions.Functions._MathHelper.approxEqual(x,r+1.0)){return r+1.0}return r}function _approxCeiling(x){var r=Math_ceil(x);if(_Functions.Functions._MathHelper.approxEqual(x,r-1.0)){return r-1.0}return r}function _approxEqual(x,y){if(x===y){return true}return Math_abs(x-y)<Math_abs(x)/(16777216.0*16777216.0)}function _initPow10(){var pow10Array=[];pow10Array[0x00]=1e0;pow10Array[0x01]=1e1;pow10Array[0x02]=1e2;pow10Array[0x03]=1e3;pow10Array[0x04]=1e4;pow10Array[0x05]=1e5;pow10Array[0x06]=1e6;pow10Array[0x07]=1e7;pow10Array[0x08]=1e8;pow10Array[0x09]=1e9;pow10Array[0x0a]=1e10;pow10Array[0x0b]=1e11;pow10Array[0x0c]=1e12;pow10Array[0x0d]=1e13;pow10Array[0x0e]=1e14;pow10Array[0x0f]=1e15;pow10Array[0x10]=1e16;return pow10Array}function _pow10(n){var pow10Array=_initPow10();var value=pow10Array[n];if(value!==keyword_undefined&&value!==keyword_null){return value}return Math_pow(10.0,parseFloat(n))}function _buildCriteria(crit,criteria){var compareString;var compareDouble;switch(crit){case 0:compareString=(function(v1,v2){return v1<=v2});compareDouble=(function(v1,v2){return v1<=v2});break;case 1:compareString=(function(v1,v2){return v1>=v2});compareDouble=(function(v1,v2){return v1>=v2});break;case 2:compareString=(function(v1,v2){return v1!==v2});compareDouble=(function(v1,v2){return v1!==v2});break;case 3:compareString=(function(v1,v2){return v1<v2});compareDouble=(function(v1,v2){return v1<v2});break;case 4:compareString=(function(v1,v2){return v1===v2});compareDouble=(function(v1,v2){return v1===v2});break;case 5:compareString=(function(v1,v2){return v1>v2});compareDouble=(function(v1,v2){return v1>v2});break;default:return(function(v){return false})}var critVal=-1;var isCritNumber=true;try
{var doubleValue={value:0};if(criteria===keyword_undefined||criteria===keyword_null){critVal=0}else if(wijmo.spread.Calc.Convert.tryToDouble(criteria.toString(),doubleValue)){critVal=doubleValue.value}else
{isCritNumber=false}}catch(e){isCritNumber=false}return(function(value){if(value===keyword_undefined||value===keyword_null){value=""}if(isCritNumber){var chkVal=-1;try
{if(!isNaN(chkVal=Calc.Convert.toDouble(value))){return compareDouble(chkVal,critVal)}}catch(e){}}return compareString(value.toString().toUpperCase(),(criteria!==keyword_undefined&&criteria!==keyword_null)?criteria.toString().toUpperCase():"")})}function _parseCriteria(criteria){if(Calc.Convert.isNumber(criteria)){return _buildCriteria(4,criteria)}var OPERATORS_INFIX="=><";var critString=(criteria!==keyword_undefined&&criteria!==keyword_null)?criteria.toString().toUpperCase():"";var prevChar='\0';for(var i=0;i<2&&i<critString.length;i++){var tc=critString[i];if(OPERATORS_INFIX.indexOf(tc)!==-1){if(tc==='='){switch(prevChar){case'<':return _buildCriteria(0,critString.substring(2));case'>':return _buildCriteria(1,critString.substring(2));default:return _buildCriteria(4,(prevChar==='\0')?critString.substring(1):criteria)}}else
{if(prevChar==='\0'){prevChar=tc;continue}if(prevChar==='<'){if(tc==='>'){return _buildCriteria(2,critString.substring(2))}else
{return _buildCriteria(3,critString.substring(1))}}else if(prevChar==='>'){return _buildCriteria(5,critString.substring(1))}}}else
{switch(prevChar){case'<':return _buildCriteria(3,critString.substring(1));case'>':return _buildCriteria(5,critString.substring(1));default:break}}}return _buildCriteria(4,criteria)}function _round(number,digits){if(isNaN(number)){return CalcErrorsValue}var power=_pow10(Math_abs(digits));if(digits<0){number/=power}else
{number*=power}if(number<0.0){number=_approxCeiling(number-0.5)}else
{number=_approxFloor(number+0.5)}if(digits<0){number*=power}else
{number/=power}return Calc.Convert.toResult(number)}function _combin(n,k){if(isNaN(n)||isNaN(k)){return CalcErrorsValue}if(n<0.0||k<0.0||n<k){return CalcErrorsNumber}var result=1.0;k=Math_min(n-k,k);for(var i=1.0;i<=k;i++){result*=n-i+1.0;result/=i}return Calc.Convert.toResult(result)}function _log1p(x){return Math_log(1.0+x)-(((1.0+x)-1.0)-x)/(1.0+x)}function _pow1p(x,y){var ret;if(Math_abs(x)>0.5){ret=Math_pow(1.0+x,y)}else
{ret=Math_exp(y*_log1p(x))}if(!isFinite(ret)){if(ret===Number.POSITIVE_INFINITY){ret=1.79769e+308}else if(ret===Number.NEGATIVE_INFINITY){ret=-1.79769e+308}}else if(isNaN(ret)){ret=4.94066e-324}return ret}function _cosh(d){return(Math_exp(d)+Math_exp(-d))/2}function _sinh(d){return(Math_exp(d)-Math_exp(-d))/2}return{approxFloor:_approxFloor,approxCeiling:_approxCeiling,approxEqual:_approxEqual,pow10:_pow10,parseCriteria:_parseCriteria,round:_round,combin:_combin,log10:MathEx.log10,log:MathEx.log,pow1p:_pow1p,log1p:_log1p,cosh:_cosh,sinh:_sinh}})();function st_trend(args){var convert=Calc.Convert,helper=Calc._Helper;var knownY=convert._toArray(args[0]);var knownX=new Calc.CalcArray;if(helper._argumentExists(args,1)){knownX=convert._toArray(args[1])}else
{knownX=knownY}var newX=helper._argumentExists(args,2)?convert._toArray(args[2]):knownX;var constant=helper._argumentExists(args,3)?convert.toBool(args[3]):true;var i,j;for(i=0;i<knownY.getRowCount();i++){for(j=0;j<knownY.getColumnCount();j++){if(!convert.isNumber(knownY.getValue(i,j))){return CalcErrorsValue}}}for(i=0;i<knownX.getRowCount();i++){for(j=0;j<knownX.getColumnCount();j++){if(!convert.isNumber(knownX.getValue(i,j))){return CalcErrorsValue}}}for(i=0;i<newX.getRowCount();i++){for(j=0;j<newX.getColumnCount();j++){if(!convert.isNumber(newX.getValue(i,j))){return CalcErrorsValue}}}var d,k,m,n,x,y,result,found,val,temp;if(knownY.getRowCount()===knownX.getRowCount()&&knownY.getColumnCount()===knownX.getColumnCount()){n=knownX.getRowCount()*knownX.getColumnCount();var sumx=0.0,sumx2=0.0,sumy=0.0,sumxy=0.0,b;for(i=0;i<knownX.getRowCount();i++){for(j=0;j<knownX.getColumnCount();j++){if(isNaN(x=convert.toDouble(knownX.getValue(i,j)))||isNaN(y=convert.toDouble(knownY.getValue(i,j)))){return CalcErrorsValue}sumx+=x;sumx2+=x*x;sumy+=y;sumxy+=x*y}}if(constant){m=(n*sumxy-sumx*sumy)/(n*sumx2-sumx*sumx);b=(sumy*sumx2-sumx*sumxy)/(n*sumx2-sumx*sumx)}else
{m=sumxy/sumx2;b=0.0}result=[];for(i=0;i<newX.getRowCount();i++){result[i]=[];for(j=0;j<newX.getColumnCount();j++){if(isNaN(x=convert.toDouble(newX.getValue(i,j)))){return CalcErrorsValue}result[i][j]=m*x+b}}return result}else if((knownY.getColumnCount()===1&&knownY.getRowCount()===knownX.getRowCount())||(knownY.getRowCount()===1&&knownY.getColumnCount()===knownX.getColumnCount())){y=[];x=[];if(knownY.getColumnCount()===1){n=knownX.getRowCount();m=knownX.getColumnCount();for(i=0;i<n;i++){if(isNaN(d=convert.toDouble(knownY.getValue(i,0)))){return CalcErrorsValue}y[i]=d}for(i=0;i<n;i++){x[i]=[];for(j=0;j<m;j++){if(isNaN(d=convert.toDouble(knownX.getValue(i,j)))){return CalcErrorsValue}x[i][j]=d}}}else
{n=knownX.getColumnCount();m=knownX.getRowCount();x=[];y=[];for(i=0;i<n;i++){if(isNaN(d=convert.toDouble(knownY.getValue(0,i)))){return CalcErrorsValue}y[i]=d}for(i=0;i<n;i++){x[i]=[];for(j=0;j<m;j++){if(isNaN(d=convert.toDouble(knownX.getValue(j,i)))){return CalcErrorsValue}x[i][j]=d}}}var q=[];for(k=0;k<m+1;k++){q[k]=[]}for(var mm=0;mm<m+1;mm++){for(var nn=0;nn<m+2;nn++){q[mm][nn]=0}}for(k=0;k<n;k++){q[0][m+1]=q[0][m+1]+y[k];for(i=0;i<m;i++){q[0][i+1]=q[0][i+1]+x[k][i];q[i+1][0]=q[0][i+1];q[i+1][m+1]=q[i+1][m+1]+x[k][i]*y[k];for(j=i;j<m;j++){q[j+1][i+1]=q[j+1][i+1]+x[k][i]*x[k][j];q[i+1][j+1]=q[j+1][i+1]}}}q[0][0]=n;if(constant){for(i=0;i<m+1;i++){if(q[i][i]===0.0){found=false;for(j=i+1;!found&&j<m+1;j++){if(q[j][i]!==0.0){for(k=0;k<m+2;k++){temp=q[i][k];q[i][k]=q[j][k];q[j][k]=temp}found=true}}if(!found){return CalcErrorsNotAvailable}}val=1.0/q[i][i];for(k=0;k<m+2;k++){q[i][k]=q[i][k]*val}for(j=0;j<m+1;j++){if(j!==i){val=-q[j][i];for(k=0;k<m+2;k++){q[j][k]=q[j][k]+val*q[i][k]}}}}}else
{for(i=1;i<m+1;i++){if(q[i][i]===0.0){found=false;for(j=i+1;!found&&j<m+1;j++){if(q[j][i]!==0.0){for(k=0;k<m+2;k++){temp=q[i][k];q[i][k]=q[j][k];q[j][k]=temp}found=true}}if(!found){return CalcErrorsNotAvailable}}val=1.0/q[i][i];for(k=1;k<m+2;k++){q[i][k]=q[i][k]*val}for(j=1;j<m+1;j++){if(j!==i){val=-q[j][i];for(k=1;k<m+2;k++){q[j][k]=q[j][k]+val*q[i][k]}}}q[0][m+1]=0.0}}if(knownY.getColumnCount()===1){result=[];for(i=0;i<newX.getRowCount();i++){result[i]=[];val=q[0][m+1];for(j=0;j<m;j++){if(isNaN(d=convert.toDouble(newX.getValue(i,j)))){return CalcErrorsValue}val+=q[j+1][m+1]*d}result[i][0]=val}return result}else
{result=[];result[0]=[];for(i=0;i<newX.getColumnCount;i++){val=q[0][m+1];for(j=0;j<m;j++){if(isNaN(d=convert.toDouble(newX.getValue(j,i)))){return CalcErrorsValue}val+=q[j+1][m+1]*d}result[0][i]=val}return result}}return CalcErrorsNotAvailable}function st_growth(args){var convert=Calc.Convert,helper=Calc._Helper;var knownY=convert._toArray(args[0]);var knownX=[];if(helper._argumentExists(args,1)){knownX=convert._toArray(args[1])}else
{knownX=knownY}var newX=helper._argumentExists(args,2)?convert._toArray(args[2]):knownX;var constant=helper._argumentExists(args,3)?convert.toBool(args[3]):true;var d,k,i,j,m,n,x,y,mm,nn,result,s,val,L;for(i=0;i<knownY.getRowCount();i++){for(j=0;j<knownY.getColumnCount();j++){val=knownY.getValue(i,j);if(convert.isError(val)){return val}else if(!convert.isNumber(val)){return CalcErrorsValue}else if(convert.toDouble(val)<=0.0){return CalcErrorsNumber}}}for(i=0;i<knownX.getRowCount();i++){for(j=0;j<knownX.getColumnCount();j++){val=knownX.getValue(i,j);if(convert.isError(val)){return val}else if(!convert.isNumber(val)){return CalcErrorsValue}}}for(i=0;i<newX.getRowCount();i++){for(j=0;j<newX.getColumnCount();j++){val=newX.getValue(i,j);if(convert.isError(val)){return val}else if(!convert.isNumber(val)){return CalcErrorsValue}}}if(knownY.getRowCount()===knownX.getRowCount()&&knownY.getColumnCount()===knownX.getColumnCount()){n=knownX.getRowCount()*knownX.getColumnCount();var sumx=0.0,sumx2=0.0,sumy=0.0,sumxy=0.0,b;for(i=0;i<knownX.getRowCount();i++){for(j=0;j<knownX.getColumnCount();j++){if(isNaN(x=convert.toDouble(knownX.getValue(i,j)))||isNaN(y=convert.toDouble(knownY.getValue(i,j)))){return CalcErrorsValue}y=Math_log(y);sumx+=x;sumx2+=x*x;sumy+=y;sumxy+=x*y}}if(constant){m=(n*sumxy-sumx*sumy)/(n*sumx2-sumx*sumx);b=(sumy*sumx2-sumx*sumxy)/(n*sumx2-sumx*sumx)}else
{m=sumxy/sumx2;b=0.0}result=[];for(i=0;i<newX.getRowCount();i++){result[i]=[];for(j=0;j<newX.getColumnCount();j++){if(isNaN(x=convert.toDouble(newX.getValue(i,j)))){return CalcErrorsValue}result[i][j]=Math_exp(m*x+b)}}return result}else if((knownY.getColumnCount()===1&&knownY.getRowCount()===knownX.getRowCount())||(knownY.getRowCount()===1&&knownY.getColumnCount()===knownX.getColumnCount())){y=[];x=[];if(knownY.getColumnCount()===1){n=knownX.getRowCount();m=knownX.getColumnCount();for(i=0;i<n;i++){if(isNaN(d=convert.toDouble(knownY.getValue(i,0)))){return CalcErrorsValue}y[i]=Math_log(d)}for(i=0;i<n;i++){x[i]=[];for(j=0;j<m;j++){if(isNaN(d=convert.toDouble(knownX.getValue(i,j)))){return CalcErrorsValue}x[i][j]=d}}}else
{n=knownX.getColumnCount();m=knownX.getRowCount();x=[];y=[];for(i=0;i<n;i++){if(isNaN(d=convert.toDouble(knownY.getValue(0,i)))){return CalcErrorsValue}y[i]=d}for(i=0;i<n;i++){x[i]=[];for(j=0;j<m;j++){if(isNaN(d=convert.toDouble(knownX.getValue(j,i)))){return CalcErrorsValue}x[i][j]=d}}}var q=[];for(mm=0;mm<m+1;mm++){q[mm]=[];for(nn=0;nn<m+2;nn++){q[mm][nn]=0}}var e=[];for(mm=0;mm<m+2;mm++){e[mm]=0}for(k=0;k<n;k++){e[m+1]=e[m+1]+y[k]*y[k];q[0][m+1]=q[0][m+1]+y[k];e[0]=q[0][m+1];for(i=0;i<m;i++){q[0][i+1]=q[0][i+1]+x[k][i];q[i+1][0]=q[0][i+1];q[i+1][m+1]=q[i+1][m+1]+x[k][i]*y[k];e[i+1]=q[i+1][m+1];for(j=i;j<m;j++){q[j+1][i+1]=q[j+1][i+1]+x[k][i]*x[k][j];q[i+1][j+1]=q[j+1][i+1]}}}q[0][0]=n;if(constant){for(s=0;s<m+1;s++){i=s;while(i<m+1&&q[i][s]===0.0){i++}if(i>=m+1){return CalcErrorsNotAvailable}for(L=0;L<m+2;L++){val=q[s][L];q[s][L]=q[i][L];q[i][L]=val}val=1.0/q[s][s];for(L=0;L<m+2;L++){q[s][L]=q[s][L]*val}for(i=0;i<m+1;i++){if(i!==s){val=-q[i][s];for(L=0;L<m+2;L++){q[i][L]=q[i][L]+val*q[s][L]}}}}}else
{for(s=1;s<m+1;s++){i=s;while(i<m+1&&q[i][s]===0.0){i++}if(i>=m+1){return CalcErrorsNotAvailable}for(L=1;L<m+2;L++){val=q[s][L];q[s][L]=q[i][L];q[i][L]=val}val=1.0/q[s][s];q[s][L]=q[s][L]*val;for(i=1;i<m+1;i++){if(i!==s){val=-q[i][s];q[i][L]=q[i][L]+val*q[s][L]}}q[0][m+1]=0.0}}if(knownY.getColumnCount()===1){result=[];for(i=0;i<newX.getRowCount();i++){result[i]=[];val=q[0][m+1];for(j=0;j<m;j++){if(isNaN(d=convert.toDouble(newX.getValue(i,j)))){return CalcErrorsValue}val+=q[j+1][m+1]*d}result[i][0]=Math_exp(val)}return result}else
{result=[];result[0]=[];for(i=0;i<newX.getColumnCount();i++){val=q[0][m+1];for(j=0;j<m;j++){if(isNaN(d=convert.toDouble(newX.getValue(j,i)))){return CalcErrorsValue}val+=q[j+1][m+1]*d}result[0][i]=Math_exp(val)}return result}}return CalcErrorsNotAvailable}function st_forecast(args){var num;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;if(isNaN(num=convert.toDouble(args[0]))){return CalcErrorsValue}var y,x,sumy=0.0,sumx=0.0,sumx2=0.0,sumxy=0.0,a,b;var n=arrayHelper.getLength(args[1]);if(n!==arrayHelper.getLength(args[2])){return CalcErrorsNotAvailable}var count=0;for(var i=0;i<n;i++){var obj1=arrayHelper.getValueByIndex(args[1],i);var obj2=arrayHelper.getValueByIndex(args[2],i);if(convert.isNumber(obj1)&&convert.isNumber(obj2)){y=convert.toDouble(obj1);x=convert.toDouble(obj2);sumy+=y;sumx+=x;sumx2+=x*x;sumxy+=x*y;count++}else if(convert.isError(obj1)){return obj1}else if(convert.isError(obj2)){return obj2}}if(count===0){return CalcErrorsDivideByZero}if(count*sumx2-sumx*sumx===0.0){return CalcErrorsDivideByZero}b=(count*sumxy-sumx*sumy)/(count*sumx2-sumx*sumx);a=(sumy/count)-b*(sumx/count);return convert.toResult(a+b*num)}function st_average(args){return _StatHelper.__averageIncludeSubtotals(args,true)}function st_stdev(args){return _StatHelper.__stdevIncludeSubtotals(args,true)}function st_percentile(args){var k;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;if(isNaN(k=convert.toDouble(args[1]))){return CalcErrorsValue}var list=[],x;if(convert.isError(args[0])){return args[0]}if(arrayHelper.isArrayOrReference(args[0])){for(var i=0;i<arrayHelper.getLength(args[0]);i++){var obj=arrayHelper.getValueByIndex(args[0],i);if(convert.isNumber(obj)){x=convert.toDouble(obj);list.push(x)}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[0]))){return CalcErrorsValue}list.push(x)}list.sort(function(x,y){return x-y});if(list.length===0){return CalcErrorsNumber}if(k<0||1<k){return CalcErrorsNumber}var index=k*(list.length-1);var rem=index%1.0;index=parseInt(index.toString(),10);if(rem===0.0){return list[index]}else
{return convert.toDouble(list[index])+rem*(convert.toDouble(list[index+1])-convert.toDouble(list[index]))}}_Functions.def("ABS",mt_abs,{minArgs:1,maxArgs:1});_Functions.def("ACOS",mt_acos,{minArgs:1,maxArgs:1});_Functions.def("ASIN",mt_asin,{minArgs:1,maxArgs:1});_Functions.def("ATAN",mt_atan,{minArgs:1,maxArgs:1});_Functions.def("ATAN2",mt_atan2,{minArgs:2,maxArgs:2});_Functions.def("COS",mt_cos,{minArgs:1,maxArgs:1});_Functions.def("CEILING",mt_ceiling,{minArgs:2,maxArgs:2});_Functions.def("ODD",mt_odd,{minArgs:1,maxArgs:1});_Functions.def("EVEN",mt_even,{minArgs:1,maxArgs:1});_Functions.def("FLOOR",mt_floor,{minArgs:2,maxArgs:2});_Functions.def("LN",mt_ln,{minArgs:1,maxArgs:1});_Functions.def("SQRT",mt_sqrt,{minArgs:1,maxArgs:1});_Functions.def("SIN",mt_sin,{minArgs:1,maxArgs:1});_Functions.def("TAN",mt_tan,{minArgs:1,maxArgs:1});_Functions.def("SIGN",mt_sign,{minArgs:1,maxArgs:1});_Functions.def("GCD",mt_gcd,{minArgs:1,acceptsReference:acceptsAny,acceptsArray:acceptsAny});_Functions.def("LCM",mt_lcm,{minArgs:1,acceptsReference:acceptsAny,acceptsArray:acceptsAny});_Functions.def("PRODUCT",mt_product,{minArgs:1,acceptsReference:acceptsAny,acceptsArray:acceptsAny});_Functions.def("POWER",mt_power,{minArgs:2,maxArgs:2});_Functions.def("MOD",mt_mod,{minArgs:2,maxArgs:2});_Functions.def("QUOTIENT",mt_quotient,{minArgs:2,maxArgs:2});_Functions.def("SUBTOTAL",mt_subtotal,{minArgs:2,acceptsReference:acceptsNotZero,acceptsArray:acceptsNotZero});_Functions.def("INT",mt_int,{minArgs:1,maxArgs:1});_Functions.def("MROUND",mt_mround,{minArgs:2,maxArgs:2});_Functions.def("ROUND",mt_round,{minArgs:2,maxArgs:2});_Functions.def("ROUNDDOWN",mt_rounddown,{minArgs:2,maxArgs:2});_Functions.def("ROUNDUP",mt_roundup,{minArgs:2,maxArgs:2});_Functions.def("TRUNC",mt_trunc,{minArgs:1,maxArgs:2,acceptsMissingArgument:acceptsOne});_Functions.def("EXP",mt_exp,{minArgs:1,maxArgs:1});_Functions.def("LOG",mt_log,{minArgs:1,maxArgs:2,acceptsMissingArgument:acceptsOne});_Functions.def("LOG10",mt_log10,{minArgs:1,maxArgs:1});_Functions.def("SUM",mt_sum,{minArgs:1,acceptsReference:acceptsAny,acceptsArray:acceptsAny});_Functions.def("SUMIF",mt_sumif,{minArgs:2,maxArgs:3,acceptsMissingArgument:acceptsTwo,acceptsReference:acceptsZeroTwo,acceptsArray:acceptsZeroTwo});_Functions.def("SUMIFS",mt_sumifs,{minArgs:3,acceptsReference:acceptsZeroOdd,acceptsArray:acceptsZeroOdd});_Functions.def("SUMPRODUCT",mt_sumproduct,{minArgs:1,acceptsReference:acceptsAny,acceptsArray:acceptsAny,arrayArgumentEvaluateMode:1});_Functions.def("SUMSQ",mt_sumsq,{minArgs:1,acceptsReference:acceptsAny,acceptsArray:acceptsAny});_Functions.def("SUMX2MY2",mt_sumx2my2,{minArgs:2,maxArgs:2,acceptsReference:acceptsAny,acceptsArray:acceptsAny});_Functions.def("SUMX2PY2",mt_sumx2py2,{minArgs:2,maxArgs:2,acceptsReference:acceptsAny,acceptsArray:acceptsAny});_Functions.def("SUMXMY2",mt_sumxmy2,{minArgs:2,maxArgs:2,acceptsReference:acceptsAny,acceptsArray:acceptsAny});_Functions.def("SERIESSUM",mt_seriessum,{minArgs:4,maxArgs:4,acceptsReference:acceptsThree,acceptsArray:acceptsThree});_Functions.def("PI",mt_pi,{minArgs:0,maxArgs:0});_Functions.def("SQRTPI",mt_sqrtpi,{minArgs:1,maxArgs:1});_Functions.def("DEGREES",mt_degrees,{minArgs:1,maxArgs:1});_Functions.def("RADIANS",mt_radians,{minArgs:1,maxArgs:1});_Functions.def("COSH",mt_cosh,{minArgs:1,maxArgs:1});_Functions.def("ACOSH",mt_acosh,{minArgs:1,maxArgs:1});_Functions.def("SINH",mt_sinh,{minArgs:1,maxArgs:1});_Functions.def("ASINH",mt_asinh,{minArgs:1,maxArgs:1});_Functions.def("TANH",mt_tanh,{minArgs:1,maxArgs:1});_Functions.def("ATANH",mt_atanh,{minArgs:1,maxArgs:1});_Functions.def("MDETERM",mt_mdeterm,{minArgs:1,maxArgs:1,acceptsArray:acceptsAny,acceptsReference:acceptsAny});_Functions.def("MINVERSE",mt_minverse,{minArgs:1,maxArgs:1,acceptsArray:acceptsAny,acceptsReference:acceptsAny});_Functions.def("MMULT",mt_mmult,{minArgs:2,maxArgs:2,acceptsArray:acceptsAny,acceptsReference:acceptsAny});_Functions.def("FACT",mt_fact,{minArgs:1,maxArgs:1});_Functions.def("FACTDOUBLE",mt_factdouble,{minArgs:1,maxArgs:1});_Functions.def("MULTINOMIAL",mt_multinomial,{minArgs:1,acceptsArray:acceptsAny,acceptsReference:acceptsAny});_Functions.def("RAND",mt_rand,{minArgs:0,maxArgs:0,isVolatile:isVolatile});_Functions.def("RANDBETWEEN",mt_randbetween,{minArgs:2,maxArgs:2,isVolatile:isVolatile});_Functions.def("COMBIN",mt_combin,{minArgs:2,maxArgs:2});_Functions.def("ROMAN",mt_roman,{minArgs:1,maxArgs:2,acceptsMissingArgument:acceptsOne});_Functions.def("AND",lg_and,{minArgs:1,acceptsReference:acceptsAny,acceptsArray:acceptsAny});_Functions.def("OR",lg_or,{minArgs:1,acceptsReference:acceptsAny,acceptsArray:acceptsAny});_Functions.def("NOT",lg_not,{minArgs:1,maxArgs:1});_Functions.def("IF",lg_if,{minArgs:2,maxArgs:3,acceptsReference:acceptsOneTwo,acceptsArray:acceptsOneTwo,acceptsError:acceptsOneTwo,acceptsMissingArgument:acceptsTwo,isBranch:isBranch,findTestArgument:findTestArgument,findBranchArgument:findBranchArgument});_Functions.def("IFERROR",lg_iferror,{minArgs:2,maxArgs:2,acceptsReference:acceptsZero,acceptsError:acceptsZero});_Functions.def("TRUE",lg_true,{minArgs:0,maxArgs:0});_Functions.def("FALSE",lg_false,{minArgs:0,maxArgs:0});_Functions.def("DATE",dt_date,{minArgs:3,maxArgs:3});_Functions.def("TIME",dt_time,{minArgs:3,maxArgs:3});_Functions.def("DATEVALUE",dt_datevalue,{minArgs:1,maxArgs:1});_Functions.def("TIMEVALUE",dt_timevalue,{minArgs:1,maxArgs:1});_Functions.def("NOW",dt_now,{minArgs:0,maxArgs:0,isVolatile:isVolatile});_Functions.def("TODAY",dt_today,{minArgs:0,maxArgs:0,isVolatile:isVolatile});_Functions.def("HOUR",dt_hour,{minArgs:1,maxArgs:1});_Functions.def("MINUTE",dt_minute,{minArgs:1,maxArgs:1});_Functions.def("SECOND",dt_second,{minArgs:1,maxArgs:1});_Functions.def("DAY",dt_day,{minArgs:1,maxArgs:1});_Functions.def("MONTH",dt_month,{minArgs:1,maxArgs:1});_Functions.def("YEAR",dt_year,{minArgs:1,maxArgs:1});_Functions.def("WEEKNUM",dt_weeknum,{minArgs:1,maxArgs:2,acceptsMissingArgument:acceptsOne});_Functions.def("WEEKDAY",dt_weekday,{minArgs:1,maxArgs:2,acceptsMissingArgument:acceptsOne});_Functions.def("EDATE",dt_edate,{minArgs:2,maxArgs:2});_Functions.def("EOMONTH",dt_eomonth,{minArgs:2,maxArgs:2});_Functions.def("WORKDAY",dt_workday,{minArgs:2,maxArgs:3,acceptsMissingArgument:acceptsTwo,acceptsArray:acceptsTwo,acceptsReference:acceptsTwo});_Functions.def("DAYS360",dt_days360,{minArgs:2,maxArgs:3,acceptsMissingArgument:acceptsTwo});_Functions.def("NETWORKDAYS",dt_networkdays,{minArgs:2,maxArgs:3,acceptsMissingArgument:acceptsTwo,acceptsArray:acceptsTwo,acceptsReference:acceptsTwo});_Functions.def("YEARFRAC",dt_yearfrac,{minArgs:2,maxArgs:3,acceptsMissingArgument:acceptsTwo});_Functions.def("DATEDIF",dt_datedif,{minArgs:3,maxArgs:3});_Functions.def("CLEAN",tx_clean,{minArgs:1,maxArgs:1});_Functions.def("TRIM",tx_trim,{minArgs:1,maxArgs:1});_Functions.def("DOLLAR",tx_dollar,{minArgs:1,maxArgs:2,acceptsMissingArgument:acceptsOne});_Functions.def("FIXED",tx_fixed,{minArgs:1,maxArgs:3,acceptsMissingArgument:acceptsOneTwo});_Functions.def("TEXT",tx_text,{minArgs:2,maxArgs:2});_Functions.def("VALUE",tx_value,{minArgs:1,maxArgs:1});_Functions.def("LOWER",tx_lower,{minArgs:1,maxArgs:1});_Functions.def("UPPER",tx_upper,{minArgs:1,maxArgs:1});_Functions.def("CHAR",tx_char,{minArgs:1,maxArgs:1});_Functions.def("CODE",tx_code,{minArgs:1,maxArgs:1});_Functions.def("REPLACE",tx_replace,{minArgs:4,maxArgs:4,acceptsMissingArgument:acceptsTwo});_Functions.def("SUBSTITUTE",tx_substitute,{minArgs:3,maxArgs:4,acceptsMissingArgument:acceptsThree});_Functions.def("CONCATENATE",tx_concatenate,{minArgs:2,acceptsArray:acceptsAny});_Functions.def("LEFT",tx_left,{minArgs:1,maxArgs:2,acceptsMissingArgument:acceptsOne});_Functions.def("MID",tx_mid,{minArgs:3,maxArgs:3});_Functions.def("RIGHT",tx_right,{minArgs:1,maxArgs:2,acceptsMissingArgument:acceptsOne});_Functions.def("REPT",tx_rept,{minArgs:2,maxArgs:2});_Functions.def("LEN",tx_len,{minArgs:1,maxArgs:1});_Functions.def("FIND",tx_find,{minArgs:2,maxArgs:3,acceptsMissingArgument:acceptsTwo});_Functions.def("SEARCH",tx_search,{minArgs:2,maxArgs:3,acceptsMissingArgument:acceptsTwo});_Functions.def("EXACT",tx_exact,{minArgs:2,maxArgs:2});_Functions.def("T",tx_t,{minArgs:1,maxArgs:1});_Functions.def("ISERROR",in_isError,{minArgs:1,maxArgs:1,acceptsError:acceptsAny});_Functions.def("ISERR",in_isErr,{minArgs:1,maxArgs:1,acceptsError:acceptsAny});_Functions.def("ISNA",in_isNA,{minArgs:1,maxArgs:1,acceptsError:acceptsAny});_Functions.def("ERROR.TYPE",in_error_Type,{minArgs:1,maxArgs:1,acceptsError:acceptsAny});_Functions.def("ISNUMBER",in_isNumber,{minArgs:1,maxArgs:1,acceptsError:acceptsAny});_Functions.def("ISEVEN",in_isEven,{minArgs:1,maxArgs:1});_Functions.def("ISODD",in_isOdd,{minArgs:1,maxArgs:1});_Functions.def("N",in_number,{minArgs:1,maxArgs:1});_Functions.def("ISBLANK",in_isBlank,{minArgs:1,maxArgs:1,acceptsError:acceptsAny});_Functions.def("ISLOGICAL",in_isLogical,{minArgs:1,maxArgs:1,acceptsError:acceptsAny});_Functions.def("ISTEXT",in_isText,{minArgs:1,maxArgs:1,acceptsError:acceptsAny});_Functions.def("ISNONTEXT",in_isNonText,{minArgs:1,maxArgs:1,acceptsError:acceptsAny});_Functions.def("ISREF",in_isRef,{minArgs:1,maxArgs:1,acceptsError:acceptsAny,acceptsReference:acceptsAny});_Functions.def("TYPE",in_type,{minArgs:1,maxArgs:1,acceptsArray:acceptsAny,acceptsError:acceptsAny});_Functions.def("NA",in_na,{minArgs:0,maxArgs:0});_Functions.def("TREND",st_trend,{minArgs:1,maxArgs:4,acceptsReference:acceptsFirstOrSecondOrThird,acceptsArray:acceptsFirstOrSecondOrThird,acceptsMissingArgument:acceptsSecondOrThirdOrFourth});_Functions.def("GROWTH",st_growth,{minArgs:1,maxArgs:4,acceptsReference:acceptsNotFourth,acceptsArray:acceptsNotFourth,acceptsMissingArgument:acceptsSecondOrThirdOrFourth});_Functions.def("FORECAST",st_forecast,{minArgs:3,maxArgs:3,acceptsArray:acceptAboveZero,acceptsReference:acceptAboveZero});_Functions.def("AVERAGE",st_average,{minArgs:1,acceptsArray:acceptsAny,acceptsReference:acceptsAny});_Functions.def("STDEV",st_stdev,{minArgs:1,acceptsArray:acceptsAny,acceptsReference:acceptsAny});_Functions.def("PERCENTILE",st_percentile,{minArgs:2,maxArgs:2,acceptsArray:acceptsFirst,acceptsReference:acceptsFirst})})(Calc.Functions||(Calc.Functions={}));var Functions=Calc.Functions})(spread.Calc||(spread.Calc={}));var Calc=spread.Calc})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var __extends=this.__extends||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __};var wijmo;(function(wijmo){(function(spread){spread.feature("formatter",["core.common","core.globalize","core.migrate"]);var keyword_null=null,keyword_undefined=undefined,Math_abs=Math.abs,Math_ceil=Math.ceil,Math_pow=Math.pow,Math_floor=Math.floor,Math_max=Math.max,Math_min=Math.min,Math_round=Math.round;var stringEx={Empty:"",Format:function(){var args=[];for(var _i=0;_i<(arguments.length-0);_i++){args[_i]=arguments[_i+0]}if(arguments.length===0){return keyword_null}var str=args[0];for(var i=1;i<arguments.length;i++){var re=new RegExp('\\{'+(i-1)+'\\}','gm');str=str.replace(re,arguments[i])}return str},IsNullOrEmpty:function(obj){return!obj||obj===stringEx.Empty}};var DateTimeStyles;(function(DateTimeStyles){DateTimeStyles[DateTimeStyles["None"]=0]="None";DateTimeStyles[DateTimeStyles["AllowLeadingWhite"]=1]="AllowLeadingWhite";DateTimeStyles[DateTimeStyles["AllowTrailingWhite"]=2]="AllowTrailingWhite";DateTimeStyles[DateTimeStyles["AllowInnerWhite"]=4]="AllowInnerWhite";DateTimeStyles[DateTimeStyles["AllowWhiteSpaces"]=7]="AllowWhiteSpaces";DateTimeStyles[DateTimeStyles["NoCurrentDateDefault"]=8]="NoCurrentDateDefault";DateTimeStyles[DateTimeStyles["AdjustToUniversal"]=16]="AdjustToUniversal";DateTimeStyles[DateTimeStyles["AssumeLocal"]=32]="AssumeLocal";DateTimeStyles[DateTimeStyles["AssumeUniversal"]=64]="AssumeUniversal";DateTimeStyles[DateTimeStyles["RoundtripKind"]=128]="RoundtripKind"})(DateTimeStyles||(DateTimeStyles={}));var char={IsDigit:function(c){var cc=c.charCodeAt(0);return cc>=0x30&&cc<=0x39},IsWhiteSpace:function(c){var cc=c.charCodeAt(0);return(cc>=0x0009&&cc<=0x000D)||(cc===0x0020)||(cc===0x0085)||(cc===0x00A0)}};(function(FormatMode){FormatMode[FormatMode["CustomMode"]=0]="CustomMode";FormatMode[FormatMode["StandardDateTimeMode"]=1]="StandardDateTimeMode";FormatMode[FormatMode["StandardNumericMode"]=2]="StandardNumericMode"})(spread.FormatMode||(spread.FormatMode={}));var FormatMode=spread.FormatMode;(function(NumberFormatType){NumberFormatType[NumberFormatType["General"]=0]="General";NumberFormatType[NumberFormatType["Number"]=1]="Number";NumberFormatType[NumberFormatType["DateTime"]=2]="DateTime";NumberFormatType[NumberFormatType["Text"]=3]="Text"})(spread.NumberFormatType||(spread.NumberFormatType={}));var NumberFormatType=spread.NumberFormatType;var TimePart;(function(TimePart){TimePart[TimePart["Hour"]=0]="Hour";TimePart[TimePart["Minute"]=1]="Minute";TimePart[TimePart["Second"]=2]="Second"})(TimePart||(TimePart={}));var DefaultTokens=(function(){function DefaultTokens(){}DefaultTokens.DateTimeFormatInfo=function(){return spread._CultureInfo.currentCulture().DateTimeFormat()};DefaultTokens.NumberFormatInfo=function(){return spread._CultureInfo.currentCulture().NumberFormat()};DefaultTokens.Filter=function(s,bracketsStart,bracketsEnd){if(s===keyword_undefined||s===keyword_null||s===""){return s}var sb="";var refCount=0;for(var n=0;n<s.length;n++){var c=s[n];if(c===bracketsStart){refCount++}else if(c===bracketsEnd){refCount--;if(refCount<0){refCount=0}}else if(refCount===0){sb+=c}}return sb.toString()};DefaultTokens.TrimSquareBracket=function(token){if(!token||token===stringEx.Empty){return token}if(token[0]===DefaultTokens.LeftSquareBracket){token=spread.StringHelper.TrimStart(token,DefaultTokens.LeftSquareBracket)}if(token[token.length-1]===DefaultTokens.RightSquareBracket){token=spread.StringHelper.TrimEnd(token,DefaultTokens.RightSquareBracket)}return token};DefaultTokens.IsOperator=function(c){return(c===DefaultTokens.LessThanSign||c===DefaultTokens.GreaterThanSign||c===DefaultTokens.EqualsThanSign)};DefaultTokens.TrimEscape=function(token){var len=token.length;var inEscape=false;var sb=new spread.StringBuilder;for(var n=0;n<len;n++){var c=token.charAt(n);if(c===DefaultTokens.ReverseSolidusSign){inEscape=!inEscape;if(!inEscape){sb.Append(c)}}else
{inEscape=false;sb.Append(c)}}return sb.toString()};DefaultTokens.AddSquareBracket=function(token){if(!token){throw new Error(spread.SR.Exp_TokenIsNull);}if(token.length===0||token[0]!==DefaultTokens.LeftSquareBracket){token=spread.StringHelper.Insert(token,0,DefaultTokens.LeftSquareBracket.toString())}if(token.length===0||token[token.length-1]!==DefaultTokens.RightSquareBracket){token=spread.StringHelper.Insert(token,token.length,DefaultTokens.RightSquareBracket.toString())}return token};DefaultTokens.IsEquals=function(a,b,isIgnoreCase){if(!a&&!b){return true}else if(!a||!b){return false}else if(isIgnoreCase){return a.toLowerCase()===b.toLowerCase()}else
{return a===b}};DefaultTokens.ReplaceKeyword=function(s,oldString,newString){if(!s||s===stringEx.Empty||this.IsEquals(oldString,newString,true)){return s}var strTemp=s;var start=0;while(true){var index=spread.StringHelper.IndexOf(strTemp,oldString,1);if(index>-1){strTemp=spread.StringHelper.Remove(strTemp,index,oldString.length);strTemp=spread.StringHelper.Insert(strTemp,index,newString);start=index+newString.length}else
{break}}return strTemp};DefaultTokens.IsDecimal=function(s,numberFormatInfo){var decimalSeparator=DefaultTokens.DecimalSeparator;if(numberFormatInfo){decimalSeparator=numberFormatInfo.NumberDecimalSeparator}return(s.indexOf(decimalSeparator)>-1)};DefaultTokens.DoubleQuote='\"';DefaultTokens.SingleQuote='\'';DefaultTokens.Tab='\t';DefaultTokens.LeftSquareBracket='[';DefaultTokens.RightSquareBracket=']';DefaultTokens.LessThanSign='<';DefaultTokens.GreaterThanSign='>';DefaultTokens.EqualsThanSign='=';DefaultTokens.PlusSign='+';DefaultTokens.HyphenMinus='-';DefaultTokens.UnderLine='_';DefaultTokens.LeftParenthesis='(';DefaultTokens.RightParenthesis=')';DefaultTokens.Dollar='$';DefaultTokens.Comma=';';DefaultTokens.Space=' ';DefaultTokens.SolidusSign='/';DefaultTokens.ReverseSolidusSign='\\';DefaultTokens.Zero='0';DefaultTokens.QuestionMark='?';DefaultTokens.Colon=':';DefaultTokens.Semicolon=';';DefaultTokens.Sharp='#';DefaultTokens.CommercialAt='@';DefaultTokens.NumberSign='#';DefaultTokens.Asterisk='*';DefaultTokens.Exponential1="E+";DefaultTokens.Exponential2="E-";DefaultTokens.DecimalSeparator=".";DefaultTokens.NumberGroupSeparator=",";DefaultTokens.PercentSymbol="%";DefaultTokens.NaNSymbol="NaN";DefaultTokens.FormatSeparator=";";DefaultTokens.NegativeSign="-";DefaultTokens.ReplacePlaceholder="@";DefaultTokens.ExponentialSymbol="E";return DefaultTokens})();spread.DefaultTokens=DefaultTokens;var NumberFormatBase=(function(){function NumberFormatBase(partLocaleID,dbNumberFormatPart,cultureName){this._classNames=["NumberFormatBase","IFormatter","IFormatProviderSupport"];this.numberFormatInfo=keyword_null;this.dateTimeFormatInfo=keyword_null;this.cultureName="";var self=this;self._initFileds();self.partLocaleID=partLocaleID;self.partDbNumberFormat=dbNumberFormatPart;if(!cultureName){self.cultureName=spread._CultureInfo.currentCulture().Name()}else
{self.cultureName=cultureName}}NumberFormatBase.prototype._initFileds=function(){var self=this;self.numberStringConverter=keyword_null;self.numberFormatInfo=keyword_null;self.dateTimeFormatInfo=keyword_null;self.partLocaleID=keyword_null;self.partDbNumberFormat=keyword_null};NumberFormatBase.prototype.NumberStringConverter=function(value){if(arguments.length===0){if(this.numberStringConverter){return this.numberStringConverter}return keyword_null}else
{this.numberStringConverter=value;return value}};NumberFormatBase.prototype.PartLocaleID=function(){return spread.util.asType(this.partLocaleID,"LocaleIDFormatPart")};NumberFormatBase.prototype.PartDBNumberFormat=function(){return spread.util.asType(this.partDbNumberFormat,"DBNumberFormatPart")};NumberFormatBase.prototype.DateTimeFormatInfo=function(value){if(arguments.length===0){return this.dateTimeFormatInfo}else
{this.dateTimeFormatInfo=value;return value}};NumberFormatBase.prototype.NumberFormatInfo=function(value){if(arguments.length===0){return this.numberFormatInfo}else
{this.numberFormatInfo=value;return value}};NumberFormatBase.prototype.CultureName=function(value){var self=this;if(arguments.length===0){return self.partLocaleID?self.partLocaleID.CultureInfo().Name():self.cultureName}else
{self.cultureName=value;return value}};NumberFormatBase.prototype.NumberGroupSeparator=function(){if(this.NumberFormatInfo()){return this.NumberFormatInfo().NumberGroupSeparator}return DefaultTokens.NumberGroupSeparator};NumberFormatBase.prototype.PercentSymbol=function(){if(this.NumberFormatInfo()){return this.NumberFormatInfo().PercentSymbol}return DefaultTokens.PercentSymbol};NumberFormatBase.prototype.PositiveSign=function(){if(this.NumberFormatInfo()){return this.NumberFormatInfo().PositiveSign}return DefaultTokens.NumberFormatInfo().PositiveSign};NumberFormatBase.prototype.NegativeSign=function(){if(this.NumberFormatInfo()){return this.NumberFormatInfo().NegativeSign}return DefaultTokens.NegativeSign};NumberFormatBase.prototype.DecimalSeparator=function(){if(this.NumberFormatInfo()){return this.NumberFormatInfo().NumberDecimalSeparator}return DefaultTokens.DecimalSeparator};NumberFormatBase.prototype.NaNSymbol=function(){if(this.NumberFormatInfo()){return this.NumberFormatInfo().NaNSymbol}return DefaultTokens.NaNSymbol};NumberFormatBase.TrimNotSupportSymbol=function(format,isSupportFraction){if(arguments.length===1){isSupportFraction=true}var inComments=false;var sb=new spread.StringBuilder;for(var n=0;n<format.length;n++){var c=format[n];var append=true;if(c==='\"'){inComments=!inComments}else
{if(!inComments){if(!isSupportFraction){if(c==='?'){if(!NumberFormatBase.IsTransform(format,n)){append=false}}if(c==='/'){if(!NumberFormatBase.IsTransform(format,n)){append=false}}}if(c==='_'){if(!NumberFormatBase.IsTransform(format,n)){append=false;n++}}else if(c==='*'){if(!NumberFormatBase.IsTransform(format,n)){append=false}}}}if(append){sb.Append(c)}}return sb.toString()};NumberFormatBase.IsTransform=function(str,currentpos){if(str[currentpos]==='\\'){throw new Error(spread.SR.Exp_InvalidBackslash);}if(currentpos-1>0&¤tpos-1<str.length){if(str[currentpos-1]==='\\'){if(currentpos-2<0){return true}else
{if(currentpos-2>0&¤tpos-2<str.length){return str[currentpos-2]!=='\\'}}}}return false};NumberFormatBase.ContainsKeywords=function(format,keywords){if(!format||format===stringEx.Empty){return false}var stringOnlyKeywords=new spread.StringBuilder;var inComments=false;var last=keyword_null;for(var n=0;n<format.length;n++){var c=format[n];if(c==='\"'){inComments=!inComments}else
{if(!inComments){if(c!==DefaultTokens.UnderLine&&last!==DefaultTokens.UnderLine){stringOnlyKeywords.Append(c==='E'?c:c.toLowerCase())}}}last=c}var formatTemp=stringOnlyKeywords.toString();for(var index=0;index<keywords.length;index++){var keyword=keywords[index];if(spread.StringHelper.Contains(formatTemp,keyword)){return true}}return false};NumberFormatBase.prototype.Format=function(obj){return""};NumberFormatBase.prototype.Parse=function(str){return keyword_null};NumberFormatBase.prototype.FormatString=function(){return""};NumberFormatBase.prototype.ExcelCompatibleFormatString=function(){return""};NumberFormatBase.General="General";return NumberFormatBase})();var _StandardDateTimeFormatter=(function(){function _StandardDateTimeFormatter(format){var self=this;self.ShortDatePattern="d";self.LongDatePattern="D";self.FullDatePatternShortTime="f";self.FullDatePatternLongTime="F";self.GeneralDatePatternLongTimeShortTime="g";self.GeneralDatePatternLongTimeLongTime="G";self.MonthDayPattern1="m";self.MonthDayPattern2="M";self.RoundTripDatePattern1="o";self.RoundTripDatePattern2="O";self.RFC1123Pattern1="r";self.RFC1123Pattern2="R";self.SortableDatePattern="s";self.ShortTimePattern="t";self.LongTimePattern="T";self.UniversalSortableDatePattern="u";self.UniversalFullDatePattern="U";self.YearMonthPattern1="y";self.YearMonthPattern2="Y";self._classNames=["StandardDateTimeFormatter","IFormatter"];self._formatString=format}_StandardDateTimeFormatter.prototype.EvaluateFormat=function(format){var self=this;if(format===self.ShortDatePattern||format===self.LongDatePattern||format===self.FullDatePatternShortTime||format===self.FullDatePatternLongTime||format===self.GeneralDatePatternLongTimeShortTime||format===self.GeneralDatePatternLongTimeLongTime||format===self.MonthDayPattern1||format===self.MonthDayPattern2||format===self.RoundTripDatePattern1||format===self.RoundTripDatePattern2||format===self.RFC1123Pattern1||format===self.RFC1123Pattern2||format===self.SortableDatePattern||format===self.ShortTimePattern||format===self.LongTimePattern||format===self.UniversalSortableDatePattern||format===self.UniversalFullDatePattern||format===self.YearMonthPattern1||format===self.YearMonthPattern2){return true}return false};_StandardDateTimeFormatter.prototype.Format=function(obj){try
{if(obj===keyword_undefined||obj===keyword_null||obj===""){return""}return new spread._DateTimeHelper(obj).localeFormat(this._formatString)}catch(err){return obj.toString()}};_StandardDateTimeFormatter.prototype.Parse=function(str){try
{if(!str||str===""){return keyword_null}return spread._DateTimeHelper.parseLocale(str,this._formatString)}catch(err){return new Date(str)}};_StandardDateTimeFormatter.prototype.FormatString=function(){return this._formatString};return _StandardDateTimeFormatter})();spread._StandardDateTimeFormatter=_StandardDateTimeFormatter;var _StandardNumberFormatter=(function(){function _StandardNumberFormatter(format){var self=this;self.CurrencyPattern1="c";self.CurrencyPattern2="C";self.DecimalPattern1="d";self.DecimalPattern2="D";self.ScientificPattern1="e";self.ScientificPattern2="E";self.FixedPointPattern1="f";self.FixedPointPattern2="F";self.GeneralPattern1="g";self.GeneralPattern2="G";self.NumberPattern1="n";self.NumberPattern2="N";self.PercentPattern1="p";self.PercentPattern2="P";self.RoundTripPattern1="r";self.RoundTripPattern2="R";self.HexadecimalPattern1="x";self.HexadecimalPattern2="X";self._classNames=["StandardNumberFormatter","IFormatter"];self._formatString=format}_StandardNumberFormatter.prototype.EvaluateFormat=function(format){var self=this;if(format&&format!==stringEx.Empty&&format.length>0){var key=format.substr(0,1);if(key===self.CurrencyPattern1||key===self.CurrencyPattern2||key===self.DecimalPattern1||key===self.DecimalPattern2||key===self.ScientificPattern1||key===self.ScientificPattern2||key===self.FixedPointPattern1||key===self.FixedPointPattern2||key===self.GeneralPattern1||key===self.GeneralPattern2||key===self.NumberPattern1||key===self.NumberPattern2||key===self.PercentPattern1||key===self.PercentPattern2||key===self.RoundTripPattern1||key===self.RoundTripPattern2||key===self.HexadecimalPattern1||key===self.HexadecimalPattern2){return true}}return false};_StandardNumberFormatter.prototype.Format=function(obj){try
{if(!obj||obj===""){return""}return new spread._NumberHelper(obj).localeFormat(this._formatString)}catch(err){return obj.toString()}};_StandardNumberFormatter.prototype.Parse=function(str){try
{if(!str||str===""){return keyword_null}return spread._NumberHelper.parseLocale(str)}catch(err){var result=parseFloat(str);if(isNaN(result)||!isFinite(result)){return keyword_null}return result}};_StandardNumberFormatter.prototype.FormatString=function(){return this._formatString};return _StandardNumberFormatter})();spread._StandardNumberFormatter=_StandardNumberFormatter;var NumberFormatText=(function(_super){__extends(NumberFormatText,_super);function NumberFormatText(format,partLocaleID,dbNumberFormatPart,culture){var self=this;_super.call(this,partLocaleID,dbNumberFormatPart,culture);self._classNames=["NumberFormatText","IFormatter"];var formatTemp=NumberFormatBase.TrimNotSupportSymbol(format,false);if(partLocaleID){formatTemp=DefaultTokens.ReplaceKeyword(formatTemp,self.PartLocaleID().OriginalToken(),self.PartLocaleID().CurrencySymbol())}formatTemp=DefaultTokens.Filter(formatTemp,DefaultTokens.LeftSquareBracket,DefaultTokens.RightSquareBracket);formatTemp=DefaultTokens.TrimEscape(formatTemp);self._formatString=formatTemp}NumberFormatText.prototype.Format=function(obj){try
{var result=spread.Calc.Convert.toString(obj);var formatStringTemp=spread.StringHelper.Replace(this._formatString,"\"","");if(formatStringTemp!==keyword_null&&typeof(formatStringTemp)!==keyword_undefined){result=spread.StringHelper.Replace(formatStringTemp,"@",result)}return result}catch(err){return""}};NumberFormatText.prototype.Parse=function(str){if(!str){return""}return str};NumberFormatText.prototype.FormatString=function(){return this._formatString};NumberFormatText.EvaluateFormat=function(format){return true};NumberFormatText.prototype.DefaultDateTimeNumberStringConverter=function(){};return NumberFormatText})(NumberFormatBase);var AutoFormatter=(function(){function AutoFormatter(innerFormatter){this._innerFormatter=innerFormatter}AutoFormatter.prototype.FormatString=function(){return this._innerFormatter?this._innerFormatter.FormatString():''};AutoFormatter.prototype.innerFormatter=function(formatter){if(arguments.length===0){return this._innerFormatter}this._innerFormatter=formatter;return this};AutoFormatter.prototype.Parse=function(text){return this._innerFormatter?this._innerFormatter.Parse(text):text};AutoFormatter.prototype.Format=function(obj){return this._innerFormatter?this._innerFormatter.Format(obj):((obj===keyword_undefined||obj===keyword_null)?"":obj.toString())};AutoFormatter.prototype.toJSON=function(){return keyword_undefined};return AutoFormatter})();spread.AutoFormatter=AutoFormatter;var CustomNumberFormat=(function(){function CustomNumberFormat(format,culture){var self=this;self.conditionFormatPart=keyword_null;self.colorFormatPart=keyword_null;self.localeIDFormatPart=keyword_null;self.dbNumberFormatPart=keyword_null;self.numberFormat=keyword_null;self.dateTimeFormatInfo=keyword_null;self.numberFormatInfo=keyword_null;self.formatCached=keyword_null;self._classNames=["CustomNumberFormat","IFormatter","IFormatProviderSupport"];if(!culture){culture=spread._CultureInfo.currentCulture().Name()}if(arguments.length===0){self.formatCached=NumberFormatBase.General;self.numberFormat=new NumberFormatGeneral}else
{self.Init(format,culture)}}CustomNumberFormat.prototype.Init=function(format,culture){if(format===keyword_null||format===keyword_undefined){throw new Error(spread.SR.Exp_FormatIllegal);}var self=this;self.formatCached=format;var contentToken=keyword_null;var token=keyword_null;var isInFormatPart=false;var absTimePart=[];for(var index=0;index<format.length;index++){var c=format[index];if(c===DefaultTokens.LeftSquareBracket){if(isInFormatPart){throw new Error(spread.SR.Exp_FormatIllegal);}else
{if(token){if(!contentToken){contentToken=new spread.StringBuilder}contentToken.Append(token.toString());token=keyword_null}token=new spread.StringBuilder;token.Append(c)}isInFormatPart=true}else if(c===DefaultTokens.RightSquareBracket){if(isInFormatPart){if(token){if(!token){token=new spread.StringBuilder}token.Append(c);var part=token.toString();var partObject=spread.util.asType(FormatPartBase.Create(part),"FormatPartBase");if(partObject&&!(spread.util.isType(partObject,"ABSTimeFormatPart"))){self.AddPart(partObject)}else
{if(spread.util.isType(partObject,"ABSTimeFormatPart")){absTimePart.push(spread.util.asType(partObject,"ABSTimeFormatPart"));if(!contentToken){contentToken=new spread.StringBuilder}contentToken.Append(token.toString())}else
{throw new Error(spread.SR.Exp_FormatIllegal);}}token=keyword_null}else
{throw new Error(spread.SR.Exp_FormatIllegal);}}else
{throw new Error(spread.SR.Exp_FormatIllegal);}isInFormatPart=false}else
{if(!token){token=new spread.StringBuilder}token.Append(c)}}if(token){if(isInFormatPart){throw new Error(spread.SR.Exp_FormatIllegal);}else
{if(!contentToken){contentToken=new spread.StringBuilder}contentToken.Append(token.toString())}}if(self.localeIDFormatPart!==keyword_null){culture=self.localeIDFormatPart.CultureInfo().Name()}var content=contentToken?contentToken.toString():stringEx.Empty;if(NumberFormatGeneral.EvaluateFormat(content)){self.numberFormat=new NumberFormatGeneral(content,self.LocaleIDFormatPart(),self.dbNumberFormatPart,culture)}else if(NumberFormatDateTime.EvaluateFormat(content)){var absPartsArray=absTimePart.length>0?absTimePart:keyword_null;self.numberFormat=new NumberFormatDateTime(content,absPartsArray,self.LocaleIDFormatPart(),self.dbNumberFormatPart,culture)}else if(NumberFormatDigital.EvaluateFormat(content)){self.numberFormat=new NumberFormatDigital(format,self.LocaleIDFormatPart(),self.dbNumberFormatPart,culture)}else if(NumberFormatText.EvaluateFormat(content)){self.numberFormat=new NumberFormatText(format,self.LocaleIDFormatPart(),self.dbNumberFormatPart,culture)}else
{throw new Error(spread.SR.Exp_FormatIllegal);}};CustomNumberFormat.prototype.FormatString=function(){var self=this;var formatBuilder=new spread.StringBuilder;if(self.numberFormat&&self.numberFormat.FormatString()){if(self.ColorFormatPart()){formatBuilder.Append(self.ColorFormatPart().toString())}if(self.ConditionFormatPart()){formatBuilder.Append(self.ConditionFormatPart().toString())}if(self.DBNumberFormatPart()){formatBuilder.Append(self.DBNumberFormatPart().toString())}if(self.LocaleIDFormatPart()){formatBuilder.Append(self.LocaleIDFormatPart().toString())}formatBuilder.Append(self.numberFormat.FormatString())}return formatBuilder.toString()};CustomNumberFormat.prototype.ConditionFormatPart=function(){return this.conditionFormatPart};CustomNumberFormat.prototype.ColorFormatPart=function(){return this.colorFormatPart};CustomNumberFormat.prototype.LocaleIDFormatPart=function(){return this.localeIDFormatPart};CustomNumberFormat.prototype.DBNumberFormatPart=function(){return this.dbNumberFormatPart};CustomNumberFormat.prototype.NumberStringConverter=function(value){var self=this;if(arguments.length===0){if(self.numberFormat){return self.numberFormat.NumberStringConverter()}return keyword_null}else
{if(self.numberFormat){self.numberFormat.NumberStringConverter(value)}}};CustomNumberFormat.prototype.ExcelCompatibleFormatString=function(){var self=this;var formatBuilder=new spread.StringBuilder;if(self.numberFormat&&self.numberFormat.ExcelCompatibleFormatString()){if(!(spread.util.isType(self.numberFormat,"NumberFormatDigital"))){if(self.DBNumberFormatPart()){formatBuilder.Append(self.DBNumberFormatPart().toString())}if(self.LocaleIDFormatPart()){formatBuilder.Append(self.LocaleIDFormatPart().toString())}if(self.ConditionFormatPart()){formatBuilder.Append(self.ConditionFormatPart().toString())}if(self.ColorFormatPart()){formatBuilder.Append(self.ColorFormatPart().toString())}}formatBuilder.Append(self.numberFormat.ExcelCompatibleFormatString())}return formatBuilder.toString()};CustomNumberFormat.prototype.Formatter=function(){return this.numberFormat};CustomNumberFormat.prototype.DateTimeFormatInfo=function(value){if(arguments.length===0){return this.Formatter().DateTimeFormatInfo()}else
{this.Formatter().DateTimeFormatInfo(value);this.dateTimeFormatInfo=value;return value}};CustomNumberFormat.prototype.NumberFormatInfo=function(value){if(arguments.length===0){return this.Formatter().NumberFormatInfo()}else
{this.Formatter().NumberFormatInfo(value);this.numberFormatInfo=value;return value}};CustomNumberFormat.prototype.AddPart=function(part){if(!part){throw new Error(spread.SR.Exp_PartIsNull);}var self=this;if(spread.util.isType(part,"ConditionFormatPart")){if(!self.conditionFormatPart){self.conditionFormatPart=spread.util.asType(part,"ConditionFormatPart");;}else
{throw new Error(spread.SR.Exp_DuplicatedDescriptor);}}else if(spread.util.isType(part,"ColorFormatPart")){if(!self.colorFormatPart){self.colorFormatPart=spread.util.asType(part,"ColorFormatPart")}else
{throw new Error(spread.SR.Exp_DuplicatedDescriptor);}}else if(spread.util.isType(part,"LocaleIDFormatPart")){if(!self.localeIDFormatPart){self.localeIDFormatPart=spread.util.asType(part,"LocaleIDFormatPart")}else
{throw new Error(spread.SR.Exp_DuplicatedDescriptor);}}else if(spread.util.isType(part,"DBNumberFormatPart")){if(!self.dbNumberFormatPart){self.dbNumberFormatPart=spread.util.asType(part,"DBNumberFormatPart")}else
{throw new Error(spread.SR.Exp_DuplicatedDescriptor);}}};CustomNumberFormat.prototype.Format=function(obj){return this.numberFormat.Format(obj)};CustomNumberFormat.prototype.Parse=function(str){return this.numberFormat.Parse(str)};return CustomNumberFormat})();var GeneralFormatter=(function(){function GeneralFormatter(format,formatMode,cultureName){var self=this;self.formatters=keyword_null;self.formatModeType=0;self.dateTimeFormatInfo=keyword_null;self.numberFormatInfo=keyword_null;self.isSingleFormatterInfo=true;self.isDefault=true;self.isConstructed=false;self.customerCultureName=keyword_null;self.PropertyChanged=[];self._classNames=["GeneralFormatter","IFormatter","INotifyPropertyChanged","IColorFormatter"];if(stringEx.IsNullOrEmpty(format)){format=NumberFormatBase.General}if(!formatMode){formatMode=0}self.formatCached=format;self.formatModeType=formatMode;self.isDefault=self.formatCached.toLowerCase()===NumberFormatBase.General.toLowerCase();self.isConstructed=false;if(cultureName){self.customerCultureName=spread._CultureInfo.getCulture(cultureName).Name()}else
{self.customerCultureName=spread._CultureInfo.currentCulture().Name()}}GeneralFormatter._needChangeDefaultFormat=function(defaultFormat){if(!defaultFormat){return true}else
{var currentCulture=spread._CultureInfo.currentCulture().Name().toLowerCase();var oldCulture=defaultFormat.customerCultureName.toLowerCase();if(oldCulture===currentCulture){return false}else
{return true}}};GeneralFormatter.DefaultNumberFormatter=function(){if(GeneralFormatter._needChangeDefaultFormat(this.defaultNumberFormatter)){this.defaultNumberFormatter=new GeneralFormatter("###################0.################",0,spread._CultureInfo.currentCulture().Name())}return this.defaultNumberFormatter};GeneralFormatter.DefaultGeneralFormatter=function(){if(GeneralFormatter._needChangeDefaultFormat(this.defaultGeneralFormatter)){this.defaultGeneralFormatter=new GeneralFormatter}return this.defaultGeneralFormatter};GeneralFormatter.DefaultShortDatePatternFormatter=function(){if(GeneralFormatter._needChangeDefaultFormat(this.defaultShortDatePatternFormatter)){this.defaultShortDatePatternFormatter=new GeneralFormatter(DefaultTokens.DateTimeFormatInfo().ShortDatePattern)}return this.defaultShortDatePatternFormatter};GeneralFormatter.DefaultSXDatetimePatternFormatter=function(){var currentFormat=DefaultTokens.DateTimeFormatInfo().ShortDatePattern+" "+"h:mm:ss";if(GeneralFormatter._needChangeDefaultFormat(this.defaultSXDatetimePatternFormatter)){this.defaultSXDatetimePatternFormatter=new GeneralFormatter(currentFormat)}return this.defaultSXDatetimePatternFormatter};GeneralFormatter.DefaultLongTimePatternFormatter=function(){var currentFormat=DefaultTokens.DateTimeFormatInfo().LongTimePattern;if(GeneralFormatter._needChangeDefaultFormat(this.defaultLongTimePatternFormatter)){this.defaultLongTimePatternFormatter=new GeneralFormatter(currentFormat)}return this.defaultLongTimePatternFormatter};GeneralFormatter.DefaultDMMMFormatter=function(){if(GeneralFormatter._needChangeDefaultFormat(this.defaultDMMMFormatter)){this.defaultDMMMFormatter=new GeneralFormatter("d-mmm",0,spread._CultureInfo.currentCulture().Name())}return this.defaultDMMMFormatter};GeneralFormatter.DefaultMMMYYFormatter=function(){if(GeneralFormatter._needChangeDefaultFormat(this.defaultMMMYYFormatter)){this.defaultMMMYYFormatter=new GeneralFormatter("mmm-yy",0,spread._CultureInfo.currentCulture().Name())}return this.defaultMMMYYFormatter};GeneralFormatter.DefaultHMMFormatter=function(){if(GeneralFormatter._needChangeDefaultFormat(this.defaultHMMFormatter)){this.defaultHMMFormatter=new GeneralFormatter("h:mm",0,spread._CultureInfo.currentCulture().Name())}return this.defaultHMMFormatter};GeneralFormatter.DefaultHMMSSFormatter=function(){if(GeneralFormatter._needChangeDefaultFormat(this.defaultHMMSSFormatter)){this.defaultHMMSSFormatter=new GeneralFormatter("h:mm:ss",0,spread._CultureInfo.currentCulture().Name())}return this.defaultHMMSSFormatter};GeneralFormatter.DefaultHMMSS0Formatter=function(){if(GeneralFormatter._needChangeDefaultFormat(this.defaultHMMSS0Formatter)){this.defaultHMMSS0Formatter=new GeneralFormatter("h:mm:ss.0",0,spread._CultureInfo.currentCulture().Name())}return this.defaultHMMSS0Formatter};GeneralFormatter.DefaultComboNumberFormatter1=function(){if(GeneralFormatter._needChangeDefaultFormat(this.defaultComboNumberFormatter1)){this.defaultComboNumberFormatter1=new GeneralFormatter(stringEx.Format("{0}#,##0.00;[Red]({0}#,##0.00)",DefaultTokens.NumberFormatInfo().CurrencySymbol))}return this.defaultComboNumberFormatter1};GeneralFormatter.DefaultComboNumberFormatter2=function(){if(GeneralFormatter._needChangeDefaultFormat(this.defaultComboNumberFormatter2)){this.defaultComboNumberFormatter2=new GeneralFormatter(stringEx.Format("{0}#,##0;[Red]({0}#,##0)",DefaultTokens.NumberFormatInfo().CurrencySymbol))}return this.defaultComboNumberFormatter2};GeneralFormatter.DefaultStandardNumberFormatter=function(){if(GeneralFormatter._needChangeDefaultFormat(this.defaultStandardNumberFormatter)){this.defaultStandardNumberFormatter=new GeneralFormatter("0.00E+00",0,spread._CultureInfo.currentCulture().Name())}return this.defaultStandardNumberFormatter};GeneralFormatter.DefaultStandardPercentFormatter1=function(){if(GeneralFormatter._needChangeDefaultFormat(this.defaultStandardPercentFormatter1)){this.defaultStandardPercentFormatter1=new GeneralFormatter("0.00%",0,spread._CultureInfo.currentCulture().Name())}return this.defaultStandardPercentFormatter1};GeneralFormatter.DefaultStandardPercentFormatter2=function(){if(GeneralFormatter._needChangeDefaultFormat(this.defaultStandardPercentFormatter2)){this.defaultStandardPercentFormatter2=new GeneralFormatter("0%",0,spread._CultureInfo.currentCulture().Name())}return this.defaultStandardPercentFormatter2};GeneralFormatter.DefaultStandardGroupNumberFormatter1=function(){if(GeneralFormatter._needChangeDefaultFormat(this.defaultStandardGroupNumberFormatter1)){this.defaultStandardGroupNumberFormatter1=new GeneralFormatter("#,##0.00",0,spread._CultureInfo.currentCulture().Name())}return this.defaultStandardGroupNumberFormatter1};GeneralFormatter.DefaultStandardGroupNumberFormatter2=function(){if(GeneralFormatter._needChangeDefaultFormat(this.defaultStandardGroupNumberFormatter2)){this.defaultStandardGroupNumberFormatter2=new GeneralFormatter("#,##0",0,spread._CultureInfo.currentCulture().Name())}return this.defaultStandardGroupNumberFormatter2};GeneralFormatter.prototype.findDateTimeGeneralFormatter=function(s,v,formatter,foundCallback){if(formatter&&formatter.length>0){for(var k in formatter){if(formatter.hasOwnProperty(k)){var f=formatter[k];var dt=spread._DateTimeHelper.parseLocale(s,f);if(dt&&(dt-v===0)){return foundCallback()}}}}return keyword_null};GeneralFormatter.prototype._formatDefaultValue=function(target){if(target===keyword_null||typeof target==="undefined"){return}var json=JSON.parse(JSON.stringify(target));if(typeof json!=="object"){return}for(var item in json){if(json.hasOwnProperty(item)){var value=json[item];if(value===keyword_null){delete target[item]}if(typeof value==="object"){this._formatDefaultValue(target[item])}}}};GeneralFormatter.prototype.toJSON=function(){if(this.formatters===keyword_null){return keyword_undefined}var jsonData=$.extend(true,{},JSON.parse(JSON.stringify(this.formatters)));this._formatDefaultValue(jsonData);return{formatters:jsonData}};GeneralFormatter.prototype.HasFormatedColor=function(){var self=this;if(self.isDefault){return false}if(self.PositiveExpression()&&self.PositiveExpression().ColorFormatPart()){return true}if(self.NegativeExpression()&&self.NegativeExpression().ColorFormatPart()){return true}if(self.ZeroExpression()&&self.ZeroExpression().ColorFormatPart()){return true}if(self.TextExpression()&&self.TextExpression().ColorFormatPart()){return true}return false};GeneralFormatter.prototype.IsDefaultFormat=function(){return this.isDefault};GeneralFormatter.prototype.FormatString=function(value){var self=this;if(arguments.length===0){self.Init();var formatStringBuilder=keyword_null;switch(self.FormatMode()){case 0:if(self.formatters){for(var index=0;index<self.formatters.length;index++){var formatter=self.formatters[index];if(spread.util.isType(formatter,"CustomNumberFormat")){if(!formatStringBuilder){formatStringBuilder=new spread.StringBuilder}else
{formatStringBuilder.Append(DefaultTokens.FormatSeparator)}var formatTemp=formatter.FormatString();formatStringBuilder.Append(formatTemp)}}}break;case 1:if(spread.util.isType(self.formatters[0],"StandardDateTimeFormatter")){return self.formatters[0].FormatString()}break;case 2:if(spread.util.isType(self.formatters[0],"StandardNumberFormatter")){return self.formatters[0].FormatString()}break}if(formatStringBuilder){return formatStringBuilder.toString()}else
{return stringEx.Empty}}else
{if(!value){throw new Error(spread.SR.Exp_ValueIsNull);}self.formatters=keyword_null;self.formatCached=value;self.isDefault=self.formatCached.toLowerCase()===NumberFormatBase.General.toLowerCase();self.isConstructed=false;self.Init();self.RaisePropertyChanged("FormatString")}};GeneralFormatter.prototype.DateTimeFormatInfo=function(value){var self=this;if(arguments.length===0){self.Init();if(self.dateTimeFormatInfo){return self.dateTimeFormatInfo}return DefaultTokens.DateTimeFormatInfo()}else
{self.Init();self.dateTimeFormatInfo=value;if(self.formatters){for(var index=0;index<self.formatters.length;index++){var formatter=self.formatters[index];if(spread.util.isType(formatter,"IFormatProviderSupport")){var formaterTmp=formatter;formaterTmp.DateTimeFormatInfo(value)}}}self.RaisePropertyChanged("DateTimeFormatInfo");return value}};GeneralFormatter.prototype.NumberFormatInfo=function(value){var self=this;if(arguments.length===0){self.Init();if(self.numberFormatInfo){return self.numberFormatInfo}return DefaultTokens.NumberFormatInfo()}else
{self.Init();self.numberFormatInfo=value;if(self.formatters){for(var index=0;index<self.formatters.length;index++){var formatter=self.formatters[index];if(spread.util.isType(formatter,"IFormatProviderSupport")){var formaterTmp=formatter;formaterTmp.NumberFormatInfo(value)}}}self.RaisePropertyChanged("NumberFormatInfo");return value}};GeneralFormatter.prototype.FormatMode=function(value){if(arguments.length===0){return this.formatModeType}else
{this.formatModeType=value;this.RaisePropertyChanged("FormatMode");return value}};GeneralFormatter.prototype.ExcelCompatibleFormatString=function(){var self=this;self.Init();var formatStringBuilder=keyword_null;switch(self.FormatMode()){case 0:if(self.formatters){for(var index=0;index<self.formatters.length;index++){var formatter=self.formatters[index];if(spread.util.isType(formatter,"CustomNumberFormat")){if(!formatStringBuilder){formatStringBuilder=new spread.StringBuilder}else
{formatStringBuilder.Append(DefaultTokens.FormatSeparator)}var formatTemp=formatter.ExcelCompatibleFormatString();formatStringBuilder.Append(formatTemp)}}}break;case 1:if(spread.util.isType(self.formatters[0],"StandardDateTimeFormatter")){return self.formatters[0].ExcelCompatibleFormatString()}break;case 2:if(spread.util.isType(self.formatters[0],"StandardNumberFormatter")){return self.formatters[0].ExcelCompatibleFormatString()}break}if(formatStringBuilder){return formatStringBuilder.toString()}else
{return stringEx.Empty}};GeneralFormatter.prototype.PositiveExpression=function(){var self=this;self.Init();if(self.formatters&&self.formatters.length>0){return spread.util.asType(self.formatters[0],"CustomNumberFormat")}return keyword_null};GeneralFormatter.prototype.NegativeExpression=function(){var self=this;self.Init();if(self.formatters&&self.formatters.length>1){return spread.util.asType(self.formatters[1],"CustomNumberFormat")}return keyword_null};GeneralFormatter.prototype.ZeroExpression=function(){var self=this;self.Init();if(self.formatters&&self.formatters.length>2){return spread.util.asType(self.formatters[2],"CustomNumberFormat")}return keyword_null};GeneralFormatter.prototype.TextExpression=function(){var self=this;self.Init();if(self.formatters&&self.formatters.length>3){return spread.util.asType(self.formatters[3],"CustomNumberFormat")}return keyword_null};GeneralFormatter.prototype.GetFormatType=function(obj){this.Init();var formatInfo=this.GetFormatInfo(obj);if(spread.util.isType(formatInfo,"CustomNumberFormat")){var customFormat=formatInfo.Formatter();if(spread.util.isType(customFormat,"NumberFormatDigital")){return 1}else if(spread.util.isType(customFormat,"NumberFormatDateTime")){return 2}else if(spread.util.isType(customFormat,"NumberFormatText")){return 3}}else
{if(spread.util.isType(formatInfo,"NumberFormatDigital")||spread.util.isType(formatInfo,"StandardNumberFormatter")){return 1}else if(spread.util.isType(formatInfo,"NumberFormatDateTime")||spread.util.isType(formatInfo,"StandardDateTimeFormatter")){return 2}else if(spread.util.isType(formatInfo,"NumberFormatText")){return 3}}return 0};GeneralFormatter.prototype.GetPreferredEditingFormatter=function(obj){this.Init();if(spread.util.isType(obj,"DateTime")){var dt=new spread._DateTimeHelper(obj);if(dt.Hour()===0&&dt.Minute()===0&&dt.Second()===0&&dt.Millisecond()===0){return GeneralFormatter.DefaultShortDatePatternFormatter()}else
{return GeneralFormatter.DefaultSXDatetimePatternFormatter()}}else if(spread.util.isType(obj,"TimeSpan")){return GeneralFormatter.DefaultLongTimePatternFormatter()}else if(spread.FormatConverter.IsNumber(obj)){var value=spread.FormatConverter.ToDouble(obj);if(value>1E20){return new GeneralFormatter("0.##E+00")}else
{return GeneralFormatter.DefaultNumberFormatter()}}else if(spread.util.isType(obj,"string")){return GeneralFormatter.DefaultGeneralFormatter()}else
{return GeneralFormatter.DefaultGeneralFormatter()}};GeneralFormatter.prototype.GetPreferredDisplayFormatter=function(s,valueRef){var self=this;if(!valueRef){valueRef={value:keyword_null}}valueRef.value=keyword_null;self.Init();if(stringEx.IsNullOrEmpty(s)){return new GeneralFormatter}var strTemp=s;var v=(valueRef.value=self.Parse(strTemp));if(spread.util.isType(v,"DateTime")||spread.util.isType(v,"TimeSpan")){var result;if((result=self.findDateTimeGeneralFormatter(s,v,NumberFormatGeneral.GeneralMonthDay(),function(){return GeneralFormatter.DefaultDMMMFormatter()}))){return result}if((result=self.findDateTimeGeneralFormatter(s,v,NumberFormatGeneral.GeneralYearMonth(),function(){return GeneralFormatter.DefaultMMMYYFormatter()}))){return result}if((result=self.findDateTimeGeneralFormatter(s,v,NumberFormatGeneral.GeneralYearMonthDay(),function(){return GeneralFormatter.DefaultShortDatePatternFormatter()}))){return result}if((result=self.findDateTimeGeneralFormatter(s,v,NumberFormatGeneral.GeneralHourMinute(),function(){return GeneralFormatter.DefaultHMMFormatter()}))){return result}if((result=self.findDateTimeGeneralFormatter(s,v,NumberFormatGeneral.GeneralHourMinuteSecond(),function(){return GeneralFormatter.DefaultHMMSSFormatter()}))){return result}if((result=self.findDateTimeGeneralFormatter(s,v,NumberFormatGeneral.GeneralHourMinuteSecondSubSecond(),function(){return GeneralFormatter.DefaultHMMSS0Formatter()}))){return result}if((result=self.findDateTimeGeneralFormatter(s,v,NumberFormatGeneral.GeneralHourMinuteWithDate(),function(){if(GeneralFormatter._needChangeDefaultFormat(GeneralFormatter.defaultShortDatePatternHMMFormatter)){GeneralFormatter.defaultShortDatePatternHMMFormatter=new GeneralFormatter(self.DateTimeFormatInfo().ShortDatePattern+" "+"h:mm")}return GeneralFormatter.defaultShortDatePatternHMMFormatter}))){return result}if((result=self.findDateTimeGeneralFormatter(s,v,NumberFormatGeneral.GeneralHourMinuteSecondWithDate(),function(){if(GeneralFormatter._needChangeDefaultFormat(GeneralFormatter.defaultShortDatePatternHMMSSFormatter)){GeneralFormatter.defaultShortDatePatternHMMSSFormatter=new GeneralFormatter(self.DateTimeFormatInfo().ShortDatePattern+" "+"h:mm:ss")}return GeneralFormatter.defaultShortDatePatternHMMSSFormatter}))){return result}if((result=self.findDateTimeGeneralFormatter(s,v,NumberFormatGeneral.GeneralHourMinuteSecondSubSecondWithDate(),function(){if(GeneralFormatter._needChangeDefaultFormat(GeneralFormatter.defaultShortDatePatternHMMSS0Formatter)){GeneralFormatter.defaultShortDatePatternHMMSS0Formatter=new GeneralFormatter(self.DateTimeFormatInfo().ShortDatePattern+" "+"h:mm:ss.0")}return GeneralFormatter.defaultShortDatePatternHMMSS0Formatter}))){return result}}else if(spread.FormatConverter.IsNumber(v)){if(strTemp[0]===DefaultTokens.NumberFormatInfo().CurrencySymbol[0]){if(spread.StringHelper.Contains(strTemp,DefaultTokens.DecimalSeparator)){return GeneralFormatter.DefaultComboNumberFormatter1()}else
{return GeneralFormatter.DefaultComboNumberFormatter2()}}else if(spread.StringHelper.IndexOf(strTemp,"e",1)>-1){return GeneralFormatter.DefaultStandardNumberFormatter()}else if(strTemp[0].toString()===DefaultTokens.PercentSymbol||strTemp[strTemp.length-1].toString()===DefaultTokens.PercentSymbol){if(spread.StringHelper.Contains(strTemp,DefaultTokens.DecimalSeparator)){return GeneralFormatter.DefaultStandardPercentFormatter1()}else
{return GeneralFormatter.DefaultStandardPercentFormatter2()}}else if(spread.StringHelper.Contains(strTemp,DefaultTokens.NumberGroupSeparator)){if(spread.StringHelper.Contains(strTemp,DefaultTokens.DecimalSeparator)){return GeneralFormatter.DefaultStandardGroupNumberFormatter1()}else
{return GeneralFormatter.DefaultStandardGroupNumberFormatter2()}}}return GeneralFormatter.DefaultGeneralFormatter()};GeneralFormatter.prototype.Format=function(obj,conditionalForeColor){if(spread.util.isType(obj,'boolean')){return obj.toString().toUpperCase()}if(conditionalForeColor){conditionalForeColor.value=keyword_null}this.Init();var formatInfo=this.GetFormatInfo(obj);if(spread.util.isType(formatInfo,"CustomNumberFormat")){var colorPart=formatInfo.ColorFormatPart();if(conditionalForeColor&&colorPart){conditionalForeColor.value=colorPart.ForeColor()}}var value=0;var isNumber=spread.FormatConverter.IsNumber(obj);if(isNumber){value=spread.FormatConverter.ToDouble(obj)}if(formatInfo){var result=keyword_null;if(isNumber&&formatInfo===this.NegativeExpression()){result=formatInfo.Format(Math_abs(value));if(spread.util.isType(formatInfo,"CustomNumberFormat")){var cf=spread.util.asType(formatInfo,"CustomNumberFormat");if(cf&&cf.ConditionFormatPart()&&cf.ConditionFormatPart().Value()>0&&value<0){result=DefaultTokens.NegativeSign+result}}}else
{try
{result=formatInfo.Format(obj)}catch(Exception){if(spread.util.isType(obj,"string")){result=obj.toString()}}}if(result){return result}else
{return stringEx.Empty}}else
{if(isNumber&&value<0){return DefaultTokens.HyphenMinus.toString()}else
{if(spread.util.isType(obj,"string")){return obj.toString()}else
{return(obj===keyword_undefined||obj===keyword_null)?stringEx.Empty:obj.toString()}}}};GeneralFormatter.prototype.Parse=function(str){var self=this;self.Init();if(self.formatters&&self.formatters.length>0){return self.formatters[0].Parse(str)}return keyword_null};GeneralFormatter.prototype.Init=function(){var self=this;if(!self.isConstructed){self.isConstructed=true;switch(self.formatModeType){case 0:self.InitExcelCompatibleMode(self.formatCached);break;case 1:self.InitStandardDateTimeMode(self.formatCached);break;case 2:self.InitStandardNumericMode(self.formatCached);break}}};GeneralFormatter.prototype.InitStandardDateTimeMode=function(format){var formatter=new _StandardDateTimeFormatter(format);if(formatter.EvaluateFormat(format)){this.formatters=[];this.formatters.push(formatter)}else
{throw new Error(spread.SR.Exp_FormatIllegal);}};GeneralFormatter.prototype.InitStandardNumericMode=function(format){var formatter=new _StandardNumberFormatter(format);if(formatter.EvaluateFormat(format)){this.formatters=[];this.formatters.push(formatter)}else
{throw new Error(spread.SR.Exp_FormatIllegal);}};GeneralFormatter.prototype.InitExcelCompatibleMode=function(format){if(stringEx.IsNullOrEmpty(format)){throw new Error(spread.SR.Exp_FormatIllegal);}var self=this;self.formatters=[];if(self.isDefault){self.formatters.push(new CustomNumberFormat)}else
{self.isSingleFormatterInfo=!spread.StringHelper.Contains(format,DefaultTokens.FormatSeparator.toString());var items=format.split(DefaultTokens.FormatSeparator);if(!items){throw new Error(spread.SR.Exp_FormatIllegal);}if(items.length<1||items.length>5){throw new Error(spread.SR.Exp_FormatIllegal);}var count=0;for(var index=0;index<items.length;index++){count++;if(count>4){break}var formatItem=new CustomNumberFormat(items[index],self.customerCultureName);if(formatItem){self.formatters.push(formatItem)}}if(!self.PositiveExpression()){throw new Error(spread.SR.Exp_FormatIllegal);}}};GeneralFormatter.prototype.GetFormatInfo=function(obj){var self=this;if(self.FormatMode()===0){if(typeof(obj)==="string"&&isNaN(obj)){if(self.TextExpression()){return self.TextExpression()}else
{return self.PositiveExpression()}}else if(spread.FormatConverter.IsNumber(obj)||spread.util.isType(obj,"boolean")){var positive=self.PositiveExpression();var negative=self.NegativeExpression();var value=spread.FormatConverter.ToDouble(obj);var positiveHasCondition=positive&&positive.ConditionFormatPart();var negativeHasCondition=negative&&negative.ConditionFormatPart();var resultFormatter=self.isSingleFormatterInfo?self.PositiveExpression():keyword_null;if(self.PositiveExpression()){if(positiveHasCondition){if(positive.ConditionFormatPart().IsMeetCondition(value)){resultFormatter=positive}}else
{if(value>0||(value===0&&!self.ZeroExpression())){resultFormatter=positive}}}if(!resultFormatter&&self.NegativeExpression()){if(negativeHasCondition){if(negative.ConditionFormatPart().IsMeetCondition(value)){resultFormatter=negative}}else
{if(value<0){resultFormatter=negative}}}if(!resultFormatter&&self.ZeroExpression()){if(value===0){resultFormatter=self.ZeroExpression()}}if(!resultFormatter&&self.ZeroExpression()){resultFormatter=self.ZeroExpression()}if(!resultFormatter&&self.NegativeExpression()){resultFormatter=self.NegativeExpression()}return resultFormatter}}else if(self.FormatMode()===1||self.FormatMode()===2){if(self.formatters&&self.formatters.length===1){return self.formatters[0]}}return keyword_null};GeneralFormatter.prototype.RaisePropertyChanged=function(propertyName){var self=this;if(self.PropertyChanged){for(var index=0;index<self.PropertyChanged.length;index++){var method=self.PropertyChanged[index];if(typeof(method)==="function"){method(self,propertyName)}}}};GeneralFormatter.defaultNumberFormatter=keyword_null;GeneralFormatter.defaultGeneralFormatter=keyword_null;GeneralFormatter.defaultShortDatePatternFormatter=keyword_null;GeneralFormatter.defaultLongTimePatternFormatter=keyword_null;GeneralFormatter.defaultSXDatetimePatternFormatter=keyword_null;GeneralFormatter.defaultDMMMFormatter=keyword_null;GeneralFormatter.defaultMMMYYFormatter=keyword_null;GeneralFormatter.defaultHMMFormatter=keyword_null;GeneralFormatter.defaultHMMSSFormatter=keyword_null;GeneralFormatter.defaultHMMSS0Formatter=keyword_null;GeneralFormatter.defaultShortDatePatternHMMFormatter=keyword_null;GeneralFormatter.defaultShortDatePatternHMMSSFormatter=keyword_null;GeneralFormatter.defaultShortDatePatternHMMSS0Formatter=keyword_null;GeneralFormatter.defaultComboNumberFormatter1=keyword_null;GeneralFormatter.defaultComboNumberFormatter2=keyword_null;GeneralFormatter.defaultStandardNumberFormatter=keyword_null;GeneralFormatter.defaultStandardPercentFormatter1=keyword_null;GeneralFormatter.defaultStandardPercentFormatter2=keyword_null;GeneralFormatter.defaultStandardGroupNumberFormatter1=keyword_null;GeneralFormatter.defaultStandardGroupNumberFormatter2=keyword_null;return GeneralFormatter})();spread.GeneralFormatter=GeneralFormatter;var FormatPartBase=(function(){function FormatPartBase(token){this._classNames=["FormatPartBase"];this.originalToken=token}FormatPartBase.prototype.OriginalToken=function(){return this.originalToken};FormatPartBase.prototype.SupportedPartFormat=function(){if(!FormatPartBase._supportedPartFormat){FormatPartBase._supportedPartFormat=["ConditionFormatPart","ColorFormatPart","LocaleIDFormatPart"]}return FormatPartBase._supportedPartFormat};FormatPartBase.Create=function(token){if(ConditionFormatPart.EvaluateFormat(token)){return new ConditionFormatPart(token)}else if(DBNumberFormatPart.EvaluateFormat(token)){return new DBNumberFormatPart(token)}else if(LocaleIDFormatPart.EvaluateFormat(token)){return new LocaleIDFormatPart(token)}else if(ABSTimeFormatPart.EvaluateFormat(token)){return new ABSTimeFormatPart(token)}else if(ColorFormatPart.EvaluateFormat(token)){return new ColorFormatPart(token)}else
{return keyword_null}};return FormatPartBase})();var ConditionFormatPart=(function(_super){__extends(ConditionFormatPart,_super);function ConditionFormatPart(token){_super.call(this,token);var self=this;FormatPartBase.call(self,token);self._classNames.push("ConditionFormatPart");self._initFileds();var content=DefaultTokens.TrimSquareBracket(token);if(stringEx.IsNullOrEmpty(content)){throw new Error(spread.SR.Exp_TokenIllegal);}var tokenBuilder=keyword_null;var index=0;var c=keyword_null;for(;index<content.length;index++){c=content[index];if(DefaultTokens.IsOperator(c)){if(!tokenBuilder){tokenBuilder=new spread.StringBuilder}tokenBuilder.Append(c)}else
{break}}if(!tokenBuilder){throw new Error(spread.SR.Exp_TokenIllegal);}var strCompareOperator=tokenBuilder.toString();tokenBuilder=keyword_null;switch(strCompareOperator){case"<":self.compareOperator=4;break;case"<=":self.compareOperator=5;break;case"=":self.compareOperator=0;break;case">=":self.compareOperator=3;break;case">":self.compareOperator=2;break;case"<>":self.compareOperator=1;break;default:throw new Error(spread.SR.Exp_TokenIllegal);}for(;index<content.length;index++){c=content[index];if(DefaultTokens.IsOperator(c)){throw new Error(spread.SR.Exp_TokenIllegal);}if(!tokenBuilder){tokenBuilder=new spread.StringBuilder}tokenBuilder.Append(c)}if(!tokenBuilder){throw new Error(spread.SR.Exp_TokenIllegal);}var strValueNumber=tokenBuilder.toString();var tempValue=parseFloat(strValueNumber);if(!isNaN(tempValue)){self.value=tempValue}else
{throw new Error(spread.SR.Exp_TokenIllegal);}}ConditionFormatPart.prototype._initFileds=function(){this.value=0.0;this.compareOperator=keyword_null};ConditionFormatPart.prototype.CompareOperator=function(){return this.compareOperator};ConditionFormatPart.prototype.Value=function(){return this.value};ConditionFormatPart.prototype.toString=function(){var sb=new spread.StringBuilder;switch(this.compareOperator){case 0:sb.Append("=");break;case 2:sb.Append(">");break;case 3:sb.Append(">=");break;case 4:sb.Append("<");break;case 5:sb.Append("<=");break;case 1:sb.Append("<>");break;default:throw new Error;}sb.Append(this.value.toString());var result=DefaultTokens.AddSquareBracket(sb.toString());return result};ConditionFormatPart.prototype.IsMeetCondition=function(value){var self=this;switch(self.compareOperator){case 0:return value===self.value;case 2:return value>self.value;case 3:return value>=self.value;case 4:return value<self.value;case 5:return value<=self.value;case 1:return value!==self.value}return false};ConditionFormatPart.EvaluateFormat=function(token){if(!token||token===stringEx.Empty){return false}var content=DefaultTokens.TrimSquareBracket(token);if(!content||content===stringEx.Empty){return false}return DefaultTokens.IsOperator(content[0])};return ConditionFormatPart})(FormatPartBase);var ColorFormatPart=(function(_super){__extends(ColorFormatPart,_super);function ColorFormatPart(token){_super.call(this,token);this.foreColor="black";this.index=-1;this.colorName=keyword_null;var self=this;FormatPartBase.call(self,token);self._classNames.push("ColorFormatPart");var content=DefaultTokens.TrimSquareBracket(token);if(!content||content===stringEx.Empty){throw new Error(spread.SR.Exp_TokenIllegal);}try
{self.foreColor=content;self.colorName=content;return}catch(ex){}if(content.length>"Color".length){content=spread.StringHelper.Remove(content,0,"Color".length);var index=-1;var tempIndex=parseInt(content,10);if(!isNaN(tempIndex)){index=tempIndex;if(index>=1&&index<=56){return}}}throw new Error(spread.SR.Exp_TokenIllegal);}ColorFormatPart.prototype.ForeColor=function(){return this.foreColor};ColorFormatPart.prototype.toString=function(){var self=this;if(self.index>-1){return DefaultTokens.AddSquareBracket("Color"+self.index)}else if(self.colorName){return DefaultTokens.AddSquareBracket(self.colorName)}throw new Error;};ColorFormatPart.EvaluateFormat=function(token){if(!token||token===stringEx.Empty){return false}var content=DefaultTokens.TrimSquareBracket(token);if(!content||content===stringEx.Empty){return false}if(content.length<3){return false}if(!isNaN(token[token.length-1])){return spread.StringHelper.StartsWith(token,"Color",1)}else
{return token[0]!==token[1]}};return ColorFormatPart})(FormatPartBase);var ABSTimeFormatPart=(function(_super){__extends(ABSTimeFormatPart,_super);function ABSTimeFormatPart(token){_super.call(this,token);var self=this;FormatPartBase.call(self,token);self._classNames.push("ABSTimeFormatPart");self._initFileds();if(ABSTimeFormatPart.EvaluateFormat(token)){self.token=token.toLowerCase();if(self.token[1]===ABSTimeFormatPart.HoursABSContent){self.type=0}else if(self.token[1]===ABSTimeFormatPart.MinuteABSContent){self.type=1}else if(self.token[1]===ABSTimeFormatPart.SecondABSContent){self.type=2}else
{throw new Error(spread.SR.Exp_TokenIllegal);}}else
{throw new Error(spread.SR.Exp_TokenIllegal);}var sb=new spread.StringBuilder;for(var n=0;n<self.token.length-2;n++){sb.Append("0")}self.formatString=sb.toString()}ABSTimeFormatPart.prototype._initFileds=function(){this.token=keyword_null;this.type=keyword_null;this.formatString=keyword_null};ABSTimeFormatPart.prototype.FormatString=function(){return this.formatString};ABSTimeFormatPart.prototype.TimePartType=function(){return this.type};ABSTimeFormatPart.prototype.Token=function(){return this.token};ABSTimeFormatPart.EvaluateFormat=function(token){if(!token||token===stringEx.Empty){return false}var content=DefaultTokens.TrimSquareBracket(token);if(!content||content===stringEx.Empty){return false}content=content.toLowerCase();var c=keyword_null;for(var n=0;n<content.length;n++){if(!c){c=content[n]}var fp=ABSTimeFormatPart;if(c!==fp.HoursABSContent&&c!==fp.MinuteABSContent&&c!==fp.SecondABSContent){return false}if(c!==content[n]){return false}}return true};ABSTimeFormatPart.HoursABSContent="h";ABSTimeFormatPart.MinuteABSContent="m";ABSTimeFormatPart.SecondABSContent="s";return ABSTimeFormatPart})(FormatPartBase);var DBNumber=(function(){function DBNumber(units,numbers){var self=this;self._classNames=["DBNumber"];var key=keyword_null,u=keyword_null;if(units){self.units=[];for(var i=0;i<units.length;i++){u=units[i];if(u===0){self.units.push(stringEx.Empty)}else
{self.units.push(String.fromCharCode(u))}}}if(numbers){self.numbers=[];for(var i=0;i<numbers.length;i++){u=numbers[i];if(u===0){self.numbers.push(stringEx.Empty)}else
{self.numbers.push(String.fromCharCode(u))}}}}DBNumber.JapaneseDBNum1=function(){if(!DBNumber.japaneseDBNum1){DBNumber.japaneseDBNum1=new DBNumber(DBNumber.JapaneseNumberUnitLetter1,DBNumber.JapaneseNumberLetterValues1)}return DBNumber.japaneseDBNum1};DBNumber.JapaneseDBNum2=function(){if(!DBNumber.japaneseDBNum2){DBNumber.japaneseDBNum2=new DBNumber(DBNumber.JapaneseNumberUnitLetter2,DBNumber.JapaneseNumberLetterValues2)}return DBNumber.japaneseDBNum2};DBNumber.JapaneseDBNum3=function(){if(!DBNumber.japaneseDBNum3){DBNumber.japaneseDBNum3=new DBNumber(keyword_null,DBNumber.JapaneseNumberLetterValues3)}return DBNumber.japaneseDBNum3};DBNumber.prototype.Units=function(){return this.units};DBNumber.prototype.Numbers=function(){return this.numbers};DBNumber.japaneseDBNum1=keyword_null;DBNumber.japaneseDBNum2=keyword_null;DBNumber.japaneseDBNum3=keyword_null;DBNumber.JapaneseNumberUnitLetter1=[0x5343,0x767e,0x5341,0x5146,0x5343,0x767e,0x5341,0x5104,0x5343,0x767e,0x5341,0x4e07,0x5343,0x767e,0x5341,0x0];DBNumber.JapaneseNumberUnitLetter2=[0x9621,0x767e,0x62fe,0x5146,0x9621,0x767e,0x62fe,0x5104,0x9621,0x767e,0x62fe,0x842c,0x9621,0x767e,0x62fe,0x0];DBNumber.JapaneseNumberLetterValues1=[0x3007,0x4e00,0x4e8c,0x4e09,0x56db,0x4e94,0x516d,0x4e03,0x516b,0x4e5d];DBNumber.JapaneseNumberLetterValues2=[0x3007,0x58f1,0x5f10,0x53c2,0x56db,0x4f0d,0x516d,0x4e03,0x516b,0x4e5d];DBNumber.JapaneseNumberLetterValues3=[0xff10,0xff11,0xff12,0xff13,0xff14,0xff15,0xff16,0xff17,0xff18,0xff19];return DBNumber})();var DBNumberFormatPart=(function(_super){__extends(DBNumberFormatPart,_super);function DBNumberFormatPart(token){_super.call(this,token);this.token=keyword_null;this.type=0;var self=this;self._classNames.push("DBNumberFormatPart");if(DBNumberFormatPart.EvaluateFormat(token)){self.token=token;var content=DefaultTokens.TrimSquareBracket(token);var strType=spread.StringHelper.Remove(content,0,"dbnum".length);self.type=parseInt(strType,10);if(self.type<0||self.type>3){throw new Error(spread.SR.Exp_TokenIllegal);}}else
{throw new Error(spread.SR.Exp_TokenIllegal);}}DBNumberFormatPart.prototype.Token=function(){if(!this.token){return stringEx.Empty}return this.token};DBNumberFormatPart.prototype.Type=function(){return this.type};DBNumberFormatPart.prototype.ReplaceNumberString=function(s,dbNumber,isNumber){if(!s||s===stringEx.Empty){return s}var strData=s;var str=s;var end=-1;var start=-1;var hasPoint=false;var token=keyword_null;var ret=keyword_null;var formatedNumber=keyword_null;for(var n=s.length-1;n>=0;n--){var c=str[n];if(!isNaN(c)||(DefaultTokens.IsEquals(c,DefaultTokens.DecimalSeparator,false)&&!hasPoint)){if(DefaultTokens.IsEquals(c,DefaultTokens.DecimalSeparator,false)){hasPoint=true}if(end===-1){end=n}start=n}else
{if(start>-1&&end>-1){token=str.substr(start,end-start+1);ret=parseFloat(token);if(!isNaN(ret)){formatedNumber=this.NumberString(token,dbNumber,isNumber);strData=spread.StringHelper.Remove(strData,start,end-start+1);strData=spread.StringHelper.Insert(strData,start,formatedNumber)}end=-1;start=-1;hasPoint=false}}}if(start>-1&&end>-1){token=str.substr(start,end-start+1);ret=parseFloat(token);if(!isNaN(ret)){formatedNumber=this.NumberString(token,dbNumber,isNumber);strData=spread.StringHelper.Remove(strData,start,end-start+1);strData=spread.StringHelper.Insert(strData,start,formatedNumber)}end=-1;start=-1;hasPoint=false}return strData};DBNumberFormatPart.prototype.NumberString=function(value,dbNumber,isNumber){var partValues=value.split('.');if(partValues){if(partValues.length===1){return DBNumberFormatPart.FormatNumberString(partValues[0],dbNumber.Numbers(),isNumber?dbNumber.Units():keyword_null)}else if(partValues.length===2){var integerString=DBNumberFormatPart.FormatNumberString(partValues[0],dbNumber.Numbers(),isNumber?dbNumber.Units():keyword_null);var decimalString=DBNumberFormatPart.FormatNumberString(partValues[1],dbNumber.Numbers());return integerString+"."+decimalString}}throw new Error(spread.SR.Exp_ValueIllegal);};DBNumberFormatPart.prototype.toString=function(){if(this.type>-1){return DefaultTokens.AddSquareBracket("DBNum"+this.type)}throw new Error;};DBNumberFormatPart.EvaluateFormat=function(token){if(!token||token===stringEx.Empty){return false}var content=DefaultTokens.TrimSquareBracket(token);if(!content||content===stringEx.Empty){return false}if(spread.StringHelper.StartsWith(content,"DBNum",1)){return true}return false};DBNumberFormatPart.FormatNumberString=function(value,numbers,units){var strValue=value;var n=0;var c=keyword_null;var nC=0;if(arguments.length===2){var sb=new spread.StringBuilder;for(n=0;n<strValue.length;n++){c=strValue.substr(n,1);nC=parseInt(c,10);sb.Append(numbers[nC])}return sb.toString()}else if(arguments.length===3){if(!units){return DBNumberFormatPart.FormatNumberString(value,numbers)}var zeroCount=0;var result="";var maxLength=strValue.length;var inZero=false;var numberLetter=[];for(n=0;n<maxLength;n++){var validCharIndex=units.length-1-n;if(validCharIndex>-1){numberLetter.push(units[validCharIndex].toString())}else
{numberLetter.push(stringEx.Empty)}}var tmpLetters=[];for(var i=numberLetter.length-1;i>=0;i--){tmpLetters[numberLetter.length-i-1]=numberLetter[i]}numberLetter=tmpLetters;var isZeroAcceptable=false;for(var i=0;i<maxLength;i++){c=strValue.substr(i,1);nC=parseInt(c,10);var ch1=stringEx.Empty;var ch2=stringEx.Empty;if(maxLength-i-16>0){ch1=numbers[nC];ch2="";isZeroAcceptable=true}else if(i!==(maxLength-1)&&i!==(maxLength-5)&&i!==(maxLength-9)&&i!==(maxLength-13)){if(c==="0"){ch1="";ch2="";zeroCount=zeroCount+1}else
{if(c!=="0"&&zeroCount!==0){ch1=numbers[0]+numbers[nC];ch2=numberLetter[i];zeroCount=0}else
{ch1=numbers[nC];ch2=numberLetter[i];zeroCount=0}}}else
{if(c!=="0"&&zeroCount!==0){ch1=numbers[0]+numbers[nC];ch2=numberLetter[i];zeroCount=0}else
{if((c!=="0"&&zeroCount===0)||isZeroAcceptable){ch1=numbers[nC];ch2=numberLetter[i];zeroCount=0;isZeroAcceptable=false}else
{if(c==="0"&&zeroCount>=3){ch1="";ch2="";zeroCount=zeroCount+1}else
{if(maxLength>=11){ch1="";zeroCount=zeroCount+1}else
{ch1="";ch2=numberLetter[i];zeroCount=zeroCount+1}}}}}var isZero=(ch1+ch2)===stringEx.Empty;if(!isZero){inZero=false}if(i===(maxLength-13)&&!inZero){ch2=numberLetter[i];inZero=true}if(i===(maxLength-9)&&!inZero){ch2=numberLetter[i];inZero=true}if(i===(maxLength-1)){ch2=numberLetter[i];inZero=true}result=result+ch1+ch2}var iValue=parseInt(value,10);if(!isNaN(iValue)){if(iValue===0){return numbers[0]}}return result}};return DBNumberFormatPart})(FormatPartBase);var NumberHelper=(function(){function NumberHelper(){}NumberHelper.ParseHexString=function(str){if(!str||str===stringEx.Empty){throw new Error(spread.SR.Exp_StringIllegal);}return parseInt(str,16)};NumberHelper.FixJapaneseChars=function(s){return s};NumberHelper.GetFraction=function(value,denominatorDigits,out_integer,out_numerator,out_denominator){var integer=0;var numerator=0;var denominator=0;var decimalValue=0;if(value>0){decimalValue=value-Math_ceil(value)+1.0;if(decimalValue==1.0){decimalValue=0;integer=value}else
integer=Math_ceil(value)-1.0}else if(value<0){integer=Math_ceil(value);decimalValue=Math_ceil(value)-value}var min=2;var max=9;min=Math_pow(10,denominatorDigits-1);max=Math_pow(10,denominatorDigits)-1;if(min<2)min=2;if(max<2)max=2;var isValueSet=false;var lastTriedValue=0;for(var n=min;n<=max;n++){var valueTemp=n*decimalValue;var valueIntegerTemp=Math_round(valueTemp);var triedValue=valueIntegerTemp/n;var deviation=Math_abs(triedValue-decimalValue);if(isValueSet?deviation<Math_abs(lastTriedValue-decimalValue):true){isValueSet=true;lastTriedValue=triedValue;numerator=valueIntegerTemp;denominator=n;if(deviation<0.0005){break}}}out_integer.value=integer;out_numerator.value=numerator;out_denominator.value=denominator;return isValueSet};return NumberHelper})();var CultureHelper=(function(){function CultureHelper(){}CultureHelper.AllowScience=function(cultureName){if(cultureName){return(!(cultureName.indexOf("ja")===0)&&!(cultureName.indexOf("zh")===0))}return true};CultureHelper.CreateCultureInfo=function(cultureID){switch(cultureID){case 0x0409:return spread._CultureInfo.getCulture(CultureHelper.EnglishUnitedStates);case 0x0411:return spread._CultureInfo.getCulture(CultureHelper.JapanneseJapan);default:return spread._CultureInfo.currentCulture()}};CultureHelper.JapanneseJapan="ja-JP";CultureHelper.EnglishUnitedStates="en-US";return CultureHelper})();var LocaleIDFormatPart=(function(_super){__extends(LocaleIDFormatPart,_super);function LocaleIDFormatPart(token){_super.call(this,token);this.currencySymbol=keyword_null;this.locateID=-1;this.cultureInfo=keyword_null;this.content=keyword_null;var self=this;FormatPartBase.call(self,token);self._classNames.push("LocaleIDFormatPart");if(!token){throw new Error(spread.SR.Exp_TokenIsNull);}if(token===stringEx.Empty){throw new Error(spread.SR.Exp_TokenIllegal);}self.content=DefaultTokens.TrimSquareBracket(token);var contentTemp=self.content;if(!contentTemp||contentTemp===stringEx.Empty){throw new Error(spread.SR.Exp_TokenIllegal);}if(DefaultTokens.IsEquals(contentTemp[0],DefaultTokens.Dollar,false)){contentTemp=spread.StringHelper.Remove(contentTemp,0,1)}else
{throw new Error(spread.SR.Exp_TokenIllegal);}var minus=contentTemp.indexOf(DefaultTokens.HyphenMinus);if(minus>-1){self.currencySymbol=contentTemp.substr(0,minus);contentTemp=spread.StringHelper.Remove(contentTemp,0,minus)}else
{self.currencySymbol=contentTemp;return}if(DefaultTokens.IsEquals(contentTemp[0],DefaultTokens.HyphenMinus,false)){contentTemp=spread.StringHelper.Remove(contentTemp,0,1)}else
{throw new Error(spread.SR.Exp_TokenIllegal);}if(contentTemp.length>0){self.locateID=NumberHelper.ParseHexString(contentTemp)}else
{throw new Error(spread.SR.Exp_TokenIllegal);}}LocaleIDFormatPart.prototype.CultureInfo=function(){var self=this;if(!self.cultureInfo){self.cultureInfo=CultureHelper.CreateCultureInfo(self.locateID);if(self.currencySymbol&&self.currencySymbol!==stringEx.Empty){if(self.cultureInfo&&!self.cultureInfo.NumberFormat().IsReadOnly){self.cultureInfo.NumberFormat().CurrencySymbol=self.currencySymbol}}}return self.cultureInfo};LocaleIDFormatPart.prototype.CurrencySymbol=function(){if(this.currencySymbol){return this.EncodeSymbol(this.currencySymbol)}return stringEx.Empty};LocaleIDFormatPart.prototype.AllowScience=function(){if(this.cultureInfo){return CultureHelper.AllowScience(this.cultureInfo.Name())}};LocaleIDFormatPart.prototype.GetDBNumber=function(type){var regionID=this.locateID&0x00ff;switch(regionID){case 0x11:switch(type){case 1:return DBNumber.JapaneseDBNum1();case 2:return DBNumber.JapaneseDBNum2();case 3:return DBNumber.JapaneseDBNum3()}break;default:break}return keyword_null};LocaleIDFormatPart.prototype.toString=function(){if(this.content){return DefaultTokens.AddSquareBracket(this.content)}return stringEx.Empty};LocaleIDFormatPart.prototype.EncodeSymbol=function(symbol){return spread.StringHelper.Replace(symbol,"\\.","'.'")};LocaleIDFormatPart.EvaluateFormat=function(token){if(!token||token===stringEx.Empty){return false}var content=DefaultTokens.TrimSquareBracket(token);if(!content||content===stringEx.Empty){return false}return DefaultTokens.IsEquals(content[0],DefaultTokens.Dollar,false)};return LocaleIDFormatPart})(FormatPartBase);var DefaultDateTimeNumberStringConverter=(function(){function DefaultDateTimeNumberStringConverter(){}DefaultDateTimeNumberStringConverter.prototype.ConvertTo=function(num,value,isGeneralNumber,locale,dbNumber){var strTemp=num;if(locale!=keyword_null&&dbNumber!=keyword_null&&value instanceof Date){var dbNumberTemp=locale.GetDBNumber(dbNumber.Type());strTemp=dbNumber.ReplaceNumberString(strTemp,dbNumberTemp,true);strTemp=strTemp.replace(DefaultTokens.ReplacePlaceholder+NumberFormatDateTime.YearFourDigit,new spread._DateTimeHelper(value).localeFormat(NumberFormatDateTime.YearFourDigit));strTemp=strTemp.replace(DefaultTokens.ReplacePlaceholder+NumberFormatDateTime.YearTwoDigit,new spread._DateTimeHelper(value).localeFormat(NumberFormatDateTime.YearTwoDigit));strTemp=dbNumber.ReplaceNumberString(strTemp,dbNumberTemp,false)}return strTemp};return DefaultDateTimeNumberStringConverter})();var NumberFormatDateTime=(function(_super){__extends(NumberFormatDateTime,_super);function NumberFormatDateTime(format,absTimeParts,partLocaleID,dbNumberFormatPart,cultureName){_super.call(this,partLocaleID,dbNumberFormatPart,cultureName);this.baseNumberStringConverter=NumberFormatBase.prototype.NumberStringConverter;this.baseDateTimeFormatInfo=NumberFormatBase.prototype.DateTimeFormatInfo;this.baseCultureName=NumberFormatBase.prototype.CultureName;var self=this;self.validDateTimeFormatString=keyword_null;self.formatString=keyword_null;self.hasJD=false;self.absoluteTime=keyword_null;self.absTimeParts=keyword_null;self.hasYearDelay=false;self.exactlyMatch=false;self._classNames.push("NumberFormatDateTime");self.exactlyMatch=false;self.formatString=self.FixFormat(NumberFormatBase.TrimNotSupportSymbol(format));self.absTimeParts=absTimeParts;self._init(format,absTimeParts,partLocaleID,dbNumberFormatPart)}NumberFormatDateTime.EvaluateFormat=function(format){return NumberFormatBase.ContainsKeywords(format,NumberFormatDateTime.keyWords)};NumberFormatDateTime.prototype._init=function(format,absTimeParts,partLocaleID,dbNumberFormatPart){var self=this;var formatTemp={value:self.formatString};var selfClass=NumberFormatDateTime;if(selfClass.EvaluateFormat(formatTemp.value)){var hasAMPM=self.ProcessAMPM(formatTemp);self.hasJD=self.Replace(formatTemp.value,selfClass.MonthJD,"\""+selfClass.PlaceholderMonthJD+"\"",true,false,formatTemp,false,false);self.Replace(formatTemp.value,selfClass.MonthUnabbreviated,selfClass.StandardMonthUnabbreviated,true,false,formatTemp,false,false);self.Replace(formatTemp.value,selfClass.MonthAbbreviation,selfClass.StandardMonthAbbreviation,true,false,formatTemp,false,false);self.Replace(formatTemp.value,selfClass.MonthTwoDigit,selfClass.StandardMonthTwoDigit,true,false,formatTemp,false,false);self.Replace(formatTemp.value,selfClass.MonthSingleDigit,selfClass.StandardMonthSingleDigit,true,false,formatTemp,false,false);self.Replace(formatTemp.value,selfClass.DayWeekDayAbbreviation,selfClass.StandardDayWeekDayAbbreviation,true,true,formatTemp,false,true);self.Replace(formatTemp.value,selfClass.DayWeekDayUnabbreviated,selfClass.StandardDayWeekDayUnabbreviated,true,true,formatTemp,false,true);self.Replace(formatTemp.value,selfClass.MinuteSingleDigit,selfClass.StandardMinuteSingleDigit,false,true,formatTemp,false,false);if(!hasAMPM){self.Replace(formatTemp.value,selfClass.HoursSingleDigit,selfClass.StandardHourSingleDigit,true,true,formatTemp,false,false);self.Replace(formatTemp.value,selfClass.HoursTwoDigit,selfClass.StandardHourTwoDigit,true,true,formatTemp,false,false)}self.Replace(formatTemp.value,selfClass.SecondSingleDigit,selfClass.StandardSecondSingleDigit,true,true,formatTemp,false,true);if(self.PartDBNumberFormat()&&self.PartLocaleID()){self.hasYearDelay=self.hasYearDelay||self.Replace(formatTemp.value,selfClass.YearFourDigit,"\""+DefaultTokens.ReplacePlaceholder+selfClass.YearFourDigit+"\"",true,false,formatTemp,false,true);self.hasYearDelay=self.hasYearDelay||self.Replace(formatTemp.value,selfClass.YearTwoDigit,"\""+DefaultTokens.ReplacePlaceholder+selfClass.YearTwoDigit+"\"",true,false,formatTemp,false,true)}if(self.absTimeParts){for(var key=0;key<self.absTimeParts.length;key++){var absPart=self.absTimeParts[key];self.Replace(formatTemp.value,absPart.token,DefaultTokens.ReplacePlaceholder+absPart.token,true,true,formatTemp,false,true)}}self.validDateTimeFormatString=formatTemp.value}else
{throw new Error(spread.SR.Exp_FormatIllegal);}};NumberFormatDateTime.prototype._isJanpaneseCulture=function(){var partLocalID=this.PartLocaleID();if(partLocalID!==keyword_null&&partLocalID.CultureInfo()!==keyword_null){if(partLocalID.CultureInfo()===spread._CultureInfo.japanCulture()){return true}}else if(this.CultureName()===spread._CultureInfo.japanCulture().Name()){return true}return false};NumberFormatDateTime.prototype.NumberStringConverter=function(value){if(arguments.length===0){if(this.baseNumberStringConverter()){return this.baseNumberStringConverter()}return NumberFormatDateTime.defaultDateTimeNumberStringConverter}else
{this.baseNumberStringConverter(value);return value}};NumberFormatDateTime.prototype.AbsoluteTime=function(){if(this.absoluteTime){return this.absoluteTime}return NumberFormatDateTime.defaultAbsoluteTime};NumberFormatDateTime.prototype.FormatString=function(){return this.formatString};NumberFormatDateTime.prototype.DateTimeFormatInfo=function(value){var self=this;if(arguments.length===0){if(self.baseDateTimeFormatInfo()){return self.baseDateTimeFormatInfo()}if(self.PartLocaleID()&&self.PartLocaleID().CultureInfo()){return self.PartLocaleID().CultureInfo().DateTimeFormat()}if(self.baseCultureName()){return spread._CultureInfo.getCulture(self.baseCultureName()).DateTimeFormat()}return DefaultTokens.DateTimeFormatInfo()}else
{self.baseDateTimeFormatInfo(value);return value}};NumberFormatDateTime.prototype.ExcelCompatibleFormatString=function(){var self=this;var formatTemp=self.formatString;var selfClass=NumberFormatDateTime;var result={value:formatTemp};self.Replace(formatTemp,selfClass.StandardAMPMSingleDigit,self.CurrentAMPM(),true,true,result,false,true);self.Replace(formatTemp,selfClass.StandardMonthUnabbreviated,selfClass.MonthUnabbreviated,true,false,result,false,true);self.Replace(formatTemp,selfClass.StandardMonthAbbreviation,selfClass.MonthAbbreviation,true,false,result,false,true);self.Replace(formatTemp,selfClass.StandardMonthTwoDigit,selfClass.MonthTwoDigit,true,false,result,false,true);self.Replace(formatTemp,selfClass.StandardMonthSingleDigit,selfClass.MonthSingleDigit,true,false,result,false,true);self.Replace(formatTemp,selfClass.StandardDayWeekDayAbbreviation,selfClass.DayWeekDayAbbreviation,true,true,result,false,true);self.Replace(formatTemp,selfClass.StandardDayWeekDayUnabbreviated,selfClass.DayWeekDayUnabbreviated,true,true,result,false,true);self.Replace(formatTemp,selfClass.StandardMinuteSingleDigit,selfClass.MinuteSingleDigit,false,true,result,false,true);self.Replace(formatTemp,selfClass.StandardHourSingleDigit,selfClass.HoursSingleDigit,true,true,result,false,false);self.Replace(formatTemp,selfClass.StandardHourTwoDigit,selfClass.HoursTwoDigit,true,true,result,false,false);self.Replace(formatTemp,selfClass.StandardSecondSingleDigit,selfClass.SecondSingleDigit,true,true,result,false,true);self.Replace(formatTemp,selfClass.StandardSubSecondThreeDigit,selfClass.SubSecondThreeDigit,true,true,result,false,true);self.Replace(formatTemp,selfClass.StandardSubSecondTwoDigit,selfClass.SubSecondTwoDigit,true,true,result,false,true);self.Replace(formatTemp,selfClass.StandardSubSecondSingleDigit,selfClass.SubSecondSingleDigit,true,true,result,false,true);return result.value};NumberFormatDateTime.prototype.CurrentAMPM=function(){var formatInfo=keyword_null;if(this.DateTimeFormatInfo()){formatInfo=this.DateTimeFormatInfo()}else
{formatInfo=DefaultTokens.DateTimeFormatInfo()}if(formatInfo&&formatInfo.AMDesignator&&formatInfo.AMDesignator!==stringEx.Empty&&formatInfo.PMDesignator&&formatInfo.PMDesignator!==stringEx.Empty){var ampm=stringEx.Format("{0}/{1}",formatInfo.AMDesignator,formatInfo.PMDesignator);return ampm}return NumberFormatDateTime.AMPMTwoDigit};NumberFormatDateTime.prototype.Format=function(obj){if(spread.util.isType(obj,'boolean')){return obj.toString().toUpperCase()}var self=this;var result=stringEx.Empty;var dateTime=keyword_null;try
{try
{dateTime=spread.Calc.Convert.toDateTime(obj);if(!dateTime){result=obj.toString()}}catch(err){result=obj.toString()}if(dateTime){var validDTF=self.validDateTimeFormatString;var fs=self.validDateTimeFormatString.replace(/%/g,"");if(fs==="H"||fs==="h"||fs==="m"||fs==="M"||fs==="d"||fs==="s"||fs==="y"){validDTF="%"+fs;self.validDateTimeFormatString=validDTF}else
{validDTF=fs}if(self.PartLocaleID()&&self.PartLocaleID().CultureInfo()){result=new spread._DateTimeHelper(dateTime).customCultureFormat(validDTF,self.PartLocaleID().CultureInfo())}else if(self.CultureName()){result=new spread._DateTimeHelper(dateTime).customCultureFormat(validDTF,spread._CultureInfo.getCulture(self.CultureName()))}else
{result=new spread._DateTimeHelper(dateTime).localeFormat(validDTF)}if(self.hasJD){var monthName=self._getMonthName(dateTime.getMonth());result=spread.StringHelper.Replace(result,NumberFormatDateTime.PlaceholderMonthJD,monthName.substr(0,1))}if(self.absTimeParts){var span=dateTime-self.AbsoluteTime();for(var key=0;key<self.absTimeParts.length;key++){var absPart=self.absTimeParts[key];var absTimePartString=keyword_null;switch(absPart.TimePartType()){case 0:absTimePartString=Math_floor(span/1000/3600);break;case 1:absTimePartString=Math_floor(span/1000/60);break;case 2:absTimePartString=Math_floor(span/1000);break}if(absTimePartString!==keyword_null&&typeof(absTimePartString)!==keyword_undefined){var tempAbsPart=absPart.token.replace("[","\\[").replace("]","\\]");result=spread.StringHelper.Replace(result,DefaultTokens.ReplacePlaceholder+tempAbsPart,absTimePartString)}}}}}catch(ex){result=spread.FormatConverter.toString(obj)}if(self.NumberStringConverter()){if(self.NumberStringConverter()instanceof DefaultDateTimeNumberStringConverter){result=self.NumberStringConverter().ConvertTo(result,obj,false,self.PartLocaleID(),self.PartDBNumberFormat())}else
{if(self.hasYearDelay){result=spread.StringHelper.Replace(result,DefaultTokens.ReplacePlaceholder+NumberFormatDateTime.YearFourDigit,new spread._DateTimeHelper(dateTime).localeFormat(NumberFormatDateTime.YearFourDigit));result=spread.StringHelper.Replace(result,DefaultTokens.ReplacePlaceholder+NumberFormatDateTime.YearTwoDigit,new spread._DateTimeHelper(dateTime).localeFormat(NumberFormatDateTime.YearTwoDigit))}result=self.NumberStringConverter().ConvertTo(result,obj,true,self.PartLocaleID(),self.PartDBNumberFormat())}}return result};NumberFormatDateTime.prototype._getMonthName=function(monthIndex){var array=["January","February","March","April","May","June","July","August","September","October","November","December"];return array[monthIndex]};NumberFormatDateTime.prototype.Parse=function(s){if(!s||s===stringEx.Empty){return keyword_null}var self=this;var strTemp=NumberHelper.FixJapaneseChars(s);var boolResult=strTemp.toLowerCase();if(boolResult==="true"){return true}else if(boolResult==="false"){return false}if(self.validDateTimeFormatString){var dateTimeResult=spread._DateTimeHelper.parseExact(strTemp,self.validDateTimeFormatString,spread._CultureInfo.getCulture(self.CultureName()));if(dateTimeResult){return dateTimeResult}}if(!self.exactlyMatch){try
{var resultDate=spread.Calc.Convert.toDateTime(strTemp);if(resultDate&&!isNaN(resultDate)){return resultDate}else
{return strTemp}}catch(err){return strTemp}}return keyword_null};NumberFormatDateTime.prototype.FixFormat=function(format){var formatTemp=format;var strBuilder=new spread.StringBuilder;var inComments=false;var hasTime=(spread.StringHelper.IndexOf(formatTemp,NumberFormatDateTime.HoursSingleDigit[0],1)>-1||spread.StringHelper.IndexOf(formatTemp,NumberFormatDateTime.SecondSingleDigit[0],1)>-1);var hasDate=(spread.StringHelper.IndexOf(formatTemp,NumberFormatDateTime.YearTwoDigit[0],1)>-1||spread.StringHelper.IndexOf(formatTemp,NumberFormatDateTime.DaySingleDigit[0],1)>-1);for(var n=0;n<formatTemp.length;n++){var c=formatTemp[n];if(c==='\"'){inComments=!inComments}else
{if(!inComments){if(c==='Y'||c==='D'||c==='S'||c==='E'||c==='G'){c=c.toLowerCase()}else if(c==='M'){if(n>1){if(!DefaultTokens.IsEquals('A',formatTemp[n-1],true)&&!DefaultTokens.IsEquals('P',formatTemp[n-1],true)){c=c.toLowerCase()}}else
{c=c.toLowerCase()}}}}strBuilder.Append(c)}return strBuilder.toString()};NumberFormatDateTime.prototype.ProcessAMPM=function(format){var isHandled=false;if(spread.StringHelper.Contains(format.value,NumberFormatDateTime.AMPMTwoDigit)){format.value=spread.StringHelper.Replace(format.value,NumberFormatDateTime.AMPMTwoDigit,NumberFormatDateTime.StandardAMPMSingleDigit);isHandled=true}var currentDateTimeFormatInfo=this.DateTimeFormatInfo();if(spread.StringHelper.Contains(format.value,NumberFormatDateTime.AMPMSingleDigit)){format.value=spread.StringHelper.Replace(format.value,NumberFormatDateTime.AMPMSingleDigit,NumberFormatDateTime.StandardAMPMSingleDigit);if(currentDateTimeFormatInfo){currentDateTimeFormatInfo.AMDesignator=NumberFormatDateTime.AMPMSingleDigit.substr(0,1);currentDateTimeFormatInfo.PMDesignator=NumberFormatDateTime.AMPMSingleDigit.substr(2,1)}isHandled=true}var currentAMPM=this.CurrentAMPM();if(spread.StringHelper.Contains(format.value,currentAMPM)){format.value=spread.StringHelper.Replace(format.value,currentAMPM,NumberFormatDateTime.StandardAMPMSingleDigit);var ampm=currentAMPM.split('/');if(ampm&&m.length===2){currentDateTimeFormatInfo.AMDesignator=ampm[0];currentDateTimeFormatInfo.PMDesignator=ampm[1]}isHandled=true}return isHandled};NumberFormatDateTime.prototype.Replace=function(format,oldToken,newToken,isReplaceInDateFormat,isReplaceInTimeFormat,result,justSearch,isIgnoreCase){result.value=format;if(isReplaceInDateFormat||isReplaceInTimeFormat){var positions=[];var isInDate=true;var hasTime=(spread.StringHelper.IndexOf(result.value,NumberFormatDateTime.HoursSingleDigit[0],1)>-1||spread.StringHelper.IndexOf(result.value,NumberFormatDateTime.SecondSingleDigit[0],1)>-1);var hasDate=(spread.StringHelper.IndexOf(result.value,NumberFormatDateTime.YearTwoDigit[0],1)>-1||spread.StringHelper.IndexOf(result.value,NumberFormatDateTime.DaySingleDigit[0],1)>-1);if(!hasDate&&hasTime){isInDate=false}var isStartSpecialString=false;var tokenCharIndex=0;var index=0;for(;index<result.value.length;index++){var c=result.value[index];if(DefaultTokens.IsEquals(c,NumberFormatDateTime.HoursSingleDigit[0],true)||DefaultTokens.IsEquals(c,NumberFormatDateTime.SecondSingleDigit[0],true)){isInDate=false}else if(DefaultTokens.IsEquals(c,NumberFormatDateTime.YearTwoDigit[0],true)||DefaultTokens.IsEquals(c,NumberFormatDateTime.DaySingleDigit[0],true)){isInDate=true}if((isReplaceInDateFormat&&DefaultTokens.IsEquals(c,oldToken[tokenCharIndex],isIgnoreCase)&&isInDate)||(isReplaceInTimeFormat&&DefaultTokens.IsEquals(c,oldToken[tokenCharIndex],isIgnoreCase)&&!isInDate)){var isMatch=true;for(var x=0;x<oldToken.length;x++){if(x+index>=format.length||!DefaultTokens.IsEquals(oldToken[x],result.value[x+index],isIgnoreCase)){isMatch=false;break}}var indexLastMatch=index+oldToken.length-1;if(isMatch&&indexLastMatch+1<result.value.length){var lastMatchChar=result.value[indexLastMatch];var tail=-1;for(tail=indexLastMatch+1;tail<result.value.length;tail++){if(!DefaultTokens.IsEquals(lastMatchChar,result.value[tail],isIgnoreCase)){break}}if(tail>indexLastMatch+1){index=tail;isMatch=false}}if(isMatch&&!isStartSpecialString){new spread._ArrayHelper(positions).insert(0,index)}}if(c==='\"'){isStartSpecialString=!isStartSpecialString}}if(positions.length>0){if(!justSearch){for(index=0;index<positions.length;index++){var position=positions[index];result.value=spread.StringHelper.Remove(result.value,position,oldToken.length);result.value=spread.StringHelper.Insert(result.value,position,newToken)}}return true}else
{return false}}return false};NumberFormatDateTime.defaultDateTimeNumberStringConverter=new DefaultDateTimeNumberStringConverter;NumberFormatDateTime.YearTwoDigit="yy";NumberFormatDateTime.YearSingleDigit="y";NumberFormatDateTime.YearFourDigit="yyyy";NumberFormatDateTime.MonthSingleDigit="m";NumberFormatDateTime.MonthTwoDigit="mm";NumberFormatDateTime.MonthAbbreviation="mmm";NumberFormatDateTime.MonthUnabbreviated="mmmm";NumberFormatDateTime.MonthJD="mmmmm";NumberFormatDateTime.DaySingleDigit="d";NumberFormatDateTime.DayTwoDigit="dd";NumberFormatDateTime.DayWeekDayAbbreviation="aaa";NumberFormatDateTime.DayWeekDayUnabbreviated="aaaa";NumberFormatDateTime.HoursSingleDigit="h";NumberFormatDateTime.HoursTwoDigit="hh";NumberFormatDateTime.MinuteSingleDigit="m";NumberFormatDateTime.MinuteTwoDigit="mm";NumberFormatDateTime.SecondSingleDigit="s";NumberFormatDateTime.SecondTwoDigit="ss";NumberFormatDateTime.SubSecondSingleDigit=".0";NumberFormatDateTime.SubSecondTwoDigit=".00";NumberFormatDateTime.SubSecondThreeDigit=".000";NumberFormatDateTime.EraYear="e";NumberFormatDateTime.AMPMTwoDigit="AM/PM";NumberFormatDateTime.AMPMSingleDigit="A/P";NumberFormatDateTime.StandardYearSingleDigit="%y";NumberFormatDateTime.StandardMonthSingleDigit="%M";NumberFormatDateTime.StandardMonthTwoDigit="MM";NumberFormatDateTime.StandardMonthAbbreviation="MMM";NumberFormatDateTime.StandardMonthUnabbreviated="MMMM";NumberFormatDateTime.StandardAMPMSingleDigit="tt";NumberFormatDateTime.StandardMinuteSingleDigit="%m";NumberFormatDateTime.StandardHourSingleDigit="H";NumberFormatDateTime.StandardHourTwoDigit="HH";NumberFormatDateTime.StandardSecondSingleDigit="%s";NumberFormatDateTime.StandardSubSecondSingleDigit=".f";NumberFormatDateTime.StandardSubSecondTwoDigit=".ff";NumberFormatDateTime.StandardSubSecondThreeDigit=".fff";NumberFormatDateTime.StandardDayWeekDayAbbreviation="ddd";NumberFormatDateTime.StandardDayWeekDayUnabbreviated="dddd";NumberFormatDateTime.PlaceholderMonthJD=DefaultTokens.ReplacePlaceholder+"mmmmm";NumberFormatDateTime.defaultAbsoluteTime=new Date(1899,11,30,0,0,0,0);NumberFormatDateTime.keyWords=[NumberFormatDateTime.YearTwoDigit,NumberFormatDateTime.YearFourDigit,NumberFormatDateTime.MonthSingleDigit,NumberFormatDateTime.MonthTwoDigit,NumberFormatDateTime.MonthAbbreviation,NumberFormatDateTime.MonthUnabbreviated,NumberFormatDateTime.MonthJD,NumberFormatDateTime.DaySingleDigit,NumberFormatDateTime.DayTwoDigit,NumberFormatDateTime.DayWeekDayAbbreviation,NumberFormatDateTime.DayWeekDayUnabbreviated,NumberFormatDateTime.HoursSingleDigit,NumberFormatDateTime.HoursTwoDigit,NumberFormatDateTime.MinuteSingleDigit,NumberFormatDateTime.MinuteTwoDigit,NumberFormatDateTime.SecondSingleDigit,NumberFormatDateTime.SecondTwoDigit,"ggg","gg","g","ee","e"];return NumberFormatDateTime})(NumberFormatBase);var DefaultNumberStringConverter=(function(){function DefaultNumberStringConverter(){}DefaultNumberStringConverter.prototype.ConvertTo=function(num,value,isGeneralNumber,locale,dbNumber){if(locale!=keyword_null&&dbNumber!=keyword_null){var dbNumberTemp=locale.GetDBNumber(dbNumber.Type());if(dbNumberTemp!=keyword_null)return dbNumber.ReplaceNumberString(num,dbNumberTemp,isGeneralNumber)}return num};return DefaultNumberStringConverter})();var NumberFormatDigital=(function(_super){__extends(NumberFormatDigital,_super);function NumberFormatDigital(format,partLocaleID,dbNumberFormatPart,cultureName){_super.call(this,partLocaleID,dbNumberFormatPart,cultureName);this.baseNumberStringConverter=NumberFormatBase.prototype.NumberStringConverter;this.baseNumberFormatInfo=NumberFormatBase.prototype.NumberFormatInfo;this.baseCultureName=NumberFormatBase.prototype.CultureName;var self=this;self.numberFormatString=keyword_null;self.fullFormatString=keyword_null;self.isGeneralNumber=false;self.fractionIntegerFormat=keyword_null;self.fractionNumeratorFormat=keyword_null;self.fractionDenominatorFormat=keyword_null;self.excelFormatString=stringEx.Empty;self._classNames.push("NumberFormatDigital");var formatTemp=NumberFormatBase.TrimNotSupportSymbol(format);self.fullFormatString=DefaultTokens.Filter(format,DefaultTokens.LeftSquareBracket,DefaultTokens.RightSquareBracket);self.excelFormatString=formatTemp;if(partLocaleID){var oldFormat=formatTemp;formatTemp=DefaultTokens.ReplaceKeyword(oldFormat,self.PartLocaleID().OriginalToken(),self.PartLocaleID().CurrencySymbol())}if(self.PartDBNumberFormat()){self.excelFormatString=DefaultTokens.ReplaceKeyword(self.excelFormatString,self.PartDBNumberFormat().OriginalToken(),self.PartDBNumberFormat().toString())}formatTemp=DefaultTokens.Filter(formatTemp,DefaultTokens.LeftSquareBracket,DefaultTokens.RightSquareBracket);var solidusIndex=formatTemp.indexOf(DefaultTokens.SolidusSign);if(solidusIndex>-1){formatTemp=spread.StringHelper.Replace(formatTemp,"\\"+DefaultTokens.QuestionMark,DefaultTokens.Zero);var sp=formatTemp.split(DefaultTokens.SolidusSign);if(sp&&sp.length===2){self.fractionDenominatorFormat=sp[1];var left=sp[0];if(left){var kjIndex=left.lastIndexOf(DefaultTokens.Space);if(kjIndex>-1){self.fractionIntegerFormat=left.substr(0,kjIndex);self.fractionNumeratorFormat=left.substr(kjIndex+1,left.length-kjIndex-1)}else
{self.fractionNumeratorFormat=left}}}}self.numberFormatString=formatTemp}NumberFormatDigital.prototype.NumberStringConverter=function(value){var self=this;if(arguments.length===0){if(self.baseNumberStringConverter()){return self.baseNumberStringConverter()}return NumberFormatDigital.defaultNumberStringConverter}else
{self.baseNumberStringConverter(value);return value}};NumberFormatDigital.prototype.FormatString=function(){return this.fullFormatString};NumberFormatDigital.prototype.NumberFormatInfo=function(value){var self=this;if(arguments.length===0){if(self.baseNumberFormatInfo()){return self.baseNumberFormatInfo()}if(self.PartLocaleID()&&self.PartLocaleID().CultureInfo()){return self.PartLocaleID().CultureInfo().NumberFormat()}if(self.baseCultureName()){return spread._CultureInfo.getCulture(self.baseCultureName()).NumberFormat()}return DefaultTokens.NumberFormatInfo()}else
{self.baseNumberFormatInfo(value);return value}};NumberFormatDigital.prototype.IsGeneralNumber=function(value){if(arguments.length===0){return this.isGeneralNumber}else
{this.isGeneralNumber=value;return value}};NumberFormatDigital.prototype.ExcelCompatibleFormatString=function(){return this.excelFormatString};NumberFormatDigital.prototype.Format=function(obj){if(spread.util.isType(obj,'boolean')){return obj.toString().toUpperCase()}var self=this;var num=spread.FormatConverter.ToDouble(obj);if(isNaN(num)||!isFinite(num)||isNaN(obj)){if(typeof obj==='string'){return obj}return keyword_null}var result=self.NaNSymbol();var sb=keyword_null;var cultureInfo;if(self.CultureName()){cultureInfo=spread._CultureInfo.getCulture(self.CultureName())}else
{cultureInfo=spread._CultureInfo.currentCulture()}if(self.fractionNumeratorFormat&&self.fractionDenominatorFormat){var out_integer={value:0.0};var out_numerator={value:0.0};var out_denominator={value:0.0};var d=self.fractionDenominatorFormat.length;if(NumberFormatDigital.GetFraction(num,d,out_integer,out_numerator,out_denominator)){var tempValue=self.GetGCD(out_numerator.value,out_denominator.value);if(tempValue>1){out_numerator.value/=tempValue;out_denominator.value/=tempValue}if(self.fractionIntegerFormat){sb=new spread.StringBuilder;if(out_integer.value!==0){sb.Append(new spread._NumberHelper(out_integer.value).customCultureFormat(self.fractionIntegerFormat,cultureInfo));sb.Append(DefaultTokens.Space)}if(out_integer.value===0&&num<0){sb.Append(DefaultTokens.NegativeSign)}if(num===0){sb.Append("0")}var denominatorFormat=self.fractionDenominatorFormat;var fixedDenominator=parseFloat(denominatorFormat);if(!isNaN(fixedDenominator)){if(fixedDenominator>0){out_numerator.value*=fixedDenominator/out_denominator.value;denominatorFormat=stringEx.Empty;out_denominator.value=fixedDenominator;var numeratorValueRoundUp=Math_ceil(out_numerator.value);var temp=numeratorValueRoundUp-out_numerator.value;if(temp<=0.5&&temp>=0){out_numerator.value=parseFloat(numeratorValueRoundUp.toString())}else
{out_numerator.value=parseFloat((numeratorValueRoundUp-1).toString())}}}var numeratorFormat=self.fractionNumeratorFormat;var fixedNumeratorForma=parseFloat(numeratorFormat);if(!isNaN(fixedNumeratorForma)){if(fixedNumeratorForma===0){var numeratorFormatLength=numeratorFormat.length;var numeratorString=out_numerator.value.toString();var numeratorLength=numeratorString.length;if(numeratorFormatLength>numeratorLength){numeratorFormat=numeratorFormat.substr(0,numeratorFormatLength-(numeratorFormatLength-numeratorLength))}else if(numeratorFormatLength<numeratorLength){numeratorString=numeratorString.substr(0,numeratorLength-(numeratorLength-numeratorFormatLength));out_numerator.value=parseInt(numeratorString,10)}}}if(out_numerator.value!==0){sb.Append(new spread._NumberHelper(out_numerator.value).customCultureFormat(numeratorFormat,cultureInfo).replace(/^0*/,''));sb.Append(DefaultTokens.SolidusSign);sb.Append(new spread._NumberHelper(out_denominator.value).customCultureFormat(denominatorFormat,cultureInfo).replace(/^0*/,''))}return sb.toString()}else
{sb=new spread.StringBuilder;var value=out_integer.value*out_denominator.value+out_numerator.value;var denominatorFormat=self.fractionDenominatorFormat;var fixedDenominator=parseFloat(denominatorFormat);if(fixedDenominator>0){value*=fixedDenominator/out_denominator.value;denominatorFormat=stringEx.Empty;out_denominator.value=fixedDenominator;var numeratorValueRoundUp=Math_ceil(value);var temp=numeratorValueRoundUp-value;if(temp<=0.5&&temp>=0){value=parseFloat(numeratorValueRoundUp.toString())}else
{value=parseFloat((numeratorValueRoundUp-1).toString())}sb.Append(value+DefaultTokens.SolidusSign+out_denominator.value)}else
{sb.Append(new spread._NumberHelper(value).customCultureFormat(self.fractionNumeratorFormat,cultureInfo).replace(/^0*/,''));sb.Append(DefaultTokens.SolidusSign);sb.Append(new spread._NumberHelper(out_denominator.value).customCultureFormat(self.fractionDenominatorFormat,cultureInfo).replace(/^0*/,''))}return sb.toString()}}else
{return num.toString()}}else
{result=new spread._NumberHelper(num).customCultureFormat(self.EncodeNumberFormat(self.numberFormatString),cultureInfo);if(self.NumberStringConverter()){result=self.NumberStringConverter().ConvertTo(result,obj,self.isGeneralNumber,self.PartLocaleID(),self.PartDBNumberFormat())}}return result};NumberFormatDigital.prototype.Parse=function(s){var self=this;s=self.TrimSpecialSymbol(s);s=self.TrimCurrencySymbol(s);if(!s||s===stringEx.Empty){return keyword_null}if(spread.StringHelper.EndsWith(s,DefaultTokens.NumberGroupSeparator)){return s}var strTemp=NumberHelper.FixJapaneseChars(s);if(s.toLowerCase()==="true"){return true}else if(s.toLowerCase()==="false"){return false}var isDecimal=DefaultTokens.IsDecimal(strTemp,self.NumberFormatInfo());var EIndex=spread.StringHelper.IndexOf(strTemp,DefaultTokens.ExponentialSymbol,1);var isE=EIndex>-1;if(self.numberFormatString){var out_percentSignCount={value:0};s=self.TrimPercentSign(s,out_percentSignCount);var str=s;if(isE){str=s.substr(0,EIndex)}if(str[0]===DefaultTokens.NumberFormatInfo().PositiveSign){str=str.substr(1);s=s.substr(1)}var tempS=spread.StringHelper.Replace(str,DefaultTokens.NumberGroupSeparator,"");var index=tempS.indexOf(DefaultTokens.DecimalSeparator);if(index===tempS.lastIndexOf(DefaultTokens.DecimalSeparator)){var strBuilder=new spread.StringBuilder("#,##0");if(index!==-1){strBuilder.Append(".");var decimalLength=tempS.length-index-1;for(var i=0;i<decimalLength;i++){strBuilder.Append("0")}}var newS=new GeneralFormatter(strBuilder.toString()).Format(tempS);if(newS===str){if(isE){s=tempS+s.substr(EIndex)}else
{s=tempS}}}var value=parseFloat(s);var nRegExp=keyword_null;if(value.toString()!==s){var nfi=self.NumberFormatInfo();var decimalSeparator=DefaultTokens.DecimalSeparator;if(nfi){decimalSeparator=nfi.NumberDecimalSeparator}if(!isDecimal&&!isE){nRegExp=new RegExp("^((\\+|-)?\\d+)$","ig")}else if(isDecimal&&!isE){nRegExp=new RegExp("^((\\+|-)?\\d*)"+decimalSeparator+"(\\d*)$","ig")}else if(!isDecimal&&isE){nRegExp=new RegExp("^((\\+|-)?\\d+)((E(\\+|-)?|e(\\+|-)?)\\d+)$","ig")}else if(isDecimal&&isE){nRegExp=new RegExp("^((\\+|-)?\\d*)"+decimalSeparator+"(\\d*)((E(\\+|-)?|e(\\+|-)?)\\d+)$","ig")}}if(!isNaN(value)&&isFinite(value)&&(!nRegExp||nRegExp.test(s))){if(out_percentSignCount.value>0){value=value/parseFloat((100.0*out_percentSignCount.value).toString())}if(value!==0&&Math_abs(value-Math_floor(value))!==0){isDecimal=true}if(isE){isDecimal=true}return self.ToObject(value,isDecimal)}}return keyword_null};NumberFormatDigital.prototype.EncodeNumberFormat=function(format){if(format){var charArray=format.split("");var strBuilder=new spread.StringBuilder;for(var i=0;i<charArray.length-1;){if(charArray[i]==="\\"){strBuilder.Append(charArray[i+1]);i+=2}else
{strBuilder.Append(charArray[i]);i++}}if(i===charArray.length-1){if(charArray[i]!=="\\"){strBuilder.Append(charArray[i])}}format=strBuilder.toString()}return format};NumberFormatDigital.prototype.ToObject=function(value,isDecimal){if(!isDecimal){if(value<=1E+22){return value}else
{return value}}return value};NumberFormatDigital.prototype.TrimPercentSign=function(s,out_count){out_count.value=0;if(!s||s===stringEx.Empty){return s}var strTemp=s;var percentSymbol=DefaultTokens.PercentSymbol;var index=s.indexOf(percentSymbol);if(index===s.length-1&&index===s.lastIndexOf(percentSymbol)){strTemp=spread.StringHelper.Replace(strTemp,percentSymbol,"");out_count.value+=((s.length-strTemp.length)/percentSymbol.length)}return strTemp};NumberFormatDigital.prototype.TrimSpecialSymbol=function(s){if(!s||s===stringEx.Empty){return s}var strTemp=s;var firstDigital=-1;for(var fd=0;fd<strTemp.length;fd++){if(char.IsDigit(strTemp[fd])){firstDigital=fd;break}}var lastDigital=-1;for(var ld=strTemp.length-1;ld>-1;ld--){if(char.IsDigit(strTemp[ld])){lastDigital=ld;break}}for(var n=strTemp.length-1;n>-1;n--){var c=strTemp[n];if(this.IsSpecialSymbol(c)){if(char.IsWhiteSpace(c)){if(n<firstDigital||lastDigital<n){strTemp=spread.StringHelper.Remove(strTemp,n,1)}}else
{strTemp=spread.StringHelper.Remove(strTemp,n,1)}}else
{if(c==='-'||c==='+'){if(n>0){if(strTemp[n-1]!=='e'&&strTemp[n-1]!=='E'&&strTemp[n-1]!=='('&&strTemp[n-1].toString()!==DefaultTokens.NumberFormatInfo().CurrencySymbol){break}}}}}return strTemp};NumberFormatDigital.prototype.IsStandardNumberSymbol=function(c){var formatProvider=this.NumberFormatInfo()?this.NumberFormatInfo():DefaultTokens.NumberFormatInfo();if(formatProvider){var str=c.toString();if(str===formatProvider.CurrencyDecimalSeparator||str===formatProvider.CurrencyGroupSeparator||str===formatProvider.CurrencySymbol||str===formatProvider.NaNSymbol||str===formatProvider.NegativeInfinitySymbol||str===formatProvider.NegativeSign||str===formatProvider.NumberDecimalSeparator||str===formatProvider.NumberGroupSeparator||str===formatProvider.PercentDecimalSeparator||str===formatProvider.PercentGroupSeparator||str===formatProvider.PercentSymbol||str===formatProvider.PerMilleSymbol||str===formatProvider.PositiveInfinitySymbol||str===formatProvider.PositiveSign){return true}}return false};NumberFormatDigital.prototype.IsSpecialSymbol=function(c){if(this.IsStandardNumberSymbol(c)){return false}if(char.IsWhiteSpace(c)){return true}return false};NumberFormatDigital.prototype.TrimCurrencySymbol=function(s){if(!s){return s}var formatProvider=this.NumberFormatInfo()?this.NumberFormatInfo():DefaultTokens.NumberFormatInfo();if(formatProvider){var currencySymbol=formatProvider.CurrencySymbol;var index=s.toString().indexOf(currencySymbol);if(index===0&&index===s.lastIndexOf(currencySymbol)){s=s.substr(1)}}return s};NumberFormatDigital.EvaluateFormat=function(format){return NumberFormatBase.ContainsKeywords(format,NumberFormatDigital.keywords)};NumberFormatDigital.GetFraction=function(value,denominatorDigits,out_integer,out_numerator,out_denominator){return NumberHelper.GetFraction(value,denominatorDigits,out_integer,out_numerator,out_denominator)};NumberFormatDigital.prototype.GetGCD=function(value1,value2){if(value1==0.0)return Math_abs(value2);if(value2==0.0)return Math_abs(value1);var max=Math_max(value1,value2);var min=Math_min(value1,value2);var value3=max%min;while(value3!=0.0){max=min;min=value3;value3=max%min}return Math_abs(min)};NumberFormatDigital.defaultNumberStringConverter=new DefaultNumberStringConverter;NumberFormatDigital.keywords=[DefaultTokens.Exponential1,DefaultTokens.Exponential2,DefaultTokens.NumberSign,DefaultTokens.DecimalSeparator,DefaultTokens.NumberGroupSeparator,DefaultTokens.PercentSymbol,DefaultTokens.Zero,DefaultTokens.SolidusSign];return NumberFormatDigital})(NumberFormatBase);var NumberFormatGeneral=(function(_super){__extends(NumberFormatGeneral,_super);function NumberFormatGeneral(format,partLocaleID,dbNumberFormatPart,cultureName){_super.call(this,partLocaleID,dbNumberFormatPart,cultureName);this.digitalFormat=keyword_null;this.exponentialDigitalFormat=keyword_null;this.fullFormatString=keyword_null;this._classNames.push("NumberFormatGeneral");if(arguments.length>0){if(NumberFormatGeneral.EvaluateFormat(format)){if(format.indexOf(DefaultTokens.Zero)>=0||format.indexOf(DefaultTokens.NumberSign)>=0||format.indexOf(DefaultTokens.DecimalSeparator)>=0||format.indexOf(DefaultTokens.CommercialAt)>=0){throw spread.SR.Exp_FormatIllegal;}this.fullFormatString=format}else
{throw spread.SR.Exp_FormatIllegal;}}else
{this.fullFormatString=NumberFormatBase.General}}NumberFormatGeneral.prototype.DigitalFormat=function(){var self=this;if(!self.digitalFormat){var nfStringTmp=self.fullFormatString;nfStringTmp=DefaultTokens.ReplaceKeyword(nfStringTmp,NumberFormatBase.General,NumberFormatGeneral.GeneralNumber);self.digitalFormat=new NumberFormatDigital(nfStringTmp,self.PartLocaleID(),self.PartDBNumberFormat(),self.CultureName());self.digitalFormat.IsGeneralNumber(true)}return self.digitalFormat};NumberFormatGeneral.prototype.ExponentialDigitalFormat=function(){var self=this;if(!self.exponentialDigitalFormat){self.exponentialDigitalFormat=new NumberFormatDigital("0.#####E+00",self.PartLocaleID(),self.PartDBNumberFormat(),self.CultureName());self.exponentialDigitalFormat.IsGeneralNumber(true)}return self.exponentialDigitalFormat};NumberFormatGeneral.prototype.FormatString=function(){return spread.StringHelper.Replace(this.fullFormatString,NumberFormatGeneral.GeneralPlaceholder,NumberFormatBase.General)};NumberFormatGeneral.prototype.Format=function(obj){var self=this;if(spread.FormatConverter.IsNumber(obj)){var allowS=!self.PartLocaleID()?true:self.PartLocaleID().AllowScience();var d=spread.FormatConverter.ToDouble(obj);if(d!==keyword_undefined&&d!==keyword_null){if((Math_abs(d)>99999999999&&allowS)||(Math_abs(d)<1E-11&&d!==0)){return self.ExponentialDigitalFormat().Format(obj)}else
{return self.DigitalFormat().Format(obj)}}}else if(spread.util.isType(obj,"string")){var formatTmp=spread.StringHelper.Replace(self.FormatString(),'"','');formatTmp=DefaultTokens.TrimEscape(formatTmp);if(formatTmp){return spread.StringHelper.Replace(formatTmp,"General",obj)}return obj}else if(spread.util.isType(obj,"boolean")){return obj.toString().toUpperCase()}return""};NumberFormatGeneral.prototype.Parse=function(s){if(stringEx.IsNullOrEmpty(s)){return keyword_null}var hasMin=false;var minIndex=spread.StringHelper.IndexOf(s,"-");if(minIndex>0){if(!DefaultTokens.IsEquals(s.charAt(minIndex-1),DefaultTokens.ExponentialSymbol,true)){hasMin=true}}if(spread.StringHelper.Contains(s,"/")||hasMin||spread.StringHelper.Contains(s,":")||spread.StringHelper.Contains(s,"-")){var dt=spread._DateTimeHelper.parseLocale(s);if(dt){return dt}}var tmp=s;var result=keyword_null;var hasSignNegative=keyword_null;if(tmp.charAt(0)===DefaultTokens.NegativeSign){hasSignNegative=true}else if(tmp.charAt(0)===DefaultTokens.NumberFormatInfo().PositiveSign){hasSignNegative=false}var hasParenthesis=false;if(hasSignNegative){if(tmp.length>3){if(tmp.charAt(1)===DefaultTokens.LeftParenthesis&&tmp.charAt(tmp.length-1)===DefaultTokens.RightParenthesis){hasParenthesis=true}}}if(hasSignNegative&&hasParenthesis){result=this.DigitalFormat().Parse(spread.StringHelper.Remove(s,0,1));if(result){if(spread.util.isType(result,"number")){return Math_abs(result)*(hasSignNegative?-1:1)}return result}}else
{result=this.DigitalFormat().Parse(s);if(result!==keyword_undefined&&result!==keyword_null){return result}}return s};NumberFormatGeneral.GeneralMonthDay=function(){return["M/d","MMM/d","MMMM/d","d/M","d/MMM","d/MMMM","M-d","MMM-d","MMMM-d","d-M","d-MMM","d-MMMM"]};NumberFormatGeneral.GeneralYearMonth=function(){return["M/y","MMM/y","M/yyyy","MMM/yyyy","M-y","MMM-y","M-yyyy","MMM-yyyy"]};NumberFormatGeneral.GeneralYearMonthDay=function(){return["M/d/y","MMM/d/y","MMMM/d/y","M/d/yyyy","MMM/d/yyyy","MMMM/d/yyyy","d/M/y","d/MMM/y","d/MMMM/y","d/M/yyyy","d/MMM/yyyy","d/MMMM/yyyy","yyyy/M/d","M-d-y","MMM-d-y","MMMM-d-y","M-d-yyyy","MMM-d-yyyy","MMMM-d-yyyy","d-M-y","d-MMM-y","d-MMMM-y","d-M-yyyy","d-MMM-yyyy","d-MMMM-yyyy","yyyy-M-d"]};NumberFormatGeneral.GeneralHourMinute=function(){return["H:m","h:m tt"]};NumberFormatGeneral.GeneralHourMinuteWithDate=function(){return["M/d H:m","MMM/d H:m","MMMM/d H:m","d/M H:m","d/MMM H:m","d/MMMM H:m","M/y H:m","MMM/y H:m","M/yyyy H:m","MMM/yyyy H:m","M/d/y H:m","MMM/d/y H:m","MMMM/d/y H:m","M/d/yyyy H:m","MMM/d/yyyy H:m","MMMM/d/yyyy H:m","M-d H:m","MMM-d H:m","MMMM-d H:m","d-M H:m","d-MMM H:m","d-MMMM H:m","M-y H:m","MMM-y H:m","M-yyyy H:m","MMM-yyyy H:m","M-d-y H:m","MMM-d-y H:m","MMMM-d-y H:m","M-d-yyyy H:m","MMM-d-yyyy H:m","MMMM-d-yyyy H:m","M/d h:m tt","MMM/d h:m tt","MMMM/d h:m tt","d/M h:m tt","d/MMM h:m tt","d/MMMM h:m tt","M/y h:m tt","MMM/y h:m tt","M/yyyy h:m tt","MMM/yyyy h:m tt","M/d/y h:m tt","MMM/d/y h:m tt","MMMM/d/y h:m tt","M/d/yyyy h:m tt","MMM/d/yyyy h:m tt","MMMM/d/yyyy h:m tt","M-d h:m tt","MMM-d h:m tt","MMMM-d h:m tt","d-M h:m tt","d-MMM h:m tt","d-MMMM h:m tt","M-y h:m tt","MMM-y h:m tt","M-yyyy h:m tt","MMM-yyyy h:m tt","M-d-y h:m tt","MMM-d-y h:m tt","MMMM-d-y h:m tt","M-d-yyyy h:m tt","MMM-d-yyyy h:m tt","MMMM-d-yyyy h:m tt"]};NumberFormatGeneral.GeneralHourMinuteSecond=function(){return["H:m:s","h:m:s tt","H:m:s","h:mm:ss tt"]};NumberFormatGeneral.GeneralHourMinuteSecondSubSecond=function(){return["H:m:s.FFF","h:m:s.FFF tt"]};NumberFormatGeneral.GeneralHourMinuteSecondWithDate=function(){return["M/d H:m:s","MMM/d H:m:s","MMMM/d H:m:s","d/M H:m:s","d/MMM H:m:s","d/MMMM H:m:s","M/y H:m:s","MMM/y H:m:s","M/yyyy H:m:s","MMM/yyyy H:m:s","M/d/y H:m:s","MMM/d/y H:m:s","MMMM/d/y H:m:s","M/d/yyyy H:m:s","MMM/d/yyyy H:m:s","MMMM/d/yyyy H:m:s","d/M/y H:m:s","d/MMM/y H:m:s","d/MMMM/y H:m:s","d/M/yyyy H:m:s","d/MMM/yyyy H:m:s","d/MMMM/yyyy H:m:s","yyyy/M/d H:m:s","M-d H:m:s","MMM-d H:m:s","MMMM-d H:m:s","d-M H:m:s","d-MMM H:m:s","d-MMMM H:m:s","M-y H:m:s","MMM-y H:m:s","M-yyyy H:m:s","MMM-yyyy H:m:s","M-d-y H:m:s","MMM-d-y H:m:s","MMMM-d-y H:m:s","M-d-yyyy H:m:s","MMM-d-yyyy H:m:s","MMMM-d-yyyy H:m:s","d-M-y H:m:s","d-MMM-y H:m:s","d-MMMM-y H:m:s","d-M-yyyy H:m:s","d-MMM-yyyy H:m:s","d-MMMM-yyyy H:m:s","yyyy-M-d H:m:s","M/d h:m:s tt","MMM/d h:m:s tt","MMMM/d h:m:s tt","d/M h:m:s tt","d/MMM h:m:s tt","d/MMMM h:m:s tt","M/y h:m:s tt","MMM/y h:m:s tt","M/yyyy h:m:s tt","MMM/yyyy h:m:s tt","M/d/y h:m:s tt","MMM/d/y h:m:s tt","MMMM/d/y h:m:s tt","M/d/yyyy h:m:s tt","MMM/d/yyyy h:m:s tt","MMMM/d/yyyy h:m:s tt","d/M/y h:m:s tt","d/MMM/y h:m:s tt","d/MMMM/y h:m:s tt","d/M/yyyy h:m:s tt","d/MMM/yyyy h:m:s tt","d/MMMM/yyyy h:m:s tt","yyyy/M/d h:m:s tt","M/d/yyyy h:mm:ss tt","M-d h:m:s tt","MMM-d h:m:s tt","MMMM-d h:m:s tt","d-M h:m:s tt","d-MMM h:m:s tt","d-MMMM h:m:s tt","M-y h:m:s tt","MMM-y h:m:s tt","M-yyyy h:m:s tt","MMM-yyyy h:m:s tt","M-d-y h:m:s tt","MMM-d-y h:m:s tt","MMMM-d-y h:m:s tt","M-d-yyyy h:m:s tt","MMM-d-yyyy h:m:s tt","MMMM-d-yyyy h:m:s tt","d-M-y h:m:s tt","d-MMM-y h:m:s tt","d-MMMM-y h:m:s tt","d-M-yyyy h:m:s tt","d-MMM-yyyy h:m:s tt","d-MMMM-yyyy h:m:s tt","yyyy-M-d h:m:s tt"]};NumberFormatGeneral.GeneralHourMinuteSecondSubSecondWithDate=function(){return["M/d H:m:s.FFF","MMM/d H:m:s.FFF","MMMM/d H:m:s.FFF","d/M H:m:s.FFF","d/MMM H:m:s.FFF","d/MMMM H:m:s.FFF","M/y H:m:s.FFF","MMM/y H:m:s.FFF","M/yyyy H:m:s.FFF","MMM/yyyy H:m:s.FFF","d/M/y H:m","d/MMM/y H:m","d/MMMM/y H:m","d/M/yyyy H:m","d/mmm/yyyy H:m","d/MMMM/yyyy H:m","yyyy/M/d H:m","M/d/y H:m:s.FFF","MMM/d/y H:m:s.FFF","MMMM/d/y H:m:s.FFF","M/d/yyyy H:m:s","MMM/d/yyyy H:m:s.FFF","MMMM/d/yyyy H:m:s.FFF","d/M/y H:m:s.FFF","d/MMM/y H:m:s.FFF","d/MMMM/y H:m:s.FFF","d/M/yyyy H:m:s.FFF","d/MMM/yyyy H:m:s.FFF","d/MMMM/yyyy H:m:s.FFF","yyyy/M/d H:m:s.FFF","M-d H:m:s.FFF","MMM-d H:m:s.FFF","MMMM-d H:m:s.FFF","d-M H:m:s.FFF","d-MMM H:m:s.FFF","d-MMMM H:m:s.FFF","M-y H:m:s.FFF","MMM-y H:m:s.FFF","M-yyyy H:m:s.FFF","MMM-Yyyy H:m:s.FFF","d-M-y H:m","d-MMM-y H:m","d-MMMM-y H:m","d-M-yyyy H:m","d-MMM-yyyy H:m","d-MMMM-yyyy H:m","yyyy-M-d H:m","M-d-y H:m:s.FFF","MMM-d-y H:m:s.FFF","MMMM-d-y H:m:s.FFF","M-d-yyyy H:m:s","MMM-d-yyyy H:m:s.FFF","MMMM-d-yyyy H:m:s.FFF","D-M-y H:m:s.FFF","d-MMM-y H:m:s.FFF","d-MMMM-y H:m:s.FFF","D-M-yyyy H:m:s.FFF","d-MMM-yyyy H:m:s.FFF","d-MMMM-yyyy H:m:s.FFF","yyyy-M-d H:m:s.FFF","M/d h:m:s.FFF tt","MMM/d h:m:s.FFF tt","MMMM/d h:m:s.FFF tt","d/M h:m:s.FFF tt","d/MMM h:m:s.FFF tt","d/MMMM h:m:s.FFF tt","M/y h:m:s.FFF tt","MMM/y h:m:s.FFF tt","M/yyyy h:m:s.FFF tt","MMM/yyyy h:m:s.FFF tt","d/M/y h:m tt","d/MMM/y h:m tt","d/MMMM/y h:m tt","d/M/yyyy h:m tt","d/mmm/yyyy h:m tt","d/MMMM/yyyy h:m tt","yyyy/M/d h:m tt","M/d/y h:m:s.FFF tt","MMM/d/y h:m:s.FFF tt","MMMM/d/y h:m:s.FFF tt","M/d/yyyy h:m:s tt","MMM/d/yyyy h:m:s.FFF tt","MMMM/d/yyyy h:m:s.FFF tt","d/M/y h:m:s.FFF tt","d/MMM/y h:m:s.FFF tt","d/MMMM/y h:m:s.FFF tt","d/M/yyyy h:m:s.FFF tt","d/MMM/yyyy h:m:s.FFF tt","d/MMMM/yyyy h:m:s.FFF tt","yyyy/M/d h:m:s.FFF tt","M-d h:m:s.FFF tt","MMM-d h:m:s.FFF tt","MMMM-d h:m:s.FFF tt","d-M h:m:s.FFF tt","d-MMM h:m:s.FFF tt","d-MMMM h:m:s.FFF tt","M-y h:m:s.FFF tt","MMM-y h:m:s.FFF tt","M-yyyy h:m:s.FFF tt","MMM-Yyyy h:m:s.FFF tt","d-M-y h:m tt","d-MMM-y h:m tt","d-MMMM-y h:m tt","d-M-yyyy h:m tt","d-MMM-yyyy h:m tt","d-MMMM-yyyy h:m tt","yyyy-M-d h:m tt","M-d-y h:m:s.FFF tt","MMM-d-y h:m:s.FFF tt","MMMM-d-y h:m:s.FFF tt","M-d-yyyy H:m:s tt","MMM-d-yyyy H:m:s.FFF tt","MMMM-d-yyyy h:m:s.FFF tt","d-M-y h:m:s.FFF tt","d-MMM-y h:m:s.FFF tt","d-MMMM-y h:m:s.FFF tt","d-M-yyyy h:m:s.FFF tt","d-MMM-yyyy h:m:s.FFF tt","d-MMMM-yyyy h:m:s.FFF tt","yyyy-M-d h:m:s.FFF tt"]};NumberFormatGeneral.EvaluateFormat=function(format){if(!format||format===stringEx.Empty){return false}return NumberFormatBase.ContainsKeywords(format,[NumberFormatBase.General.toLowerCase()])};NumberFormatGeneral.GeneralPlaceholder="@NumberFormat";NumberFormatGeneral.GeneralNumber="##################0.################";return NumberFormatGeneral})(NumberFormatBase)})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var __extends=this.__extends||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __};var wijmo;(function(wijmo){(function(spread){spread.feature("conditionalFormat",["core.common","core.globalize","core.stringResource","core.theme","core.imageLoader"]);var keyword_null=null,keyword_undefined=undefined,const_undefined="undefined",Math_min=Math.min,Math_max=Math.max,Math_abs=Math.abs,Math_floor=Math.floor;(function(ConditionType){ConditionType[ConditionType["RelationCondition"]=0]="RelationCondition";ConditionType[ConditionType["NumberCondition"]=1]="NumberCondition";ConditionType[ConditionType["TextCondition"]=2]="TextCondition";ConditionType[ConditionType["ColorCondition"]=3]="ColorCondition";ConditionType[ConditionType["FormulaCondition"]=4]="FormulaCondition";ConditionType[ConditionType["DateCondition"]=5]="DateCondition";ConditionType[ConditionType["DateExCondition"]=6]="DateExCondition";ConditionType[ConditionType["TextLengthCondition"]=7]="TextLengthCondition";ConditionType[ConditionType["Top10Condition"]=8]="Top10Condition";ConditionType[ConditionType["UniqueCondition"]=9]="UniqueCondition";ConditionType[ConditionType["AverageCondition"]=10]="AverageCondition";ConditionType[ConditionType["CellValueCondition"]=11]="CellValueCondition";ConditionType[ConditionType["AreaCondition"]=12]="AreaCondition"})(spread.ConditionType||(spread.ConditionType={}));var ConditionType=spread.ConditionType;(function(RuleType){RuleType[RuleType["ConditionRuleBase"]=0]="ConditionRuleBase";RuleType[RuleType["CellValueRule"]=1]="CellValueRule";RuleType[RuleType["SpecificTextRule"]=2]="SpecificTextRule";RuleType[RuleType["FormulaRule"]=3]="FormulaRule";RuleType[RuleType["DateOccurringRule"]=4]="DateOccurringRule";RuleType[RuleType["Top10Rule"]=5]="Top10Rule";RuleType[RuleType["UniqueRule"]=6]="UniqueRule";RuleType[RuleType["DuplicateRule"]=7]="DuplicateRule";RuleType[RuleType["AverageRule"]=8]="AverageRule";RuleType[RuleType["ScaleRule"]=9]="ScaleRule";RuleType[RuleType["TwoScaleRule"]=10]="TwoScaleRule";RuleType[RuleType["ThreeScaleRule"]=11]="ThreeScaleRule";RuleType[RuleType["DataBarRule"]=12]="DataBarRule";RuleType[RuleType["IconSetRule"]=13]="IconSetRule"})(spread.RuleType||(spread.RuleType={}));var RuleType=spread.RuleType;var ConditionRuleBase=(function(){function ConditionRuleBase(style){var self=this;self.condition=keyword_null;self.ranges=keyword_null;self.style=keyword_null;self._priority=1;self._stopIfTrue=false;self.style=style}ConditionRuleBase.prototype.hasNoReference=function(){return!(this.ranges&&this.ranges.length>0)};ConditionRuleBase.prototype.evaluate=function(evaluator,baseRow,baseColumn,actual){var self=this;if(self.contains(baseRow,baseColumn)){self.initCondition();var baseCoord={baseRow:0,baseCol:0};self.getBaseCoordinate(baseCoord);self.condition.adjustOffset(baseRow-baseCoord.baseRow,baseColumn-baseCoord.baseCol);var result=keyword_null;if(self.condition.evaluate(evaluator,baseRow,baseColumn,actual)){result=self.getExpected()}self.condition.adjustOffset(0,0);return result}return keyword_null};ConditionRuleBase.prototype.contains=function(row,column){var ranges=this.ranges;if(ranges){var count=ranges.length,range;for(var i=0;i<count;i++){range=this.ranges[i];if(range.contains(row,column)){return true}}}return false};ConditionRuleBase.prototype.createCondition=function(){};ConditionRuleBase.prototype.initCondition=function(){if(!this.condition){this.condition=this.createCondition()}};ConditionRuleBase.prototype.priority=function(){return this._priority};ConditionRuleBase.prototype.stopIfTrue=function(value){if(arguments.length===0){return this._stopIfTrue}else
{this._stopIfTrue=value;return this}};ConditionRuleBase.prototype.getExpected=function(){return this.style};ConditionRuleBase.prototype.reset=function(){var self=this;self.ranges=keyword_null;self.condition=keyword_null;self.style=keyword_null;self._stopIfTrue=false;self._priority=1};ConditionRuleBase.prototype.intersects=function(row,column,rowCount,columnCount){var ranges=this.ranges;if(ranges){var count=ranges.length,cs;for(var n=0;n<count;n++){cs=ranges[n];if(cs.intersect(row,column,rowCount,columnCount)){return true}}}return false};ConditionRuleBase.prototype.isScaleRule=function(){return false};ConditionRuleBase.prototype.getBaseCoordinate=function(baseCoord){baseCoord.baseRow=Number.MAX_VALUE;baseCoord.baseCol=Number.MAX_VALUE;var self=this;if(self.ranges&&self.ranges.length>0){for(var i=0;i<self.ranges.length;i++){var range=self.ranges[i];baseCoord.baseRow=Math_min(range.row,baseCoord.baseRow);baseCoord.baseCol=Math_min(range.col,baseCoord.baseCol)}}else
{baseCoord.baseRow=0;baseCoord.baseCol=0}};ConditionRuleBase.prototype._addRows=function(row,rowCount){var self=this;if(self.ranges){var length=self.ranges.length;for(var i=0;i<length;i++){var range=self.ranges[i];if(range.row>=row){self.ranges[i]=new spread.Range(range.row+rowCount,range.col,range.rowCount,range.colCount)}else if(range.row<row&&row<range.row+range.rowCount){self.ranges[i]=new spread.Range(range.row,range.col,range.rowCount+rowCount,range.colCount)}}}};ConditionRuleBase.prototype._addColumns=function(col,colCount){var self=this;if(self.ranges){var length=self.ranges.length;for(var i=0;i<length;i++){var range=self.ranges[i];if(range.col>=col){self.ranges[i]=new spread.Range(range.row,range.col+colCount,range.rowCount,range.colCount)}else if(range.col<col&&col<range.col+range.colCount){self.ranges[i]=new spread.Range(range.row,range.col,range.rowCount,range.colCount+colCount)}}}};ConditionRuleBase.prototype._removeRows=function(row,rowCount){var self=this;if(self.ranges){var delList=[];var length=self.ranges.length;for(var i=0;i<length;i++){var range=self.ranges[i];if(range.row>row){if(range.row+range.rowCount<=row+rowCount){delList.push(range)}else
{self.ranges[i]=new spread.Range(range.row-rowCount,range.col,range.rowCount,range.colCount)}}else if(range.row<=row&&row<range.row+range.rowCount){var newRange=new spread.Range(range.row,range.col,range.rowCount-Math_min(range.row+range.rowCount-row,rowCount),range.colCount);if(newRange.colCount===0||newRange.rowCount===0){delList.push(range)}else
{self.ranges[i]=newRange}}}var len=delList.length;for(var j=0;j<len;j++){var delRange=delList[j];self.ranges.remove(delRange)}}};ConditionRuleBase.prototype._removeColumns=function(col,colCount){var self=this;if(self.ranges){var delList=[];var length=self.ranges.length;for(var i=0;i<length;i++){var range=self.ranges[i];if(range.col>col){if(range.col+range.colCount<=col+colCount){delList.push(range)}else
{self.ranges[i]=new spread.Range(range.row,range.col-colCount,range.rowCount,range.colCount)}}else if(range.col<=col&&col<range.col+range.colCount){var newRange=new spread.Range(range.row,range.col,range.rowCount,range.colCount-Math_min(range.col+range.colCount-col,colCount));if(newRange.colCount===0||newRange.rowCount===0){delList.push(range)}else
{self.ranges[i]=newRange}}}var len=delList.length;for(var j=0;j<len;j++){var delRange=delList[j];self.ranges.remove(delRange)}}};ConditionRuleBase.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"ranges":return value===keyword_null;case"style":return value===keyword_null;case"priority":return value===1;case"stopIfTrue":return value===false;default:return false}};ConditionRuleBase.prototype.toJSON=function(){};ConditionRuleBase.prototype.fromJSON=function(settings){};return ConditionRuleBase})();spread.ConditionRuleBase=ConditionRuleBase;var RelationCondition=(function(){function RelationCondition(compareType,item1,item2){var self=this;self.conditionType="RelationCondition";self.compareType=1;self.item1=keyword_null;self.item2=keyword_null;self.ignoreBlank=false;self._dict=keyword_null;self.compareType=compareType;self.item1=item1;self.item2=item2}RelationCondition.prototype.adjustOffset=function(row,col){};RelationCondition.prototype.create=function(compareType,item1,item2){return new RelationCondition(compareType,item1,item2)};RelationCondition.prototype._getActualValue=function(evaluator,item,baseRow,baseColumn,actualValue){if(evaluator&&item){if(item.conditionType==="ColorCondition"){var style=evaluator.getActualStyle(baseRow,baseColumn);if(style){if(item.compareType===0){actualValue=style.backColor}else if(item.compareType===1){actualValue=style.foreColor}}}}return actualValue};RelationCondition.prototype.evaluate=function(evaluator,baseRow,baseColumn,actualValue1,actualValue2){var self=this;var value1,value2;if(self.item1){self.item1.ignoreBlank=self.ignoreBlank;if(arguments.length<5){value1=self._getActualValue(evaluator,self.item1,baseRow,baseColumn,actualValue1)}else
{value1=actualValue1}}if(self.item2){self.item2.ignoreBlank=self.ignoreBlank;if(arguments.length<5){value2=self._getActualValue(evaluator,self.item2,baseRow,baseColumn,actualValue1)}else
{value2=actualValue2}}var c1,c2;if(self.compareType===1){c1=(self.item1===keyword_undefined||self.item1===keyword_null)?false:self.item1.evaluate(evaluator,baseRow,baseColumn,value1);if(!c1){return false}c2=(self.item2===keyword_undefined||self.item2===keyword_null)?false:self.item2.evaluate(evaluator,baseRow,baseColumn,value2);return c2}else if(self.compareType===0){c1=(self.item1===keyword_undefined||self.item1===keyword_null)?false:self.item1.evaluate(evaluator,baseRow,baseColumn,value1);if(c1){return true}c2=(self.item2===keyword_undefined||self.item2===keyword_null)?false:self.item2.evaluate(evaluator,baseRow,baseColumn,value2);return c2}return false};RelationCondition.prototype.reset=function(){var self=this;self.ignoreBlank=false;self.compareType=1;self.item1=keyword_null;self.item2=keyword_null};RelationCondition.prototype._getConditionTypeDictionary=function(){if(!this._dict){var dict={};dict[0]=RelationCondition;dict[1]=NumberCondition;dict[2]=TextCondition;dict[3]=ColorCondition;dict[4]=FormulaCondition;dict[5]=DateCondition;dict[6]=DateExCondition;dict[7]=TextLengthCondition;dict[8]=Top10Condition;dict[9]=UniqueCondition;dict[10]=AverageCondition;dict[11]=CellValueCondition;dict[12]=AreaCondition;this._dict=dict}return this._dict};RelationCondition.prototype.toJSON=function(){var self=this;var dictData={compareType:self.compareType,item1:self.item1?self.item1.toJSON():keyword_null,item2:self.item2?self.item2.toJSON():keyword_null,conType:0,ignoreBlank:self.ignoreBlank};var setting={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){setting[item]=value}}if($.isEmptyObject(setting)){return keyword_undefined}return setting};RelationCondition.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"ignoreBlank":return value===false;case"item1":return value===keyword_null;case"item2":return value===keyword_null;default:return false}};RelationCondition.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.compareType!==keyword_null&&settings.compareType!==keyword_undefined){self.compareType=settings.compareType}if(settings.item1!==keyword_null&&settings.item1!==keyword_undefined){var condition=keyword_null;var dict=self._getConditionTypeDictionary();var conType1=settings.item1.conType;if(typeof conType1===const_undefined){conType1=0}var conditionClass=dict[conType1];if(conditionClass){condition=new conditionClass;condition.fromJSON(settings.item1)}self.item1=condition}if(settings.item2!==keyword_null&&settings.item2!==keyword_undefined){var condition=keyword_null;var dict=self._getConditionTypeDictionary();var conType2=settings.item2.conType;if(typeof conType2===const_undefined){conType2=0}var conditionClass=dict[conType2];if(conditionClass){condition=new conditionClass;condition.fromJSON(settings.item2)}self.item2=condition}if(settings.ignoreBlank!==keyword_null&&settings.ignoreBlank!==keyword_undefined){self.ignoreBlank=settings.ignoreBlank}};return RelationCondition})();spread.RelationCondition=RelationCondition;var CellValueRule=(function(_super){__extends(CellValueRule,_super);function CellValueRule(operator,value1,value2,style){_super.call(this,style);this.operator=operator;this.value1=(typeof(value1)==="string")?$.trim(value1):value1;this.value2=(typeof(value2)==="string")?$.trim(value2):value2}CellValueRule.prototype.createCondition=function(){var self=this;var formula1=self.isFormula(self.value1)?self.value1.replace("=",""):keyword_null;var expect1=self.isFormula(self.value1)?keyword_null:self.value1;var formula2=self.isFormula(self.value2)?self.value2.replace("=",""):keyword_null;var expect2=self.isFormula(self.value2)?keyword_null:self.value2;var condition1,condition2;var op=self.operator,compareType=keyword_null;if(op===6){condition1=new CellValueCondition(3,self.value1,formula1);condition1.treatNullValueAsZero=true;condition2=new CellValueCondition(5,self.value2,formula2);condition2.treatNullValueAsZero=true;return new RelationCondition(1,condition1,condition2)}else if(op===7){condition1=new CellValueCondition(4,self.value1,formula1);condition1.treatNullValueAsZero=true;condition2=new CellValueCondition(2,self.value2,formula2);condition2.treatNullValueAsZero=true;return new RelationCondition(0,condition1,condition2)}else if(op===0){compareType=0}else if(op===2){compareType=2}else if(op===3){compareType=3}else if(op===4){compareType=4}else if(op===5){compareType=5}else if(op===1){compareType=1}if(compareType!==keyword_null){var t=new CellValueCondition(compareType,self.value1,formula1);t.treatNullValueAsZero=true;return t}return keyword_null};CellValueRule.prototype.reset=function(){var self=this;self.operator=6;self.value1=keyword_null;self.value2=keyword_null;self.style=keyword_null;self._stopIfTrue=false;self._priority=1};CellValueRule.prototype.isFormula=function(val){return(val!==keyword_undefined&&val!==keyword_null)&&(val[0]==="=")};CellValueRule.prototype.toJSON=function(){var self=this;var dictData={ruleType:1,ranges:self.ranges,style:self.style,operator:self.operator,value1:self.value1,value2:self.value2,priority:self._priority,stopIfTrue:self._stopIfTrue};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}if($.isEmptyObject(settings)){return keyword_undefined}return settings};CellValueRule.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.ranges){self.ranges=[];for(var i=0;i<settings.ranges.length;i++){var r=settings.ranges[i];self.ranges.push(new spread.Range(r.row,r.col,r.rowCount,r.colCount))}}if(settings.style){self.style=new spread.Style;self.style.copyFrom(settings.style)}if(settings.operator!==keyword_null&&settings.operator!==keyword_undefined){self.operator=settings.operator}if(settings.value1!==keyword_null&&settings.value1!==keyword_undefined){self.value1=settings.value1}if(settings.value2!==keyword_null&&settings.value2!==keyword_undefined){self.value2=settings.value2}if(settings.priority!==keyword_null&&settings.priority!==keyword_undefined){self._priority=settings.priority}if(settings.stopIfTrue!==keyword_null&&settings.stopIfTrue!==keyword_undefined){self._stopIfTrue=settings.stopIfTrue}};return CellValueRule})(ConditionRuleBase);spread.CellValueRule=CellValueRule;var CellValueCondition=(function(){function CellValueCondition(compareType,expected,formula){var self=this;self.compareType=keyword_null;self.treatNullValueAsZero=false;self.compareType=compareType;self.expected=expected;self.formula=formula}CellValueCondition.prototype.adjustOffset=function(row,col){};CellValueCondition.prototype.getExpected=function(evaluator,baseRow,baseColumn,isArrayFormula){var self=this;if(self.formula&&self.formula.length>0){var calcService=evaluator.getCalcService();if(!calcService){return self.expected}var expr=calcService.parse(self.formula,baseRow,baseColumn);return calcService.evaluateParsedFormula(evaluator._getSheetSource(),expr,baseRow,baseColumn)}else
{return self.expected}};CellValueCondition.prototype.evaluate=function(evaluator,baseRow,baseColumn,actualValue){var expected=this.getExpected(evaluator,baseRow,baseColumn);return this.checkCondition(expected,actualValue)};CellValueCondition.prototype.isSatisfyingCondition=function(value){var expected=this.getExpected(keyword_null,0,0);return this.checkCondition(expected,value)};CellValueCondition.prototype.checkCondition=function(expectedValue,actualValue){var self=this;var dActualValue=0;var isNumber=false;if(typeof expectedValue==="boolean"){var expectedbooleanValue=expectedValue;switch(self.compareType){case 0:return actualValue===expectedValue;case 1:return actualValue!==expectedValue;case 2:return self._compareBool(expectedbooleanValue,actualValue)<0;case 3:return self._compareBool(expectedbooleanValue,actualValue)<=0;case 4:return self._compareBool(expectedbooleanValue,actualValue)>0;case 5:return!!self._compareBool(expectedbooleanValue,actualValue);default:break}}try
{if(actualValue===keyword_undefined||actualValue===keyword_null){if(self.treatNullValueAsZero){isNumber=true;dActualValue=0}else
{isNumber=false;dActualValue=actualValue}}else
{var dValue={value:undefined};if(spread.Calc.Convert.tryToDouble(actualValue,dValue)){dActualValue=dValue.value;isNumber=!isNaN(dActualValue)}else
{isNumber=false}}}catch(err){isNumber=false}if((actualValue===keyword_undefined||actualValue===keyword_null)&&(expectedValue===keyword_undefined||expectedValue===keyword_null)){switch(self.compareType){case 0:case 3:case 5:return true;case 1:case 2:case 4:return false;default:return false}}if(isNumber){var doubleExpectedValue=0.0;var expIsNumber=false;try
{var dValue={value:undefined};if(spread.Calc.Convert.tryToDouble(expectedValue,dValue)){doubleExpectedValue=dValue.value;expIsNumber=true}}catch(ex){}if(!expIsNumber){switch(self.compareType){case 0:return false;case 1:return true}return false}switch(self.compareType){case 0:return dActualValue===doubleExpectedValue;case 1:return dActualValue!==doubleExpectedValue;case 2:return dActualValue>doubleExpectedValue;case 3:return dActualValue>=doubleExpectedValue;case 4:return dActualValue<doubleExpectedValue;case 5:return dActualValue<=doubleExpectedValue}}else if(typeof(actualValue)==="string"){var stringExpectedValue=keyword_null;if(typeof(expectedValue)==="string"){stringExpectedValue=expectedValue}else
{switch(self.compareType){case 0:return false;case 1:return true}return false}var stringActualValue=actualValue;switch(self.compareType){case 0:return stringActualValue===stringExpectedValue;case 1:return stringActualValue!==stringExpectedValue;case 2:return stringExpectedValue<stringActualValue;case 3:return stringExpectedValue<=stringActualValue;case 4:return stringExpectedValue>stringActualValue;case 5:return stringExpectedValue>=stringActualValue}}return false};CellValueCondition.prototype._compareBool=function(value1,value2){if(value1===value2){return 0}else if(value1===false&&value2===true){return-1}else
{return 1}};CellValueCondition.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"treatNullValueAsZero":return value===false;default:return false}};CellValueCondition.prototype.toJSON=function(){var self=this;var dictData={compareType:self.compareType,expected:self.expected,formula:self.formula,conType:11,treatNullValueAsZero:self.treatNullValueAsZero};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}if($.isEmptyObject(settings)){return keyword_undefined}return settings};CellValueCondition.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.compareType!==keyword_null&&settings.compareType!==keyword_undefined){self.compareType=settings.compareType}if(settings.expected!==keyword_null&&settings.expected!==keyword_undefined){self.expected=settings.expected}if(settings.formula!==keyword_null&&settings.formula!==keyword_undefined){self.formula=settings.formula}if(settings.treatNullValueAsZero!==keyword_null&&settings.treatNullValueAsZero!==keyword_undefined){self.treatNullValueAsZero=settings.treatNullValueAsZero}};return CellValueCondition})();spread.CellValueCondition=CellValueCondition;var NumberCondition=(function(){function NumberCondition(compareType,expected,formula){var self=this;self.compareType=0;self.conditionType="NumberCondition";self.ignoreBlank=false;self.integerValue=false;self.compareType=compareType;self.expected=expected;self.formula=(typeof(formula)==="string")?$.trim(formula).replace("=",""):formula}NumberCondition.prototype.evaluate=function(evaluator,baseRow,basecol,actualValue){var expected=this.getExpected(evaluator,baseRow,basecol);if(this.integerValue){if(isNaN(expected)){expected=keyword_null}else
{expected=parseInt(expected,10)}}return this.checkCondition(expected,actualValue)};NumberCondition.prototype.checkCondition=function(expectedValue,actualValue){var self=this;if((actualValue===keyword_undefined||actualValue===keyword_null||actualValue==="")&&self.ignoreBlank){return true}if(isNaN(actualValue)){return false}if(expectedValue===keyword_undefined||expectedValue===keyword_null){if(self.ignoreBlank){return true}else
{expectedValue=0}}var doubleCellValue=0.0;try
{doubleCellValue=parseFloat(actualValue)}catch(e){return false}if(self.integerValue===true){var isValueInteger=((doubleCellValue-Math_floor(doubleCellValue))===0);if(isValueInteger===false){return false}}switch(self.compareType){case 0:return doubleCellValue===expectedValue;case 1:return doubleCellValue!==expectedValue;case 2:return doubleCellValue>expectedValue;case 3:return doubleCellValue>=expectedValue;case 4:return doubleCellValue<expectedValue;case 5:return doubleCellValue<=expectedValue}return false};NumberCondition.prototype.getExpected=function(evaluator,baseRow,basecol){var self=this;if(self.formula&&self.formula.length>0){var calcService=evaluator.getCalcService();if(!calcService){return self.expected}return calcService.evaluate(evaluator._getSheetSource(),self.formula,baseRow,basecol)}else
{return self.expected}};NumberCondition.prototype.reset=function(){var self=this;self.expected=keyword_null;self.ignoreBlank=false;self.compareType=0;self.integerValue=false};NumberCondition.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"ignoreBlank":return value===false;case"integerValue":return value===false;default:return false}};NumberCondition.prototype.toJSON=function(){var self=this;var dictData={compareType:self.compareType,expected:self.expected,formula:self.formula,conType:1,ignoreBlank:self.ignoreBlank,integerValue:self.integerValue};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}if($.isEmptyObject(settings)){return keyword_undefined}return settings};NumberCondition.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.compareType!==keyword_null&&settings.compareType!==keyword_undefined){self.compareType=settings.compareType}if(settings.expected!==keyword_null&&settings.expected!==keyword_undefined){self.expected=settings.expected}if(settings.formula!==keyword_null&&settings.formula!==keyword_undefined){self.formula=settings.formula}if(settings.ignoreBlank!==keyword_null&&settings.ignoreBlank!==keyword_undefined){self.ignoreBlank=settings.ignoreBlank}if(settings.integerValue!==keyword_null&&settings.integerValue!==keyword_undefined){self.integerValue=settings.integerValue}};return NumberCondition})();spread.NumberCondition=NumberCondition;var SpecificTextRule=(function(_super){__extends(SpecificTextRule,_super);function SpecificTextRule(operator,text,style){_super.call(this,style);this.text=text;this.operator=operator}SpecificTextRule.prototype.createCondition=function(){var type;switch(this.operator){case 2:type=2;break;case 3:type=4;break;case 0:type=6;break;case 1:type=7;break;default:type=0;break}var condition=new TextCondition(type,this.text,keyword_null);condition.ignoreCase=true;return condition};SpecificTextRule.prototype.reset=function(){var self=this;self.operator=0;self.text="";self.style=keyword_null;self._stopIfTrue=false;self._priority=1};SpecificTextRule.prototype.toJSON=function(){var self=this;var dictData={ruleType:2,ranges:self.ranges,style:self.style,operator:self.operator,text:self.text,priority:self._priority,stopIfTrue:self._stopIfTrue};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}if($.isEmptyObject(settings)){return keyword_undefined}return settings};SpecificTextRule.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.ranges){self.ranges=[];for(var i=0;i<settings.ranges.length;i++){var r=settings.ranges[i];self.ranges.push(new spread.Range(r.row,r.col,r.rowCount,r.colCount))}}if(settings.style){self.style=new spread.Style;self.style.copyFrom(settings.style)}if(settings.operator!==keyword_null&&settings.operator!==keyword_undefined){self.operator=settings.operator}if(settings.text!==keyword_null&&settings.text!==keyword_undefined){self.text=settings.text}if(settings.priority!==keyword_null&&settings.priority!==keyword_undefined){self._priority=settings.priority}if(settings.stopIfTrue!==keyword_null&&settings.stopIfTrue!==keyword_undefined){self._stopIfTrue=settings.stopIfTrue}};return SpecificTextRule})(ConditionRuleBase);spread.SpecificTextRule=SpecificTextRule;var TextCondition=(function(){function TextCondition(compareType,expected,formula){var self=this;self.forceValue2Text=false;self.useWildCards=true;self.regex=keyword_null;self.ignoreCase=false;self.conditionType="TextCondition";self.questionMarkWildcard="?";self.questionMarkWildcardRegularExpression=".";self.asteriskWildcard="*";self.asteriskWildcardRegularExpression="[.\n]*";self.ignoreBlank=false;self.compareType=compareType;self.expected=expected;self.formula=(typeof(formula)==="string")?$.trim(formula).replace("=",""):formula}TextCondition.prototype.adjustOffset=function(row,col){};TextCondition.prototype.evaluate=function(evaluator,baseRow,baseColumn,actualObj){var self=this;var actual=keyword_null;if(self.forceValue2Text===true||typeof(actualObj)==="string"||typeof(actualObj)==="number"){actual=(actualObj!==keyword_undefined&&actualObj!==keyword_null)?actualObj.toString():""}else
{if(actualObj instanceof Date){if(self.compareType===2||self.compareType===4||self.compareType===6){return false}return self.compareType===3||self.compareType===5||self.compareType===7}actual=(actualObj!==keyword_undefined&&actualObj!==keyword_null)?actualObj.toString():""}if(self.ignoreBlank&&(actual===keyword_undefined||actual===keyword_null||actual==="")){return true}var expected=self.getExpectedString(evaluator,baseRow,baseColumn);if(self.hasWildcard(expected)){if(typeof(actualObj)==="number"){return self.compareType===3||self.compareType===7||self.compareType===5||self.compareType===1}}switch(self.compareType){case 0:return self.isEquals(expected,actual);case 1:return!self.isEquals(expected,actual);case 2:return self.isStartWith(expected,actual);case 3:return!self.isStartWith(expected,actual);case 4:return self.isEndWith(expected,actual);case 5:return!self.isEndWith(expected,actual);case 6:return self.isContains(expected,actual);case 7:return!self.isContains(expected,actual)}return false};TextCondition.prototype.getExpectedString=function(evaluator,baseRow,baseColumn){var obj=this.getExpected(evaluator,baseRow,baseColumn);return(obj===keyword_undefined||obj===keyword_null)?keyword_null:obj.toString()};TextCondition.prototype.getExpected=function(evaluator,baseRow,basecol){var self=this;if(self.formula&&self.formula.length>0){var calcService=evaluator.getCalcService();if(!calcService){return self.expected}var expr=calcService.parse(self.formula,baseRow,basecol);return calcService.evaluateParsedFormula(evaluator._getSheetSource(),expr,baseRow,basecol)}else
{return self.expected}};TextCondition.prototype.hasWildcard=function(text){if(text===keyword_undefined||text===keyword_null||text===""){return false}return(text.indexOf(this.asteriskWildcard)>-1||text.indexOf(this.questionMarkWildcard)>-1)};TextCondition.prototype.isEquals=function(expected,value){var self=this;if(self.useWildCards&&self.hasWildcard(expected)){var regex=self.createEqualsRegex(expected);if(regex){var testValue=(value===keyword_undefined&&value===keyword_null)?"":value;regex.lastIndex=-1;if(testValue!==keyword_undefined&&testValue!==keyword_null){return testValue.search(regex)>-1}}return false}else
{if(value!==keyword_undefined&&value!==keyword_null&&value!==""){var testExpected=(expected!==keyword_undefined&&expected!==keyword_null)?expected:"";if(self.ignoreCase){return testExpected.toLowerCase()===value.toLowerCase()}else
{return testExpected===value}}else
{return expected===keyword_undefined||expected===keyword_null||expected===""}}};TextCondition.prototype.createEqualsRegex=function(expression){var self=this;if(self.regex){return self.regex}expression=self.encodeExpression(expression);var sb=expression;var re=new RegExp("\\"+self.questionMarkWildcard,"g");sb=sb.replace(re,self.questionMarkWildcardRegularExpression);re=new RegExp("\\"+self.asteriskWildcard,"g");sb=sb.replace(re,self.asteriskWildcardRegularExpression);var regex=keyword_null;try
{var options=self.ignoreCase?"ig":"g";regex=new RegExp("^"+sb+"$",options)}catch(ex){return keyword_null}return regex};TextCondition.prototype.encodeExpression=function(expression){if(!expression){return keyword_null}var encodedExpresstion=expression;encodedExpresstion=encodedExpresstion.replace(/\^/g,"\\^");encodedExpresstion=encodedExpresstion.replace(/\$/g,"\\$");encodedExpresstion=encodedExpresstion.replace(/\(/g,"\\(");encodedExpresstion=encodedExpresstion.replace(/\)/g,"\\)");encodedExpresstion=encodedExpresstion.replace(/\[/g,"\\[");encodedExpresstion=encodedExpresstion.replace(/\]/g,"\\]");encodedExpresstion=encodedExpresstion.replace(/\{/g,"\\{");encodedExpresstion=encodedExpresstion.replace(/\}/g,"\\}");encodedExpresstion=encodedExpresstion.replace(/\./g,"\\.");encodedExpresstion=encodedExpresstion.replace(/\+/g,"\\+");encodedExpresstion=encodedExpresstion.replace(/\|/g,"\\|");return encodedExpresstion};TextCondition.prototype.isStartWith=function(expected,value){var self=this;var testValue;if(self.useWildCards&&self.hasWildcard(expected)){var regex=self.createStartWithRegex(expected);if(regex){testValue=(value===keyword_undefined||value===keyword_null)?"":value;regex.lastIndex=-1;if(testValue!==keyword_undefined&&testValue!==keyword_null){return testValue.search(regex)>-1}}return false}else
{if(value!==keyword_undefined&&value!==keyword_null&&value!==""){if(expected===keyword_undefined||expected===keyword_null){return false}var testExpected=expected;testValue=value;if(self.ignoreCase){testExpected=testExpected.toLowerCase();testValue=testValue.toLowerCase()}var result=testValue.match("^"+testExpected);if(result!==keyword_undefined&&result!==keyword_null&&result.length>0){return result[0]===testExpected}else
{return false}}else
{return expected===keyword_undefined||expected===keyword_null||expected===""}}};TextCondition.prototype.createStartWithRegex=function(expression){var self=this;if(self.regex){return self.regex}expression=self.encodeExpression(expression);var sb=expression;var re=new RegExp("\\"+self.questionMarkWildcard,"g");sb=sb.replace(re,self.questionMarkWildcardRegularExpression);re=new RegExp("\\"+self.asteriskWildcard,"g");sb=sb.replace(re,self.asteriskWildcardRegularExpression);var regex=keyword_null;try
{var options=self.ignoreCase?"ig":"g";if(expression[0]===self.asteriskWildcard){regex=new RegExp(sb,options)}else
{regex=new RegExp("^"+sb,options)}}catch(ex){return keyword_null}return regex};TextCondition.prototype.isEndWith=function(expected,value){var self=this;var testValue;if(self.useWildCards&&self.hasWildcard(expected)){var regex=self.createEndWithRegex(expected);if(regex){testValue=(value===keyword_undefined||value===keyword_null)?"":value;regex.lastIndex=-1;if(testValue!==keyword_undefined&&testValue!==keyword_null){return testValue.search(regex)>-1}}return false}else
{if(value!==keyword_undefined&&value!==keyword_null&&value!==""){if(expected===keyword_undefined||expected===keyword_null){return false}var testExpected=expected;testValue=value;if(self.ignoreCase){testExpected=testExpected.toLowerCase();testValue=testValue.toLowerCase()}var result=testValue.match(testExpected+"$");if(result!==keyword_undefined&&result!==keyword_null&&result.length>0){return result[0]===testExpected}else
{return false}}else
{return expected===keyword_undefined||expected===keyword_null||expected===""}}};TextCondition.prototype.createEndWithRegex=function(expression){var self=this;if(self.regex){return self.regex}expression=self.encodeExpression(expression);var sb=expression;var re=new RegExp("\\"+self.questionMarkWildcard,"g");sb=sb.replace(re,self.questionMarkWildcardRegularExpression);re=new RegExp("\\"+self.asteriskWildcard,"g");sb=sb.replace(re,self.asteriskWildcardRegularExpression);var regex=keyword_null;try
{var options=self.ignoreCase?"ig":"g";if(expression[expression.length-1]===self.asteriskWildcard){regex=new RegExp(sb,options)}else
{regex=new RegExp(sb+"$",options)}}catch(ex){return keyword_null}return regex};TextCondition.prototype.isContains=function(expected,value){var self=this;var testValue;if(self.useWildCards&&self.hasWildcard(expected)){var regex=self.createContainsRegex(expected);if(regex){testValue=(value===keyword_undefined||value===keyword_null)?"":value;regex.lastIndex=-1;if(testValue!==keyword_undefined&&testValue!==keyword_null){return testValue.search(regex)>-1}}return false}else
{if(value!==keyword_undefined&&value!==keyword_null&&value!==""){if(expected===keyword_undefined||expected===keyword_null){return false}var testExpected=expected;testValue=value;if(self.ignoreCase){testExpected=testExpected.toLowerCase();testValue=testValue.toLowerCase()}return testValue.indexOf(testExpected)>-1}else
{return expected===keyword_undefined||expected===keyword_null||expected===""}}};TextCondition.prototype.createContainsRegex=function(expression){var self=this;if(self.regex){return self.regex}expression=self.encodeExpression(expression);var sb=expression;var re=new RegExp("\\"+self.questionMarkWildcard,"g");sb=sb.replace(re,self.questionMarkWildcardRegularExpression);re=new RegExp("\\"+self.asteriskWildcard,"g");sb=sb.replace(re,self.asteriskWildcardRegularExpression);var regex=keyword_null;try
{var options=self.ignoreCase?"ig":"g";regex=new RegExp(sb,options)}catch(ex){return keyword_null}return regex};TextCondition.prototype.reset=function(){var self=this;self.expected=keyword_null;self.ignoreBlank=false;self.compareType=0;self.useWildCards=true;self.ignoreCase=false;self.forceValue2Text=false};TextCondition.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"forceValue2Text":return value===false;case"useWildCards":return value===true;case"ignoreCase":return value===false;case"regex":return value===keyword_null;case"ignoreBlank":return value===false;default:return false}};TextCondition.prototype.toJSON=function(){var self=this;var dictData={compareType:self.compareType,expected:self.expected,formula:self.formula,forceValue2Text:self.forceValue2Text,useWildCards:self.useWildCards,ignoreCase:self.ignoreCase,regex:self.regex,conType:2,ignoreBlank:self.ignoreBlank};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};TextCondition.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.compareType!==keyword_null&&settings.compareType!==keyword_undefined){self.compareType=settings.compareType}if(settings.expected!==keyword_null&&settings.expected!==keyword_undefined){self.expected=settings.expected}if(settings.formula!==keyword_null&&settings.formula!==keyword_undefined){self.formula=settings.formula}if(settings.forceValue2Text!==keyword_null&&settings.forceValue2Text!==keyword_undefined){self.forceValue2Text=settings.forceValue2Text}if(settings.useWildCards!==keyword_null&&settings.useWildCards!==keyword_undefined){self.useWildCards=settings.useWildCards}if(settings.ignoreCase!==keyword_null&&settings.ignoreCase!==keyword_undefined){self.ignoreCase=settings.ignoreCase}if(settings.regex!==keyword_null&&settings.regex!==keyword_undefined){self.regex=settings.regex}if(settings.ignoreBlank!==keyword_null&&settings.ignoreBlank!==keyword_undefined){self.ignoreBlank=settings.ignoreBlank}};return TextCondition})();spread.TextCondition=TextCondition;var ColorCondition=(function(){function ColorCondition(compareType,expected){this.conditionType="ColorCondition";this.ignoreBlank=false;this.compareType=compareType;this.expected=expected}ColorCondition.prototype.evaluate=function(evaluator,baseRow,baseColumn,actualObj){return this.isEqualsColor(evaluator,actualObj)};ColorCondition.prototype.isEqualsColor=function(evaluator,actualObj){var self=this;var expectedColor=self.getColorFromString(self.expected);if(expectedColor!==keyword_undefined&&expectedColor!==keyword_null&&expectedColor!==""){var actualColor=self.getColorFromString(actualObj);if(actualColor!==keyword_undefined&&actualColor!==keyword_null&&actualColor!==""){return actualColor.a===expectedColor.a&&actualColor.r===expectedColor.r&&actualColor.g===expectedColor.g&&actualColor.b===expectedColor.b}else
{var defaultColor;if(self.compareType===0){if(evaluator&&evaluator.getDefaultStyle){defaultColor=evaluator.getDefaultStyle().backColor}}else if(self.compareType===1){if(evaluator&&evaluator.getDefaultStyle){defaultColor=evaluator.getDefaultStyle().foreColor}}if(defaultColor){return expectedColor.a===defaultColor.a&&expectedColor.r===defaultColor.r&&expectedColor.g===defaultColor.g&&expectedColor.b===defaultColor.b}}}else if(self.ignoreBlank){return true}return false};ColorCondition.prototype.getColorFromString=function(colorStr){return(colorStr===keyword_undefined||colorStr===keyword_null||colorStr==="")?keyword_null:spread._Color.parse(colorStr)};ColorCondition.prototype.reset=function(){this.expected=keyword_null;this.ignoreBlank=false;this.compareType=0};ColorCondition.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"ignoreBlank":return value===false;default:return false}};ColorCondition.prototype.toJSON=function(){var self=this;var dictData={compareType:self.compareType,expected:self.expected,conType:3,ignoreBlank:self.ignoreBlank};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};ColorCondition.prototype.fromJSON=function(settings){if(!settings){return}if(settings.compareType!==keyword_null&&settings.compareType!==keyword_undefined){this.compareType=settings.compareType}if(settings.expected!==keyword_null&&settings.expected!==keyword_undefined){this.expected=settings.expected}if(settings.ignoreBlank!==keyword_null&&settings.ignoreBlank!==keyword_undefined){this.ignoreBlank=settings.ignoreBlank}};return ColorCondition})();spread.ColorCondition=ColorCondition;var FormulaRule=(function(_super){__extends(FormulaRule,_super);function FormulaRule(formula,style){_super.call(this,style);if(formula&&typeof(formula)!=="string"){throw new Error(spread.SR.Exp_InvalidArgument);}this.formula=formula}FormulaRule.prototype.createCondition=function(){var self=this;var condition=new FormulaCondition(4,(!self.formula||self.formula==="")?keyword_null:self.formula);if(self.ranges&&self.ranges.length>0){condition._baseRow=self.ranges[0].row;condition._baseCol=self.ranges[0].col}return condition};FormulaRule.prototype.reset=function(){var self=this;self.formula=keyword_null;self.style=keyword_null;self._stopIfTrue=false;self._priority=1};FormulaRule.prototype.isFormula=function(val){return(val)&&(val[0]==="=")};FormulaRule.prototype.toJSON=function(){var self=this;var dictData={ruleType:3,ranges:self.ranges,style:self.style,formula:self.formula,priority:self._priority,stopIfTrue:self._stopIfTrue};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};FormulaRule.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.ranges){self.ranges=[];for(var i=0;i<settings.ranges.length;i++){var r=settings.ranges[i];self.ranges.push(new spread.Range(r.row,r.col,r.rowCount,r.colCount))}}if(settings.style){self.style=new spread.Style;self.style.copyFrom(settings.style)}if(settings.formula!==keyword_null&&settings.formula!==keyword_undefined){self.formula=settings.formula}if(settings.priority!==keyword_null&&settings.priority!==keyword_undefined){self._priority=settings.priority}if(settings.stopIfTrue!==keyword_null&&settings.stopIfTrue!==keyword_undefined){self._stopIfTrue=settings.stopIfTrue}};return FormulaRule})(ConditionRuleBase);spread.FormulaRule=FormulaRule;var FormulaCondition=(function(){function FormulaCondition(customValueType,formula){var self=this;self.expected=keyword_null;self.ignoreBlank=false;self.conditionType="FormulaCondition";self._baseRow=keyword_null;self._baseCol=keyword_null;self._expr=keyword_null;self.customValueType=customValueType;var revisedFormula=formula;if(typeof(revisedFormula)==="string"){var temp=$.trim(revisedFormula);if(temp[0]==="="){revisedFormula=temp.substr(1)}else
{revisedFormula=temp}}self.formula=revisedFormula}FormulaCondition.prototype.adjustOffset=function(row,col){};FormulaCondition.prototype.evaluate=function(evaluator,baseRow,baseColumn,actualObj){if(!spread.util.hasCalc()){return false}var self=this;if(self.customValueType===4){var expected=self.getExpected(evaluator,baseRow,baseColumn);if(self.ignoreBlank&&(expected===keyword_undefined||expected===keyword_null||expected==="")){return true}try
{return spread.Calc.Convert.toBool(expected)}catch(err){return false}}else
{var isError=spread.Calc.Convert.isError;switch(self.customValueType){case 0:return(actualObj===keyword_undefined||actualObj===keyword_null||actualObj==="");case 1:return(actualObj!==keyword_undefined&&actualObj!==keyword_null&&actualObj!=="");case 2:return isError(actualObj);case 3:return!isError(actualObj)}}return false};FormulaCondition.prototype.getExpected=function(evaluator,baseRow,baseCol){var self=this;if(self.formula&&self.formula.length>0){var calcService=evaluator.getCalcService();if(!calcService){return self.expected}if(!self._expr){if((self._baseRow===keyword_undefined||self._baseRow===keyword_null)&&(self._baseCol===keyword_undefined||self._baseCol===keyword_null)){self._baseRow=baseRow;self._baseCol=baseCol}self._expr=calcService.parse(self.formula,self._baseRow,self._baseCol)}var v=calcService.evaluateParsedFormula(evaluator._getSheetSource(),self._expr,baseRow,baseCol,true);var rowCount,colCount,resultArray,r,c;if(v instanceof spread.Calc.Reference){rowCount=v.getRowCount(0);colCount=v.getColumnCount(0);resultArray=[];for(r=0;r<rowCount;r++){resultArray[r]=[];for(c=0;c<colCount;c++){resultArray[r][c]=v.getValue(0,r,c)}}v=resultArray}else if(v instanceof spread.Calc.Array){rowCount=v.getRowCount();colCount=v.getColumnCount();resultArray=[];for(r=0;r<rowCount;r++){resultArray[r]=[];for(c=0;c<colCount;c++){resultArray[r][c]=v.getValue(r,c)}}v=resultArray}if(v instanceof Array){rowCount=v.length;colCount=v[0].length;if(rowCount===1&&colCount===1){return v[0][0]}var offsetRow=baseRow-self._baseRow;var offsetCol=baseCol-self._baseCol;if(offsetRow<rowCount&&offsetCol<colCount){return v[offsetRow][offsetCol]}else
{return spread.Calc.Errors.NotAvailable}}return v}else
{return self.expected}};FormulaCondition.prototype.reset=function(){var self=this;self.expected=keyword_null;self.ignoreBlank=false;self.customValueType=0;self._expr=keyword_null;self._baseRow=keyword_null;self._baseCol=keyword_null};FormulaCondition.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"expected":return value===keyword_null;case"ignoreBlank":return value===false;default:return false}};FormulaCondition.prototype.toJSON=function(){var self=this;var dictData={customValueType:self.customValueType,expected:self.expected,formula:self.formula,conType:4,ignoreBlank:self.ignoreBlank};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};FormulaCondition.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.customValueType!==keyword_null&&settings.customValueType!==keyword_undefined){self.customValueType=settings.customValueType}if(settings.expected!==keyword_null&&settings.expected!==keyword_undefined){self.expected=settings.expected}if(settings.formula!==keyword_null&&settings.formula!==keyword_undefined){self.formula=settings.formula}if(settings.ignoreBlank!==keyword_null&&settings.ignoreBlank!==keyword_undefined){self.ignoreBlank=settings.ignoreBlank}};return FormulaCondition})();spread.FormulaCondition=FormulaCondition;var DateCondition=(function(){function DateCondition(compareType,expected,formula){var self=this;self.conditionType="DateCondition";self.ignoreBlank=false;self.compareType=compareType;self.expected=expected;self.formula=(typeof(formula)==="string")?$.trim(formula).replace("=",""):formula}DateCondition.prototype.evaluate=function(evaluator,baseRow,baseColumn,actualObj){var self=this;if(actualObj===keyword_undefined||actualObj===keyword_null||actualObj===""){if(self.ignoreBlank){return true}}if(!(actualObj instanceof Date)){return false}var expected=self.getExpectedDateTime(evaluator,baseRow,baseColumn);if(expected===keyword_undefined||expected===keyword_null){return!!self.ignoreBlank}switch(self.compareType){case 0:return self.isEquals(expected,actualObj);case 1:return!self.isEquals(expected,actualObj);case 4:return self.isAfter(expected,actualObj);case 5:return self.isAfter(expected,actualObj)||self.isEquals(expected,actualObj);case 2:return self.isBefore(expected,actualObj);case 3:return self.isBefore(expected,actualObj)||self.isEquals(expected,actualObj)}return false};DateCondition.prototype.getExpectedDateTime=function(evaluator,baseRow,basecol){var obj=this.getExpected(evaluator,baseRow,basecol);if(obj instanceof Date){return obj}else if(typeof(obj)==="string"){return spread._DateTimeHelper.parseLocale(obj)}return keyword_null};DateCondition.prototype.getExpected=function(evaluator,baseRow,basecol){var self=this;if(self.formula&&self.formula.length>0){var calcService=evaluator.getCalcService();if(!calcService){return self.expected}var expr=calcService.parse(self.formula,baseRow,basecol);return calcService.evaluateParsedFormula(evaluator._getSheetSource(),expr,baseRow,basecol)}else
{return self.expected}};DateCondition.prototype.isEquals=function(expectedValue,value){return(expectedValue.getYear()===value.getYear()&&expectedValue.getMonth()===value.getMonth()&&expectedValue.getDate()===value.getDate())};DateCondition.prototype.isAfter=function(expectedValue,value){var date=this.createDayEnding(expectedValue);return value>date};DateCondition.prototype.createDayEnding=function(datetime){return new Date(datetime.getFullYear(),datetime.getMonth(),datetime.getDate(),23,59,59,999)};DateCondition.prototype.isBefore=function(expectedValue,value){var date=this.createDayBeginning(expectedValue);return value<date};DateCondition.prototype.createDayBeginning=function(datetime){return new Date(datetime.getFullYear(),datetime.getMonth(),datetime.getDate(),0,0,0,0)};DateCondition.prototype.reset=function(){this.expected=keyword_null;this.ignoreBlank=false;this.compareType=0};DateCondition.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"ignoreBlank":return value===false;default:return false}};DateCondition.prototype.toJSON=function(){var self=this;var dictData={compareType:self.compareType,expected:self.expected,formula:self.formula,conType:5,ignoreBlank:self.ignoreBlank};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};DateCondition.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.compareType!==keyword_null&&settings.compareType!==keyword_undefined){self.compareType=settings.compareType}if(settings.expected!==keyword_null&&settings.expected!==keyword_undefined){if($.type(settings.expected)==="string"){self.expected=new Date(settings.expected)}else
{self.expected=settings.expected}}if(settings.formula!==keyword_null&&settings.formula!==keyword_undefined){self.formula=settings.formula}if(settings.ignoreBlank!==keyword_null&&settings.ignoreBlank!==keyword_undefined){self.ignoreBlank=settings.ignoreBlank}};return DateCondition})();spread.DateCondition=DateCondition;var DateOccurringRule=(function(_super){__extends(DateOccurringRule,_super);function DateOccurringRule(type,style){_super.call(this,style);this.type=type}DateOccurringRule.prototype.createCondition=function(){return new DateExCondition(this.type)};DateOccurringRule.prototype.reset=function(){var self=this;self.type=0;self.style=keyword_null;self._stopIfTrue=false;self._priority=1};DateOccurringRule.prototype.toJSON=function(){var self=this;var dictData={ruleType:4,ranges:self.ranges,style:self.style,type:self.type,priority:self._priority,stopIfTrue:self._stopIfTrue};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};DateOccurringRule.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.ranges){self.ranges=[];for(var i=0;i<settings.ranges.length;i++){var r=settings.ranges[i];self.ranges.push(new spread.Range(r.row,r.col,r.rowCount,r.colCount))}}if(settings.style){self.style=new spread.Style;self.style.copyFrom(settings.style)}if(settings.type!==keyword_null&&settings.type!==keyword_undefined){self.type=settings.type}if(settings.priority!==keyword_null&&settings.priority!==keyword_undefined){self._priority=settings.priority}if(settings.stopIfTrue!==keyword_null&&settings.stopIfTrue!==keyword_undefined){self._stopIfTrue=settings.stopIfTrue}};return DateOccurringRule})(ConditionRuleBase);spread.DateOccurringRule=DateOccurringRule;var DateExCondition=(function(){function DateExCondition(expected){var self=this;self.ignoreBlank=false;self.formula=keyword_null;self.expectTypeId=0;self.conditionType="DateExCondition";self.expected=expected}DateExCondition.prototype.adjustOffset=function(row,col){};DateExCondition.prototype.evaluate=function(evaluator,baseRow,baseColumn,actualObj){var expected=this.getExpectedInt(evaluator,baseRow,baseColumn);if(expected!==keyword_undefined&&expected!==keyword_null){return this.checkCondition(expected,actualObj)}return false};DateExCondition.prototype.getExpectedInt=function(evaluator,baseRow,baseColumn){var obj=this.getExpected(evaluator,baseRow,baseColumn);obj=parseInt(obj,10);return isNaN(obj)?keyword_null:obj};DateExCondition.prototype.getExpected=function(evaluator,baseRow,basecol){var self=this;if(self.formula&&self.formula.length>0){var calcService=evaluator.getCalcService();if(!calcService){return self.expected}var expr=calcService.parse(self.formula,baseRow,basecol);return calcService.evaluateParsedFormula(evaluator._getSheetSource(),expr,baseRow,basecol)}else
{return self.expected}};DateExCondition.prototype.checkCondition=function(expected,actualValue){var self=this;var actual=actualValue;if(self.ignoreBlank&&(actual===keyword_undefined||actual===keyword_null||actual==="")){return true}try
{actual=spread.Calc.Convert.toDateTime(actual)}catch(err){return false}var expectedNumber;if(self.expectTypeId===0){var from=keyword_null;var to=keyword_null;var now=new Date;var now2=new Date(now.getFullYear(),now.getMonth(),now.getDate(),now.getHours(),now.getMinutes(),now.getSeconds(),now.getMilliseconds());switch(expected){case 3:now2.setDate(now2.getDate()-6);from=new Date(now2.getFullYear(),now2.getMonth(),now2.getDate(),0,0,0,0);to=new Date(now.getFullYear(),now.getMonth(),now.getDate(),23,59,59,999);break;case 1:now2.setDate(now2.getDate()-1);from=new Date(now2.getFullYear(),now2.getMonth(),now2.getDate(),0,0,0,0);to=new Date(now2.getFullYear(),now2.getMonth(),now2.getDate(),23,59,59,999);break;case 0:from=new Date(now.getFullYear(),now.getMonth(),now.getDate(),0,0,0,0);to=new Date(now.getFullYear(),now.getMonth(),now.getDate(),23,59,59,999);break;case 2:now2.setDate(now2.getDate()+1);from=new Date(now2.getFullYear(),now2.getMonth(),now2.getDate(),0,0,0,0);to=new Date(now2.getFullYear(),now2.getMonth(),now2.getDate(),23,59,59,999);break;case 8:var firstDayOfLastWeek=now;firstDayOfLastWeek.setDate(now.getDate()-now.getDay()-7);var lastDayOfLastWeek=now2;lastDayOfLastWeek.setDate(now2.getDate()-now2.getDay()-1);from=new Date(firstDayOfLastWeek.getFullYear(),firstDayOfLastWeek.getMonth(),firstDayOfLastWeek.getDate(),0,0,0,0);to=new Date(lastDayOfLastWeek.getFullYear(),lastDayOfLastWeek.getMonth(),lastDayOfLastWeek.getDate(),23,59,59,999);break;case 7:var firstDayOfThisWeek=now;firstDayOfThisWeek.setDate(now.getDate()-now.getDay());var lastDayOfThisWeek=now2;lastDayOfThisWeek.setDate(now2.getDate()-now2.getDay()+6);from=new Date(firstDayOfThisWeek.getFullYear(),firstDayOfThisWeek.getMonth(),firstDayOfThisWeek.getDate(),0,0,0,0);to=new Date(lastDayOfThisWeek.getFullYear(),lastDayOfThisWeek.getMonth(),lastDayOfThisWeek.getDate(),23,59,59,999);break;case 9:var firstDayOfNextWeek=now;firstDayOfNextWeek.setDate(now.getDate()-now.getDay()+7);var lastDayOfNextWeek=now2;lastDayOfNextWeek.setDate(now2.getDate()-now2.getDay()+13);from=new Date(firstDayOfNextWeek.getFullYear(),firstDayOfNextWeek.getMonth(),firstDayOfNextWeek.getDate(),0,0,0,0);to=new Date(lastDayOfNextWeek.getFullYear(),lastDayOfNextWeek.getMonth(),lastDayOfNextWeek.getDate(),23,59,59,999);break;case 5:var firstDayOfLastMonth=now;firstDayOfLastMonth.setDate(1);firstDayOfLastMonth.setMonth(now.getMonth()-1);var lastDayOfLastMonth=now2;lastDayOfLastMonth.setDate(0);from=new Date(firstDayOfLastMonth.getFullYear(),firstDayOfLastMonth.getMonth(),firstDayOfLastMonth.getDate(),0,0,0,0);to=new Date(lastDayOfLastMonth.getFullYear(),lastDayOfLastMonth.getMonth(),lastDayOfLastMonth.getDate(),23,59,59,999);break;case 4:var firstDayOfThisMonth=now;firstDayOfThisMonth.setDate(1);var lastDayOfThisMonth=now2;lastDayOfThisMonth.setDate(1);lastDayOfThisMonth.setMonth(now2.getMonth()+1);lastDayOfThisMonth.setDate(0);from=new Date(firstDayOfThisMonth.getFullYear(),firstDayOfThisMonth.getMonth(),firstDayOfThisMonth.getDate(),0,0,0,0);to=new Date(lastDayOfThisMonth.getFullYear(),lastDayOfThisMonth.getMonth(),lastDayOfThisMonth.getDate(),23,59,59,999);break;case 6:var firstDayOfNextMonth=now;firstDayOfNextMonth.setDate(1);firstDayOfNextMonth.setMonth(now.getMonth()+1);var lastDayOfNextMonth=now2;lastDayOfNextMonth.setDate(1);lastDayOfNextMonth.setMonth(now2.getMonth()+2);lastDayOfNextMonth.setDate(0);from=new Date(firstDayOfNextMonth.getFullYear(),firstDayOfNextMonth.getMonth(),firstDayOfNextMonth.getDate(),0,0,0,0);to=new Date(lastDayOfNextMonth.getFullYear(),lastDayOfNextMonth.getMonth(),lastDayOfNextMonth.getDate(),23,59,59,999);break}if(from!==keyword_undefined&&from!==keyword_null&&to!==keyword_undefined&&to!==keyword_null){var condition1=new DateCondition(5,from,keyword_null);var condition2=new DateCondition(3,to,keyword_null);var condition=new RelationCondition(1,condition1,condition2);return condition.evaluate(keyword_null,0,0,actual)}}else if(self.expectTypeId===1){expectedNumber=self.getExpectedInt(keyword_null,0,0);if(expectedNumber!==keyword_undefined&&expectedNumber!==keyword_null){return self.isEqualsYear(expectedNumber,actual)}}else if(self.expectTypeId===2){expectedNumber=self.getExpectedInt(keyword_null,0,0);if(expectedNumber!==keyword_undefined&&expectedNumber!==keyword_null){return self.isEqualsQuarter(expectedNumber,actual)}}else if(self.expectTypeId===3){expectedNumber=self.getExpectedInt(keyword_null,0,0);if(expectedNumber!==keyword_undefined&&expectedNumber!==keyword_null){return self.isEqualsMonth(expectedNumber,actual)}}else if(self.expectTypeId===4){expectedNumber=self.getExpectedInt(keyword_null,0,0);if(expectedNumber!==keyword_undefined&&expectedNumber!==keyword_null){return self.isEqualsWeek(expectedNumber,actual)}}else if(self.expectTypeId===5){expectedNumber=self.getExpectedInt(keyword_null,0,0);if(expectedNumber!==keyword_undefined&&expectedNumber!==keyword_null){return self.isEqualsDay(expectedNumber,actual)}}return false};DateExCondition.prototype.isEqualsYear=function(expected,actualDateTime){return(expected===actualDateTime.getFullYear())};DateExCondition.prototype.isEqualsQuarter=function(expected,actualDateTime){switch(expected){case 0:return(actualDateTime.getMonth()>=1&&actualDateTime.getMonth()<=3);case 1:return(actualDateTime.getMonth()>=4&&actualDateTime.getMonth()<=6);case 2:return(actualDateTime.getMonth()>=7&&actualDateTime.getMonth()<=9);case 3:return(actualDateTime.getMonth()>=10&&actualDateTime.getMonth()<=12)}return false};DateExCondition.prototype.isEqualsMonth=function(expected,actualDateTime){return(expected===actualDateTime.getMonth())};DateExCondition.prototype.isEqualsWeek=function(expected,actualDateTime){return(expected===actualDateTime.getDay())};DateExCondition.prototype.isEqualsDay=function(expected,actualDateTime){return(expected===actualDateTime.getDate())};DateExCondition.prototype.reset=function(){this.expected=keyword_null;this.ignoreBlank=false;this.expectTypeId=0};DateExCondition.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"ignoreBlank":return value===false;case"formula":return value===keyword_null;case"expectTypeId":return value===0;default:return false}};DateExCondition.prototype.toJSON=function(){var self=this;var dictData={ignoreBlank:self.ignoreBlank,formula:self.formula,expected:self.expected,expectTypeId:self.expectTypeId,conType:6};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};DateExCondition.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.ignoreBlank!==keyword_null&&settings.ignoreBlank!==keyword_undefined){self.ignoreBlank=settings.ignoreBlank}if(settings.formula!==keyword_null&&settings.formula!==keyword_undefined){self.formula=settings.formula}if(settings.expected!==keyword_null&&settings.expected!==keyword_undefined){self.expected=settings.expected}if(settings.expectTypeId!==keyword_null&&settings.expectTypeId!==keyword_undefined){self.expectTypeId=settings.expectTypeId}};DateExCondition.fromDay=function(day){var con=new DateExCondition(day);con.expectTypeId=5;return con};DateExCondition.fromMonth=function(month){var con=new DateExCondition(month);con.expectTypeId=3;return con};DateExCondition.fromQuarter=function(quarter){var con=new DateExCondition(quarter);con.expectTypeId=2;return con};DateExCondition.fromWeek=function(week){var con=new DateExCondition(week);con.expectTypeId=4;return con};DateExCondition.fromYear=function(year){var con=new DateExCondition(year);con.expectTypeId=1;return con};return DateExCondition})();spread.DateExCondition=DateExCondition;var TextLengthCondition=(function(){function TextLengthCondition(compareType,expected,formula){var self=this;self.ignoreBlank=false;self.conditionType="TextLengthCondition";self.compareType=compareType;self.expected=expected;self.formula=(typeof(formula)==="string")?$.trim(formula).replace("=",""):formula}TextLengthCondition.prototype.evaluate=function(evaluator,baseRow,baseColumn,actualObj){if(actualObj===keyword_undefined||actualObj===keyword_null||actualObj===""){return this.ignoreBlank}var actualLen=(actualObj===keyword_undefined||actualObj===keyword_null)?0:actualObj.length;var expectedLen=this.getExpectedInt(evaluator,baseRow,baseColumn);if(typeof(expectedLen)==="number"){switch(this.compareType){case 0:return actualLen===expectedLen;case 2:return actualLen>expectedLen;case 3:return actualLen>=expectedLen;case 4:return actualLen<expectedLen;case 5:return actualLen<=expectedLen;case 1:return actualLen!==expectedLen}}return false};TextLengthCondition.prototype.getExpectedInt=function(evaluator,baseRow,basecol){var obj=this.getExpected(evaluator,baseRow,basecol);obj=parseInt(obj,10);return isNaN(obj)?keyword_null:obj};TextLengthCondition.prototype.getExpected=function(evaluator,baseRow,basecol){var self=this;if(self.formula&&self.formula.length>0){var calcService=evaluator.getCalcService();if(!calcService){return self.expected}var expr=calcService.parse(self.formula,baseRow,basecol);return calcService.evaluateParsedFormula(evaluator._getSheetSource(),expr,baseRow,basecol)}else
{return self.expected}};TextLengthCondition.prototype.reset=function(){this.expected=keyword_null;this.ignoreBlank=false;this.compareType=0};TextLengthCondition.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"ignoreBlank":return value===false;default:return false}};TextLengthCondition.prototype.toJSON=function(){var self=this;var dictData={compareType:self.compareType,expected:self.expected,formula:self.formula,conType:7,ignoreBlank:self.ignoreBlank};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};TextLengthCondition.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.compareType!==keyword_null&&settings.compareType!==keyword_undefined){self.compareType=settings.compareType}if(settings.expected!==keyword_null&&settings.expected!==keyword_undefined){self.expected=settings.expected}if(settings.formula!==keyword_null&&settings.formula!==keyword_undefined){self.formula=settings.formula}if(settings.ignoreBlank!==keyword_null&&settings.ignoreBlank!==keyword_undefined){self.ignoreBlank=settings.ignoreBlank}};return TextLengthCondition})();spread.TextLengthCondition=TextLengthCondition;var Top10Rule=(function(_super){__extends(Top10Rule,_super);function Top10Rule(type,rank,style){_super.call(this,style);this.type=type;this.rank=rank}Top10Rule.prototype.createCondition=function(){return new Top10Condition(this.type,this.rank,this.ranges)};Top10Rule.prototype.reset=function(){var self=this;self.type=0;self.rank=10;self.style=keyword_null;self._stopIfTrue=false;self._priority=1};Top10Rule.prototype.toJSON=function(){var self=this;var dictData={ruleType:5,ranges:self.ranges,style:self.style,type:self.type,rank:self.rank,priority:self._priority,stopIfTrue:self._stopIfTrue};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};Top10Rule.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.ranges){self.ranges=[];for(var i=0;i<settings.ranges.length;i++){var r=settings.ranges[i];self.ranges.push(new spread.Range(r.row,r.col,r.rowCount,r.colCount))}}if(settings.style){self.style=new spread.Style;self.style.copyFrom(settings.style)}if(settings.type!==keyword_null&&settings.type!==keyword_undefined){self.type=settings.type}if(settings.rank!==keyword_null&&settings.rank!==keyword_undefined){self.rank=settings.rank}if(settings.priority!==keyword_null&&settings.priority!==keyword_undefined){self._priority=settings.priority}if(settings.stopIfTrue!==keyword_null&&settings.stopIfTrue!==keyword_undefined){self._stopIfTrue=settings.stopIfTrue}};return Top10Rule})(ConditionRuleBase);spread.Top10Rule=Top10Rule;var Top10Condition=(function(){function Top10Condition(type,rank,ranges){var self=this;self.isPercent=false;self.ignoreBlank=false;self.conditionType="Top10Condition";self.formula=keyword_null;self.expected=rank;self.type=type;self.ranges=ranges}Top10Condition.prototype.adjustOffset=function(row,col){};Top10Condition.prototype.evaluate=function(evaluator,baseRow,baseColumn,actualObj){var self=this;if(actualObj===keyword_undefined||actualObj===keyword_null||actualObj===""){return self.ignoreBlank}var expectedRank=self.getExpectedInt(evaluator,baseRow,baseColumn);if(expectedRank!==keyword_undefined&&expectedRank!==keyword_null){var values=keyword_null;if(self.type===0){values=self.getMaxValues(evaluator,expectedRank,self.ranges)}else if(self.type===1){values=self.getMinValues(evaluator,expectedRank,self.ranges)}if(values){var dactual=0;try
{dactual=self._toDouble(actualObj)}catch(ex){return false}if(values.contains(dactual)){return true}}}return false};Top10Condition.prototype.getExpectedInt=function(evaluator,baseRow,baseColumn){var obj=this.getExpected(evaluator,baseRow,baseColumn);obj=parseInt(obj,10);return(isNaN(obj)||!isFinite(obj))?keyword_null:obj};Top10Condition.prototype.getExpected=function(evaluator,baseRow,basecol){var self=this;if(self.formula&&self.formula.length>0){var calcService=evaluator.getCalcService();if(!calcService){return self.expected}var expr=calcService.parse(self.formula,baseRow,basecol);return calcService.evaluateParsedFormula(evaluator._getSheetSource(),expr,baseRow,basecol)}else
{return self.expected}};Top10Condition.prototype.adjustRange=function(range,sheet){return new spread.Range(range.row,range.col,Math.min(range.rowCount,sheet.getRowCount()),Math.min(range.colCount,sheet.getColumnCount()))};Top10Condition.prototype.getMaxValues=function(evaluator,rank,ranges){var values=[];if(!ranges){return values}var min=Number.MAX_VALUE,cnt=0,rangeCount=ranges.length,range,rangeRowCount,rangeColCount,row,column,o,doubleValue;for(var i=0;i<rangeCount;i++){range=ranges[i];range=this.adjustRange(range,evaluator);rangeRowCount=range.rowCount;rangeColCount=range.colCount;for(var r=0;r<rangeRowCount;r++){row=r+range.row;for(var c=0;c<rangeColCount;c++){column=c+range.col;o=evaluator.getValue(row,column);doubleValue=this._toDouble(o);if(typeof(o)!==const_undefined&&o!==keyword_null&&typeof(doubleValue)!==const_undefined&&doubleValue!==keyword_null){try
{if(cnt<rank){values.push(doubleValue);if(doubleValue<min){min=doubleValue}cnt++}else
{if(doubleValue>min){values.remove(min);values.push(doubleValue);if(values.indexOf(min)<0){min=doubleValue;for(var n=0,valueCount=values.length;n<valueCount;n++){if(values[n]<min){min=values[n]}}}}}}catch(ex){}}}}}return values};Top10Condition.prototype.getMinValues=function(evaluator,rank,ranges){var values=[];if(!ranges){return values}var max=-Number.MAX_VALUE,cnt=0,rangeCount=ranges.length,range,rangeRowCount,rangeColCount,row,column,o,doubleValue;for(var i=0;i<rangeCount;i++){range=ranges[i];range=this.adjustRange(range,evaluator);rangeRowCount=range.rowCount;rangeColCount=range.colCount;for(var r=0;r<rangeRowCount;r++){row=r+range.row;for(var c=0;c<rangeColCount;c++){column=c+range.col;o=evaluator.getValue(row,column);doubleValue=this._toDouble(o);if(typeof(o)!==const_undefined&&o!==keyword_null&&typeof(doubleValue)!==const_undefined&&doubleValue!==keyword_null){try
{if(cnt<rank){values.push(doubleValue);if(doubleValue>max){max=doubleValue}cnt++}else
{if(doubleValue<max){values.remove(max);values.push(doubleValue);if(values.indexOf(max)<0){max=doubleValue;for(var n=0,valueCount=values.length;n<valueCount;n++){if(values[n]>max){max=values[n]}}}}}}catch(ex){}}}}}return values};Top10Condition.prototype.reset=function(){var self=this;self.expected=keyword_null;self.ignoreBlank=false;self.type=0;self.isPercent=false;self.ranges=keyword_null};Top10Condition.prototype._toDouble=function(value){if(((typeof value==='number')||(value instanceof Date))&&spread.util.hasCalc()){return spread.Calc.Convert.toDouble(value)}else
{return keyword_null}};Top10Condition.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"formula":return value===keyword_null;case"isPercent":return value===false;case"ignoreBlank":return value===false;default:return false}};Top10Condition.prototype.toJSON=function(){var self=this;var dictData={expected:self.expected,formula:self.formula,type:self.type,isPercent:self.isPercent,ignoreBlank:self.ignoreBlank,ranges:self.ranges,conType:8};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};Top10Condition.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.expected!==keyword_null&&settings.expected!==keyword_undefined){self.expected=settings.expected}if(settings.formula!==keyword_null&&settings.formula!==keyword_undefined){self.formula=settings.formula}if(settings.type!==keyword_null&&settings.type!==keyword_undefined){self.type=settings.type}if(settings.isPercent!==keyword_null&&settings.isPercent!==keyword_undefined){self.isPercent=settings.isPercent}if(settings.ignoreBlank!==keyword_null&&settings.ignoreBlank!==keyword_undefined){self.ignoreBlank=settings.ignoreBlank}if(settings.ranges){self.ranges=[];for(var i=0;i<settings.ranges.length;i++){var r=settings.ranges[i];self.ranges.push(new spread.Range(r.row,r.col,r.rowCount,r.colCount))}}};return Top10Condition})();spread.Top10Condition=Top10Condition;var UniqueRule=(function(_super){__extends(UniqueRule,_super);function UniqueRule(style){_super.call(this,style)}UniqueRule.prototype.createCondition=function(){return new UniqueCondition(false,this.ranges)};UniqueRule.prototype.toJSON=function(){var self=this;var dictData={ruleType:6,ranges:self.ranges,style:self.style,priority:self._priority,stopIfTrue:self._stopIfTrue};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};UniqueRule.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.ranges){self.ranges=[];for(var i=0;i<settings.ranges.length;i++){var r=settings.ranges[i];self.ranges.push(new spread.Range(r.row,r.col,r.rowCount,r.colCount))}}if(settings.style){self.style=new spread.Style;self.style.copyFrom(settings.style)}if(settings.priority!==keyword_null&&settings.priority!==keyword_undefined){self._priority=settings.priority}if(settings.stopIfTrue!==keyword_null&&settings.stopIfTrue!==keyword_undefined){self._stopIfTrue=settings.stopIfTrue}};return UniqueRule})(ConditionRuleBase);spread.UniqueRule=UniqueRule;var DuplicateRule=(function(_super){__extends(DuplicateRule,_super);function DuplicateRule(style){_super.call(this,style)}DuplicateRule.prototype.createCondition=function(){return new UniqueCondition(true,this.ranges)};DuplicateRule.prototype.toJSON=function(){var self=this;var dictData={ruleType:7,ranges:self.ranges,style:self.style,priority:self._priority,stopIfTrue:self._stopIfTrue};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};DuplicateRule.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.ranges){self.ranges=[];for(var i=0;i<settings.ranges.length;i++){var r=settings.ranges[i];self.ranges.push(new spread.Range(r.row,r.col,r.rowCount,r.colCount))}}if(settings.style){self.style=new spread.Style;self.style.copyFrom(settings.style)}if(settings.priority!==keyword_null&&settings.priority!==keyword_undefined){self._priority=settings.priority}if(settings.stopIfTrue!==keyword_null&&settings.stopIfTrue!==keyword_undefined){self._stopIfTrue=settings.stopIfTrue}};return DuplicateRule})(ConditionRuleBase);spread.DuplicateRule=DuplicateRule;var UniqueCondition=(function(){function UniqueCondition(duplicated,ranges){var self=this;self.conditionType="UniqueCondition";self.ignoreBlank=false;self.formula=keyword_null;self.expected=duplicated;self.ranges=ranges}UniqueCondition.prototype.adjustOffset=function(row,col){};UniqueCondition.prototype.evaluate=function(evaluator,baseRow,baseColumn,actualObj){var self=this;var value=actualObj;if(value===keyword_undefined||value===keyword_null||value===""){return self.ignoreBlank}if(spread.util.hasCalc()){var convert=spread.Calc.Convert;if(convert.isNumber(value)){value=convert.toDouble(value)}}var expectDuplicated=self.getExpectedBoolean(evaluator,baseRow,baseColumn);if(expectDuplicated!==keyword_undefined&&expectDuplicated!==keyword_null){var cached=self.getDuplicated(evaluator,self.ranges);if(cached!==keyword_undefined&&cached!==keyword_null){if(cached.contains(value)){return expectDuplicated===true}else
{return expectDuplicated!==true}}return expectDuplicated!==true}return false};UniqueCondition.prototype.getExpectedBoolean=function(evaluator,baseRow,baseColumn){var obj=this.getExpected(evaluator,baseRow,baseColumn);try
{return spread.Calc.Convert.toBool(obj)}catch(err){return keyword_null}};UniqueCondition.prototype.getExpected=function(evaluator,baseRow,baseColumn){var self=this;if(self.formula&&self.formula.length>0){var calcService=evaluator.getCalcService();if(!calcService){return self.expected}var expr=calcService.parse(self.formula,baseRow,baseColumn);return calcService.evaluateParsedFormula(evaluator._getSheetSource(),expr,baseRow,baseColumn)}else
{return self.expected}};UniqueCondition.prototype.adjustRange=function(range,sheet){return new spread.Range(range.row,range.col,Math.min(range.rowCount,sheet.getRowCount()),Math.min(range.colCount,sheet.getColumnCount()))};UniqueCondition.prototype.getDuplicated=function(evaluator,ranges){var map=[],duplicated=[];if(ranges){var length=ranges.length;for(var i=0;i<length;i++){var cellrange=ranges[i];cellrange=this.adjustRange(cellrange,evaluator);for(var r=0;r<cellrange.rowCount;r++){var row=r+cellrange.row;for(var c=0;c<cellrange.colCount;c++){var column=c+cellrange.col;var o=evaluator.getValue(row,column,3);if(o!==keyword_undefined&&o!==keyword_null){if(spread.util.hasCalc()){var convert=spread.Calc.Convert;if(convert.isNumber(o)){o=convert.toDouble(o)}}if(this._containsKey(map,o)){if(!duplicated.contains(o)){duplicated.push(o)}}else
{map.push({key:o,value:false})}}}}}}return duplicated};UniqueCondition.prototype._containsKey=function(map,key){var length=map.length;for(var i=0;i<length;i++){if(map[i].key===key){return true}}return false};UniqueCondition.prototype.reset=function(){this.expected=keyword_null;this.ignoreBlank=false;this.ranges=keyword_null};UniqueCondition.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"formula":return value===keyword_null;case"ignoreBlank":return value===false;default:return false}};UniqueCondition.prototype.toJSON=function(){var self=this;var dictData={expected:self.expected,formula:self.formula,ranges:self.ranges,conType:9,ignoreBlank:self.ignoreBlank};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};UniqueCondition.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.expected!==keyword_null&&settings.expected!==keyword_undefined){self.expected=settings.expected}if(settings.formula!==keyword_null&&settings.formula!==keyword_undefined){self.formula=settings.formula}if(settings.ranges){self.ranges=[];for(var i=0;i<settings.ranges.length;i++){var r=settings.ranges[i];self.ranges.push(new spread.Range(r.row,r.col,r.rowCount,r.colCount))}}if(settings.ignoreBlank!==keyword_null&&settings.ignoreBlank!==keyword_undefined){self.ignoreBlank=settings.ignoreBlank}};return UniqueCondition})();spread.UniqueCondition=UniqueCondition;var AverageRule=(function(_super){__extends(AverageRule,_super);function AverageRule(type,style){_super.call(this,style);this.type=type}AverageRule.prototype.createCondition=function(){return new AverageCondition(this.type,this.ranges)};AverageRule.prototype.reset=function(){var self=this;self.type=0;self.style=keyword_null;self._stopIfTrue=false;self._priority=1};AverageRule.prototype.toJSON=function(){var self=this;var dictData={ruleType:8,ranges:self.ranges,style:self.style,type:self.type,priority:self._priority,stopIfTrue:self._stopIfTrue};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};AverageRule.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.ranges){self.ranges=[];for(var i=0;i<settings.ranges.length;i++){var r=settings.ranges[i];self.ranges.push(new spread.Range(r.row,r.col,r.rowCount,r.colCount))}}if(settings.style){self.style=new spread.Style;self.style.copyFrom(settings.style)}if(settings.type!==keyword_null&&settings.type!==keyword_undefined){self.type=settings.type}if(settings.priority!==keyword_null&&settings.priority!==keyword_undefined){self._priority=settings.priority}if(settings.stopIfTrue!==keyword_null&&settings.stopIfTrue!==keyword_undefined){self._stopIfTrue=settings.stopIfTrue}};return AverageRule})(ConditionRuleBase);spread.AverageRule=AverageRule;var AverageCondition=(function(){function AverageCondition(type,ranges){var self=this;self.conditionType="AverageCondition";self.ignoreBlank=false;self._expr=keyword_null;self._stdevExpr=keyword_null;self.type=type;self.ranges=ranges}AverageCondition.prototype.adjustOffset=function(row,col){};AverageCondition.prototype.evaluate=function(evaluator,baseRow,baseColumn,actualObj){if(!spread.util.hasCalc()){return false}var self=this;if(self.ignoreBlank&&(actualObj===keyword_undefined||actualObj===keyword_null||actualObj==="")){return true}var convert=spread.Calc.Convert;var toDouble=convert.toDouble;self._rebuildFormula();var averageValue=self.getExpectedDouble(evaluator,baseRow,baseColumn);var stddevValue=keyword_null;var stddevObjValue=self._stdevExpr?self._getExpectedByExpression(evaluator,self._stdevExpr,baseRow,baseColumn):keyword_null;if(stddevObjValue!==keyword_undefined&&stddevObjValue!==keyword_null){try
{stddevValue=toDouble(stddevObjValue)}catch(err){stddevValue=NaN}}if(convert.isNumber(actualObj)){var cellValue=toDouble(actualObj);if(!isNaN(averageValue)){switch(self.type){case 0:return cellValue>averageValue;case 1:return cellValue<averageValue;case 2:return cellValue>=averageValue;case 3:return cellValue<=averageValue;case 4:return!isNaN(stddevValue)?cellValue>(averageValue+stddevValue):false;case 5:return!isNaN(stddevValue)?cellValue<(averageValue-stddevValue):false;case 6:return!isNaN(stddevValue)?cellValue>(averageValue+2*stddevValue):false;case 7:return!isNaN(stddevValue)?cellValue<(averageValue-2*stddevValue):false;case 8:return!isNaN(stddevValue)?cellValue>(averageValue+3*stddevValue):false;case 9:return!isNaN(stddevValue)?cellValue<(averageValue-3*stddevValue):false}}}return false};AverageCondition.prototype._rebuildFormula=function(){var self=this;if(self.ranges){self._expr=self._createExpression("AVERAGE",self.ranges);if(self.type===4||self.type===5||self.type===6||self.type===7||self.type===8||self.type===9){self._stdevExpr=self._createExpression("STDEV",self.ranges)}}};AverageCondition.prototype._createExpression=function(name,parameters){if(!spread.util.hasCalc()){return keyword_null}var expressions=spread.Calc.Expressions,functions=spread.Calc.Functions,convert=spread.Calc.Convert;var averageFunc=functions.findGlobalFunction(name);if(averageFunc){var args=[];var length=parameters.length;for(var i=0;i<length;i++){var obj=parameters[i];if(obj instanceof expressions.Expression){args[i]=obj}else if(obj instanceof spread.Range){args[i]=new expressions.RangeExpression(obj.row,obj.col,obj.row+obj.rowCount-1,obj.col+obj.colCount-1)}else if(convert.isNumber(obj)&&!isNaN(obj=convert.toDouble(obj))){args[i]=new expressions.DoubleExpression(obj,obj.toString())}else
{throw spread.SR.Exp_NotSupport;}}return new expressions.FunctionExpression(averageFunc,args)}return keyword_null};AverageCondition.prototype.getExpectedDouble=function(evaluator,baseRow,baseColumn){var obj=this.getExpected(evaluator,baseRow,baseColumn);try
{return spread.Calc.Convert.toDouble(obj)}catch(err){return NaN}};AverageCondition.prototype.getExpected=function(evaluator,baseRow,baseColumn){var calcService=evaluator.getCalcService();if(!calcService){return keyword_null}var formula=calcService.unparse(this._expr,baseRow,baseColumn);this._expr=calcService.parse(formula,baseRow,baseColumn);return calcService.evaluateParsedFormula(evaluator._getSheetSource(),this._expr,baseRow,baseColumn)};AverageCondition.prototype._getExpectedByExpression=function(evaluator,expression,baseRow,baseColumn){var calcService=evaluator.getCalcService();if(!calcService){return keyword_null}var formula=calcService.unparse(expression,baseRow,baseColumn);expression=calcService.parse(formula,baseRow,baseColumn);return calcService.evaluateParsedFormula(evaluator._getSheetSource(),expression,baseRow,baseColumn)};AverageCondition.prototype.reset=function(){var self=this;self.ignoreBlank=false;self.type=0;self.ranges=keyword_null;self._expr=keyword_null;self._stdevExpr=keyword_null};AverageCondition.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"ignoreBlank":return value===false;default:return false}};AverageCondition.prototype.toJSON=function(){var self=this;var dictData={type:self.type,ranges:self.ranges,conType:10,ignoreBlank:self.ignoreBlank};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};AverageCondition.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.type!==keyword_null&&settings.type!==keyword_undefined){self.type=settings.type}if(settings.ranges){self.ranges=[];for(var i=0;i<settings.ranges.length;i++){var r=settings.ranges[i];self.ranges.push(new spread.Range(r.row,r.col,r.rowCount,r.colCount))}}if(settings.ignoreBlank!==keyword_null&&settings.ignoreBlank!==keyword_undefined){self.ignoreBlank=settings.ignoreBlank}};return AverageCondition})();spread.AverageCondition=AverageCondition;var ScaleValue=(function(){function ScaleValue(type,value){this.type=type;this.value=value}return ScaleValue})();spread.ScaleValue=ScaleValue;var ScaleRule=(function(_super){__extends(ScaleRule,_super);function ScaleRule(scaleValue1,scaleValue2,scaleValue3){_super.call(this,keyword_null);var self=this;self.expected=[];self.lowestValueCached=keyword_null;self.highestValueCached=keyword_null;self.cached=false;self._oldRanges=keyword_null;self.scales=[scaleValue1,scaleValue2,scaleValue3]}ScaleRule.prototype.stopIfTrue=function(){return this._stopIfTrue};ScaleRule.prototype.isScaleRule=function(){return true};ScaleRule.prototype.createCondition=function(){return keyword_null};ScaleRule.prototype._calculateLowestValueEx=function(evaluator){var rets=(new Top10Condition).getMinValues(evaluator,1,this.ranges);return(rets.length>0?rets[0]:keyword_null)};ScaleRule.prototype._calculateHighestValueEx=function(evaluator){var rets=(new Top10Condition).getMaxValues(evaluator,1,this.ranges);return(rets.length>0?rets[0]:keyword_null)};ScaleRule.prototype._cloneRanges=function(ranges){var newRanges=[],length=ranges.length,r;for(var i=0;i<length;i++){r=ranges[i];newRanges.push(new spread.Range(r.row,r.col,r.rowCount,r.colCount))}return newRanges};ScaleRule.prototype._rangesChanged=function(){var oldRanges=this._oldRanges,newRanges=this.ranges;if(!oldRanges){return false}var oldCount=oldRanges.length,newCount=newRanges.length;if(oldCount!==newCount){return true}for(var i=0;i<newCount;i++){if(!oldRanges[i].equals(newRanges[i])){return true}}return false};ScaleRule.prototype._tryCache=function(evaluator){var self=this;if(self._rangesChanged()){self._clearCache();self._oldRanges=self._cloneRanges(self.ranges)}if(self.cached===false){self.lowestValueCached=self._calculateLowestValueEx(evaluator);self.highestValueCached=self._calculateHighestValueEx(evaluator);self.cached=true}};ScaleRule.prototype._clearCache=function(){this.lowestValueCached=keyword_null;this.highestValueCached=keyword_null;this.cached=false};ScaleRule.prototype._calculateFormula=function(evaluator,baseRow,baseColumn,formula){if(formula&&formula.length>0){var calcService=evaluator.getCalcService();if(!calcService){return keyword_null}var expr=calcService.parse(formula,baseRow,baseColumn);return calcService.evaluateParsedFormula(evaluator._getSheetSource(),expr,baseRow,baseColumn)}return keyword_null};ScaleRule.prototype._isFormula=function(val){return(val)&&(val[0]==="=")};ScaleRule.prototype._trimFormula=function(val){return(val===keyword_undefined||val===keyword_null||val==="")?keyword_null:((val[0]==="=")?val.substr(1):val)};ScaleRule.prototype._calculateValue=function(evaluator,baseRow,baseColumn,value){var dValue=keyword_null;if(this._isFormula(value)){dValue=this._calculateFormula(evaluator,baseRow,baseColumn,this._trimFormula(value.toString()))}else
{try
{dValue=spread.Calc.Convert.toDouble(value)}catch(err){dValue=NaN}}return dValue};ScaleRule.prototype._getHighestValue=function(evaluator){this._tryCache(evaluator);return this.highestValueCached};ScaleRule.prototype._getLowestValue=function(evaluator){this._tryCache(evaluator);return this.lowestValueCached};ScaleRule.prototype._calculatePercent=function(evaluator,baseRow,baseColumn,value){var dValue=this._calculateValue(evaluator,baseRow,baseColumn,value);if(!isNaN(dValue)){if(0<=dValue&&dValue<=100){var min=this._getLowestValue(evaluator);var max=this._getHighestValue(evaluator);if(typeof(min)!==const_undefined&&min!==keyword_null&&typeof(max)!==const_undefined&&max!==keyword_null){return min+(max-min)*dValue/100.0}}}return keyword_null};ScaleRule.prototype._calculatePercentile=function(evaluator,baseRow,baseColumn,value){var dValue=this._calculateValue(evaluator,baseRow,baseColumn,value);if(!isNaN(dValue)){if(0<=dValue&&dValue<=100){var total=0,ranges=this.ranges,length=ranges.length;for(var i=0;i<length;i++){var exp=this._createExpression("PERCENTILE",[ranges[i],dValue/100.0]),calcService=evaluator.getCalcService(),formula=calcService.unparse(exp,baseRow,baseColumn),exp=calcService.parse(formula,baseRow,baseColumn),val=calcService.evaluateParsedFormula(evaluator._getSheetSource(),exp,baseRow,baseColumn);try
{total+=spread.Calc.Convert.toDouble(val)}catch(InvalidCastException){}}return(total/length)}}return keyword_null};ScaleRule.prototype._getActualValue=function(evaluator,baseRow,baseColumn,index,actual){var self=this;var val=self.scales[index];if(val){switch(val.type){case 6:return self._calculateValue(evaluator,baseRow,baseColumn,val.value);case 2:return self._getHighestValue(evaluator);case 1:return self._getLowestValue(evaluator);case 0:return self._calculateValue(evaluator,baseRow,baseColumn,val.value);case 3:return self._calculatePercent(evaluator,baseRow,baseColumn,val.value);case 4:return self._calculatePercentile(evaluator,baseRow,baseColumn,val.value);case 7:var max=self._getHighestValue(evaluator);return max<0.0?0.0:max;case 5:var min=self._getLowestValue(evaluator);return min>0.0?0.0:min}}return keyword_null};ScaleRule.prototype._evaluate2Scale=function(value,min,max){if(value<=min){return 0.0}if(value>=max){return 1.0}return(value-min)/(max-min)};ScaleRule.prototype.evaluate=function(evaluator,baseRow,baseColumn,actual){var self=this;self._tryCache(evaluator);if(self.contains(baseRow,baseColumn)){if(actual===keyword_undefined||actual===keyword_null){return keyword_null}try
{var numberValue=spread.Calc.Convert.toDouble(actual);var minValue=self._getActualValue(evaluator,baseRow,baseColumn,0);var midValue=self._getActualValue(evaluator,baseRow,baseColumn,1);var maxValue=self._getActualValue(evaluator,baseRow,baseColumn,2);if(isNaN(midValue)){if(!isNaN(minValue)&&!isNaN(maxValue)){if(minValue>maxValue){return keyword_null}return self._evaluate2Scale(numberValue,minValue,maxValue)}}else
{if(!isNaN(minValue)&&!isNaN(maxValue)&&!isNaN(midValue)){if(minValue>maxValue){return keyword_null}if(numberValue<minValue){return 0.0}if(numberValue>=maxValue){return 2.0}var midScale=self._evaluate2Scale(midValue,minValue,maxValue);if(minValue<=numberValue&&numberValue<=midValue){return self._evaluate2Scale(numberValue,minValue,midValue)}else
{return 1+self._evaluate2Scale(numberValue,minValue,maxValue)}}}}catch(err){return keyword_null}}return keyword_null};ScaleRule.prototype._evaluateColor=function(value,color1,color2){if(0<=value&&value<=1){var minColor=spread._Color.parse(color1);var maxColor=spread._Color.parse(color2);var a=(minColor.a)*(1-value)+(maxColor.a)*(value);var r=(minColor.r)*(1-value)+(maxColor.r)*(value);var g=(minColor.g)*(1-value)+(maxColor.g)*(value);var b=(minColor.b)*(1-value)+(maxColor.b)*(value);return new spread._Color(parseFloat((a/255)),parseInt(r,10),parseInt(g,10),parseInt(b,10)).toString()}return keyword_null};ScaleRule.prototype._createExpression=function(name,parameters){if(!spread.util.hasCalc()){return keyword_null}var expressions=spread.Calc.Expressions,functions=spread.Calc.Functions,convert=spread.Calc.Convert;var averageFunc=functions.findGlobalFunction(name);if(averageFunc){var args=[];var length=parameters.length;for(var i=0;i<length;i++){var obj=parameters[i];if(obj instanceof expressions.Expression){args[i]=obj}else if(obj instanceof spread.Range){args[i]=new expressions.RangeExpression(obj.row,obj.col,obj.row+obj.rowCount-1,obj.col+obj.colCount-1)}else if(convert.isNumber(obj)&&!isNaN(obj=convert.toDouble(obj))){args[i]=new expressions.DoubleExpression(obj,obj.toString())}else
{throw spread.SR.Exp_NotSupport;}}return new expressions.FunctionExpression(averageFunc,args)}return keyword_null};ScaleRule.prototype._addRows=function(row,rowCount){_super.prototype._addRows.call(this,row,rowCount);this._clearCache()};ScaleRule.prototype._addColumns=function(col,colCount){_super.prototype._addColumns.call(this,col,colCount);this._clearCache()};ScaleRule.prototype._removeRows=function(row,rowCount){_super.prototype._removeRows.call(this,row,rowCount);this._clearCache()};ScaleRule.prototype._removeColumns=function(col,colCount){_super.prototype._removeColumns.call(this,col,colCount);this._clearCache()};return ScaleRule})(ConditionRuleBase);spread.ScaleRule=ScaleRule;var TwoScaleRule=(function(_super){__extends(TwoScaleRule,_super);function TwoScaleRule(minType,minValue,minColor,maxType,maxValue,maxColor){var _minType=minType,_minValue=minValue,_minColor=minColor,_maxType=maxType,_maxValue=maxValue,_maxColor=maxColor;if(arguments.length===0){_minType=1;_minValue=keyword_null;_minColor=new spread._Color(0,255,255,255).toString();_maxType=2;_maxValue=keyword_null;_maxColor=new spread._Color(255,99,190,123).toString()}var scaleValue1=new ScaleValue(_minType,_minValue);var scaleValue2=new ScaleValue(_maxType,_maxValue);_super.call(this,scaleValue1,keyword_null,scaleValue2);this.expected[0]=_minColor;this.expected[2]=_maxColor}TwoScaleRule.prototype.evaluate=function(evaluator,baseRow,baseColumn,actual){if(actual!==keyword_undefined&&actual!==keyword_null){var numberValue=NaN;try
{if(spread.Calc.Convert.isNumber(actual)){numberValue=spread.Calc.Convert.toDouble(actual)}}catch(InvalidCastException){return keyword_null}if(isNaN(numberValue)){return keyword_null}var self=this;var minValue=self._getActualValue(evaluator,baseRow,baseColumn,0);var maxValue=self._getActualValue(evaluator,baseRow,baseColumn,2);if(minValue!==keyword_undefined&&minValue!==keyword_null&&maxValue!==keyword_undefined&&maxValue!==keyword_null){var result=self._evaluate2Scale(numberValue,minValue,maxValue);return self._evaluateColor(result,self.expected[0],self.expected[2])}}return keyword_null};TwoScaleRule.prototype._init=function(){var self=this;self.scales=new Array(3);self.scales[0]=new ScaleValue(1,keyword_null);self.scales[2]=new ScaleValue(2,keyword_null);self.expected=new Array(3);self.expected[0]=new spread._Color(0,255,255,255).toString();self.expected[2]=new spread._Color(255,99,190,123).toString()};TwoScaleRule.prototype.reset=function(){var self=this;self.ranges=keyword_null;self.condition=keyword_null;self.style=keyword_null;self._stopIfTrue=false;self._priority=1;self._init()};TwoScaleRule.prototype.getMinimumType=function(){var scales=this.scales;return scales&&scales.length===3?scales[0].type:keyword_null};TwoScaleRule.prototype.setMinimumType=function(type){var scales=this.scales;if(scales&&scales.length===3){scales[0].type=type}};TwoScaleRule.prototype.getMinimumValue=function(){var scales=this.scales;return scales&&scales.length===3?scales[0].value:keyword_null};TwoScaleRule.prototype.setMinimumValue=function(value){var scales=this.scales;if(scales&&scales.length===3){scales[0].value=value}};TwoScaleRule.prototype.getMinimumColor=function(){return this.expected&&this.expected.length===3?this.expected[0]:keyword_null};TwoScaleRule.prototype.setMinimumColor=function(color){if(this.expected&&this.expected.length===3){this.expected[0]=color}};TwoScaleRule.prototype.getMaximumType=function(){var scales=this.scales;return scales&&scales.length===3?scales[2].type:keyword_null};TwoScaleRule.prototype.setMaximumType=function(type){var scales=this.scales;if(scales&&scales.length===3){scales[2].type=type}};TwoScaleRule.prototype.getMaximumValue=function(){var scales=this.scales;return scales&&scales.length===3?scales[2].value:keyword_null};TwoScaleRule.prototype.setMaximumValue=function(value){var scales=this.scales;if(scales&&scales.length===3){scales[2].value=value}};TwoScaleRule.prototype.getMaximumColor=function(){return this.expected&&this.expected.length===3?this.expected[2]:keyword_null};TwoScaleRule.prototype.setMaximumColor=function(color){if(this.expected&&this.expected.length===3){this.expected[2]=color}};TwoScaleRule.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"ranges":return value===keyword_null;case"priority":return value===1;case"stopIfTrue":return value===false;default:return false}};TwoScaleRule.prototype.toJSON=function(){var self=this;var dictData={ruleType:10,ranges:self.ranges,minType:self.getMinimumType(),minValue:self.getMinimumValue(),minColor:self.getMinimumColor(),maxType:self.getMaximumType(),maxValue:self.getMaximumValue(),maxColor:self.getMaximumColor(),priority:self._priority,stopIfTrue:self._stopIfTrue};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};TwoScaleRule.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.ranges){self.ranges=[];for(var i=0;i<settings.ranges.length;i++){var r=settings.ranges[i];self.ranges.push(new spread.Range(r.row,r.col,r.rowCount,r.colCount))}}if(settings.minType!==keyword_null&&settings.minType!==keyword_undefined){self.setMinimumType(settings.minType)}if(settings.minValue!==keyword_null&&settings.minValue!==keyword_undefined){self.setMinimumValue(settings.minValue)}if(settings.minColor!==keyword_null&&settings.minColor!==keyword_undefined){self.setMinimumColor(settings.minColor)}if(settings.maxType!==keyword_null&&settings.maxType!==keyword_undefined){self.setMaximumType(settings.maxType)}if(settings.maxValue!==keyword_null&&settings.maxValue!==keyword_undefined){self.setMaximumValue(settings.maxValue)}if(settings.maxColor!==keyword_null&&settings.maxColor!==keyword_undefined){self.setMaximumColor(settings.maxColor)}if(settings.priority!==keyword_null&&settings.priority!==keyword_undefined){self._priority=settings.priority}if(settings.stopIfTrue!==keyword_null&&settings.priority!==keyword_undefined){self._stopIfTrue=false}};return TwoScaleRule})(ScaleRule);spread.TwoScaleRule=TwoScaleRule;var ThreeScaleRule=(function(_super){__extends(ThreeScaleRule,_super);function ThreeScaleRule(minType,minValue,minColor,midType,midValue,midColor,maxType,maxValue,maxColor){var _minType=minType,_minValue=minValue,_minColor=minColor,_midType=midType,_midValue=midValue,_midColor=midColor,_maxType=maxType,_maxValue=maxValue,_maxColor=maxColor;if(arguments.length===0){_minType=1;_minValue=keyword_null;_minColor=new spread._Color(255,248,105,107).toString();_midType=4;_midValue=50;_midColor=new spread._Color(255,255,235,132).toString();_maxType=2;_maxValue=keyword_null;_maxColor=new spread._Color(255,99,190,123).toString()}_super.call(this,new ScaleValue(_minType,_minValue),new ScaleValue(_midType,_midValue),new ScaleValue(_maxType,_maxValue));this.expected[0]=_minColor;this.expected[1]=_midColor;this.expected[2]=_maxColor}ThreeScaleRule.prototype.evaluate=function(evaluator,baseRow,baseColumn,actual){var self=this;self._evaluator=evaluator;if(actual!==keyword_undefined&&actual!==keyword_null){var numberValue=NaN;try
{if(spread.Calc.Convert.isNumber(actual)){numberValue=spread.Calc.Convert.toDouble(actual)}}catch(InvalidCastException){return keyword_null}if(isNaN(numberValue)){return keyword_null}var minValue=self._getActualValue(evaluator,baseRow,baseColumn,0);var midValue=self._getActualValue(evaluator,baseRow,baseColumn,1);var maxValue=self._getActualValue(evaluator,baseRow,baseColumn,2);if(minValue!==keyword_undefined&&minValue!==keyword_null&&maxValue!==keyword_undefined||maxValue!==keyword_null&&midValue!==keyword_undefined&&midValue!==keyword_null){if(minValue>maxValue){return keyword_null}if(numberValue<minValue){return self.expected[0]}if(numberValue>=maxValue){return self.expected[2]}var result;if(minValue<=numberValue&&numberValue<=midValue){result=self._evaluate2Scale(numberValue,minValue,midValue);return self._evaluateColor(result,self.expected[0],self.expected[1])}else
{result=self._evaluate2Scale(numberValue,midValue,maxValue);return self._evaluateColor(result,self.expected[1],self.expected[2])}}}return keyword_null};ThreeScaleRule.prototype._init=function(){var self=this;self.scales=new Array(3);self.scales[0]=new ScaleValue(1,keyword_null);self.scales[1]=new ScaleValue(4,50);self.scales[2]=new ScaleValue(2,keyword_null);self.expected=new Array(3);self.expected[0]=new spread._Color(255,248,105,107).toString();self.expected[1]=new spread._Color(255,255,235,132).toString();self.expected[2]=new spread._Color(255,99,190,123).toString()};ThreeScaleRule.prototype.reset=function(){var self=this;self.ranges=keyword_null;self.condition=keyword_null;self.style=keyword_null;self._init();self._evaluator=keyword_null;self._stopIfTrue=false;self._priority=1};ThreeScaleRule.prototype.getMinimumType=function(){var scales=this.scales;return scales&&scales.length===3?scales[0].type:keyword_null};ThreeScaleRule.prototype.setMinimumType=function(type){var scales=this.scales;if(scales&&scales.length===3){scales[0].type=type}};ThreeScaleRule.prototype.getMinimumValue=function(){var scales=this.scales;return scales&&scales.length===3?scales[0].value:keyword_null};ThreeScaleRule.prototype.setMinimumValue=function(value){var scales=this.scales;if(scales&&scales.length===3){scales[0].value=value}};ThreeScaleRule.prototype.getMinimumColor=function(){return this.expected&&this.expected.length===3?this.expected[0]:keyword_null};ThreeScaleRule.prototype.setMinimumColor=function(color){if(this.expected&&this.expected.length===3){this.expected[0]=color}};ThreeScaleRule.prototype.getMidpointType=function(){var scales=this.scales;return scales&&scales.length===3?scales[1].type:keyword_null};ThreeScaleRule.prototype.setMidpointType=function(type){var scales=this.scales;if(scales&&scales.length===3){scales[1].type=type}};ThreeScaleRule.prototype.getMidpointValue=function(){var self=this,scales=self.scales;if(scales&&scales.length===3){if(self._evaluator){if(scales[1].type===2){return self._getHighestValue(self._evaluator)}else if(scales[1].type===1){return self._getLowestValue(self._evaluator)}}return scales[1].value}return keyword_null};ThreeScaleRule.prototype.setMidpointValue=function(value){var scales=this.scales;if(scales&&scales.length===3){scales[1].value=value}};ThreeScaleRule.prototype.getMidpointColor=function(){return this.expected&&this.expected.length===3?this.expected[1]:keyword_null};ThreeScaleRule.prototype.setMidpointColor=function(color){if(this.expected&&this.expected.length===3){this.expected[1]=color}};ThreeScaleRule.prototype.getMaximumType=function(){var scales=this.scales;return scales&&scales.length===3?scales[2].type:keyword_null};ThreeScaleRule.prototype.setMaximumType=function(type){var scales=this.scales;if(scales&&scales.length===3){scales[2].type=type}};ThreeScaleRule.prototype.getMaximumValue=function(){var scales=this.scales;return scales&&scales.length===3?scales[2].value:keyword_null};ThreeScaleRule.prototype.setMaximumValue=function(value){var scales=this.scales;if(scales&&scales.length===3){scales[2].value=value}};ThreeScaleRule.prototype.getMaximumColor=function(){return this.expected&&this.expected.length===3?this.expected[2]:keyword_null};ThreeScaleRule.prototype.setMaximumColor=function(color){if(this.expected&&this.expected.length===3){this.expected[2]=color}};ThreeScaleRule.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"ranges":return value===keyword_null;case"priority":return value===1;case"stopIfTrue":return value===false;default:return false}};ThreeScaleRule.prototype.toJSON=function(){var self=this;var dictData={ruleType:11,ranges:self.ranges,minType:self.getMinimumType(),minValue:self.getMinimumValue(),minColor:self.getMinimumColor(),midType:self.getMidpointType(),midValue:self.getMidpointValue(),midColor:self.getMidpointColor(),maxType:self.getMaximumType(),maxValue:self.getMaximumValue(),maxColor:self.getMaximumColor(),priority:self._priority,stopIfTrue:self._stopIfTrue};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};ThreeScaleRule.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.ranges){self.ranges=[];for(var i=0;i<settings.ranges.length;i++){var r=settings.ranges[i];self.ranges.push(new spread.Range(r.row,r.col,r.rowCount,r.colCount))}}if(settings.minType!==keyword_null&&settings.minType!==keyword_undefined){self.setMinimumType(settings.minType)}if(settings.minValue!==keyword_null&&settings.minValue!==keyword_undefined){self.setMinimumValue(settings.minValue)}if(settings.minColor!==keyword_null&&settings.minColor!==keyword_undefined){self.setMinimumColor(settings.minColor)}if(settings.midType!==keyword_null&&settings.midType!==keyword_undefined){self.setMidpointType(settings.midType)}if(settings.midValue!==keyword_null&&settings.midValue!==keyword_undefined){self.setMidpointValue(settings.midValue)}if(settings.midColor!==keyword_null&&settings.midColor!==keyword_undefined){self.setMidpointColor(settings.midColor)}if(settings.maxType!==keyword_null&&settings.maxType!==keyword_undefined){self.setMaximumType(settings.maxType)}if(settings.maxValue!==keyword_null&&settings.maxValue!==keyword_undefined){self.setMaximumValue(settings.maxValue)}if(settings.maxColor!==keyword_null&&settings.maxColor!==keyword_undefined){self.setMaximumColor(settings.maxColor)}if(settings.priority!==keyword_null&&settings.priority!==keyword_undefined){self._priority=settings.priority}if(settings.stopIfTrue!==keyword_null&&settings.priority!==keyword_undefined){self._stopIfTrue=false}};return ThreeScaleRule})(ScaleRule);spread.ThreeScaleRule=ThreeScaleRule;var DataBarRule=(function(_super){__extends(DataBarRule,_super);function DataBarRule(minType,minValue,maxType,maxValue,color){var _minType=minType,_minValue=minValue,_maxType=maxType,_maxValue=maxValue,_color=color;if(arguments.length===0){_minType=5;_minValue=keyword_null;_maxType=7;_maxValue=keyword_null;_color=new spread._Color(255,99,142,198).toString()}var scaleValue1=new ScaleValue(_minType,_minValue);var scaleValue2=new ScaleValue(_maxType,_maxValue);_super.call(this,scaleValue1,keyword_null,scaleValue2);this._init(_color)}DataBarRule.prototype._init=function(color){var self=this;self._gradient=true;self._color=color;self._showBorder=false;self._borderColor="black";self._dataBarDirection=0;self._negativeFillColor="red";self._useNegativeFillColor=true;self._negativeBorderColor="black";self._useNegativeBorderColor=false;self._axisPosition=0;self._axisColor="black";self._showBarOnly=false};DataBarRule.prototype.reset=function(){var self=this;self.ranges=keyword_null;self.condition=keyword_null;self.style=keyword_null;self._init(new spread._Color(255,99,142,198).toString());self._stopIfTrue=false;self._priority=1;self.scales=[];self.scales[0]=new ScaleValue(5,keyword_null);self.scales[2]=new ScaleValue(7,keyword_null);self.expected=[]};DataBarRule.prototype._calcuteMinValue=function(evaluator,baseRow,baseColumn,index,actual){var self=this;var svalue=self.scales[index];var tpRange=keyword_null;if(svalue){if(svalue.type===6||svalue.type===4){for(var i=0;i<self.ranges.length;i++){if(self.ranges[i].intersect(baseRow,-1,1,-1)){tpRange=self.ranges[i];break}}if(tpRange){return self._getActualValue(evaluator,tpRange.row,tpRange.col,0,actual)}}else
{return self._getActualValue(evaluator,baseRow,baseColumn,0,actual)}}return keyword_null};DataBarRule.prototype._calcuteMaxValue=function(evaluator,baseRow,baseColumn,index,actual){var self=this;var svalue=self.scales[index];var tpRange=keyword_null;if(svalue){if(svalue.type===6||svalue.type===4){for(var i=0;i<self.ranges.length;i++){if(self.ranges[i].intersect(baseRow,-1,1,-1)){tpRange=self.ranges[i];break}}if(tpRange){return self._getActualValue(evaluator,tpRange.row,tpRange.col,2,actual)}}else
{return self._getActualValue(evaluator,baseRow,baseColumn,2,actual)}}return keyword_null};DataBarRule.prototype._evaluateNoneScale=function(currentValue,minValue,maxValue,axisScale){axisScale=0.0;if(maxValue===minValue){if(currentValue<minValue){return[0.0,axisScale]}else if(currentValue>maxValue){return[1.0,axisScale]}else
{return[0.5,axisScale]}}if(currentValue>=maxValue){return[1.0,axisScale]}else if(currentValue<=minValue){return[0.0,axisScale]}else
{return[(currentValue-minValue)/(maxValue-minValue),axisScale]}};DataBarRule.prototype._evaluateMidScale=function(currentValue,minValue,maxValue,axisScale){axisScale=0.5;var totalValue=Math_abs(maxValue-minValue);if(maxValue>0&&minValue>=0){if(maxValue===minValue){return[0.5,axisScale]}if(currentValue>=maxValue){return[0.5,axisScale]}else if(currentValue<=minValue){return[minValue/maxValue*0.5,axisScale]}else
{return[Math_abs(currentValue/maxValue)*0.5,axisScale]}}else if(maxValue>0&&minValue<0){var positiveMaxScale=maxValue>Math_abs(minValue)?0.5:maxValue/totalValue;var negativeMaxScale=maxValue>Math_abs(minValue)?minValue/totalValue:-0.5;if(currentValue>0){if(currentValue>=maxValue){return[positiveMaxScale,axisScale]}else
{return[(currentValue/maxValue)*positiveMaxScale,axisScale]}}else if(currentValue<0){if(currentValue<=minValue){return[negativeMaxScale,axisScale]}else
{return[(currentValue/minValue)*negativeMaxScale,axisScale]}}else
{return[0.0,axisScale]}}else if(maxValue<=0&&minValue<0){if(maxValue===minValue){return[-0.5,axisScale]}if(currentValue>=maxValue){return[-maxValue/minValue*0.5,axisScale]}else if(currentValue<=minValue){return[-0.5,axisScale]}else
{return[-currentValue/minValue*0.5,axisScale]}}else if(maxValue===0&&minValue===0){return[0.0,axisScale]}axisScale=-1;return[-1,axisScale]};DataBarRule.prototype._evaluateAutoScale=function(currentValue,minValue,maxValue,axisScale){var totalValue=Math_abs(maxValue-minValue);if(maxValue>0&&minValue>=0){axisScale=0.0;if(minValue===maxValue){if(currentValue<minValue){return[0.0,axisScale]}else if(currentValue>maxValue){return[1.0,axisScale]}else
{return[0.5,axisScale]}}if(currentValue<=minValue){return[0.0,axisScale]}else if(currentValue>=maxValue){return[1.0,axisScale]}else
{return[(currentValue-minValue)/totalValue,axisScale]}}else if(maxValue>0&&minValue<0){axisScale=Math_abs(minValue)/totalValue;if(currentValue>=maxValue){return[1-axisScale,axisScale]}else if(currentValue<=minValue){return[-axisScale,axisScale]}else
{if(currentValue===0){return[0.0,axisScale]}else
{return[(currentValue-0.0)/totalValue,axisScale]}}}else if(maxValue<=0&&minValue<0){axisScale=1.0;if(maxValue===minValue){if(currentValue<minValue){return[-1.0,axisScale]}else if(currentValue>maxValue){return[0.0,axisScale]}else
{return[-0.5,axisScale]}}if(currentValue>=maxValue){return[-0.0,axisScale]}else if(currentValue<=minValue){return[-1.0,axisScale]}else
{return[(currentValue-maxValue)/totalValue,axisScale]}}else if(maxValue===0&&minValue===0){axisScale=0.5;if(currentValue>0){return[0.5,axisScale]}else if(currentValue<0){return[-0.5,axisScale]}else
{return[0.0,axisScale]}}axisScale=-1;return[-1,axisScale]};DataBarRule.prototype._evaluateScale=function(currentValue,minValue,maxValue,axisScale){var self=this;if(self._axisPosition===0){return self._evaluateAutoScale(currentValue,minValue,maxValue,axisScale)}else if(self._axisPosition===1){return self._evaluateMidScale(currentValue,minValue,maxValue,axisScale)}else
{return self._evaluateNoneScale(currentValue,minValue,maxValue,axisScale)}};DataBarRule.prototype._paintDataBar=function(ctx,obj,x,y,w,h){var rc=new spread.Rect(x+2,y+2,w-4,h-4),startX=rc.x,startY=rc.y,width=Math_floor(Math_abs(rc.width*obj.scale)),height=rc.height;if(obj.axisLocation===0){if(obj.scale<=0){width=0}}else if(obj.axisLocation===1){if(obj.scale<0){startX=startX+rc.width-width}else
{width=0}}else
{var axisX=Math_floor(rc.width*obj.axisLocation+startX)+0.5,axisY=rc.y,axisWidth=1.0,axisHeight=h-1;ctx.lineWidth=axisWidth;ctx.strokeStyle=obj.axisColor;ctx.beginPath();for(var len=0;len<=axisHeight;len+=2){if(obj.direction===1){ctx.moveTo(2*x+w-axisX,axisY+len);ctx.lineTo(2*x+w-axisX,axisY+len+1)}else
{ctx.moveTo(axisX,axisY+len);ctx.lineTo(axisX,axisY+len+1)}}ctx.stroke();if(obj.scale>0.0){startX=axisX+axisWidth}else if(obj.scale<0.0){startX=axisX-width}else
{width=0.0}}if(obj.showBorder){startX=Math_floor(startX)+0.5;width-=1;startY+=0.5;height-=1}if(width>=0&&height>=0){var fillStyle=obj.fillColor;if(obj.isGradient){var factor=0.9;if(obj.direction===1){fillStyle=ctx.createLinearGradient(2*x+w-startX-width,startY,2*x+w-startX,startY+height)}else
{fillStyle=ctx.createLinearGradient(startX,startY,startX+width,startY+height)}var tempColor=spread._Color.parse(obj.fillColor),color1=new spread._Color(tempColor.a,Math_floor(255*factor+tempColor.r*(1-factor)),Math_floor(255*factor+tempColor.g*(1-factor)),Math_floor(255*factor+tempColor.b*(1-factor))).toString(),offset1=obj.scale<0?1-factor:factor,color2=obj.fillColor,offset2=obj.scale<0?1:0;if(obj.direction===1){fillStyle.addColorStop(offset1,color2);fillStyle.addColorStop(offset2,color1)}else
{fillStyle.addColorStop(offset1,color1);fillStyle.addColorStop(offset2,color2)}}if(ctx.fillStyle!==fillStyle){ctx.fillStyle=fillStyle}if(obj.direction===1){ctx.fillRect(2*x+w-startX-width,startY,width,height)}else
{ctx.fillRect(startX,startY,width,height)}if(obj.showBorder&&width>0&&height>0){ctx.strokeStyle=obj.borderColor;if(obj.direction===1){ctx.strokeRect(2*x+w-startX-width,startY,width,height)}else
{ctx.strokeRect(startX,startY,width,height)}}}};DataBarRule.prototype.evaluate=function(evaluator,baseRow,baseColumn,actual){var value=actual;if(value!==keyword_null&&value!==keyword_undefined){var numberValue=NaN;try
{if(spread.Calc.Convert.isNumber(value)){numberValue=spread.Calc.Convert.toDouble(value)}}catch(ex){return keyword_null}if(isNaN(numberValue)){return keyword_null}var self=this;var minValue=self._calcuteMinValue(evaluator,baseRow,baseColumn,0,actual);var maxValue=self._calcuteMaxValue(evaluator,baseRow,baseColumn,2,actual);if(minValue instanceof Date){minValue=new spread._DateTimeHelper(minValue).toOADate()}if(maxValue instanceof Date){maxValue=new spread._DateTimeHelper(maxValue).toOADate()}if(minValue!==keyword_null&&minValue!==keyword_undefined&&maxValue!==keyword_null&&maxValue!==keyword_undefined){if(minValue>maxValue){var tpNum=maxValue;maxValue=minValue;minValue=tpNum}var axisScale;var resultArray=self._evaluateScale(numberValue,minValue,maxValue,axisScale);if(!resultArray||resultArray.length<2){return keyword_null}var barScale=resultArray[0];axisScale=resultArray[1];var fillColor=numberValue<0&&self._useNegativeFillColor?self._negativeFillColor:self._color;var borderFillColor=numberValue<0&&self._useNegativeBorderColor?self._negativeBorderColor:self._borderColor;return{fillColor:fillColor,borderColor:borderFillColor,showBorder:self._showBorder,axisColor:self._axisColor,isGradient:self._gradient,direction:self._dataBarDirection,axisLocation:axisScale,scale:barScale,showBarOnly:self._showBarOnly}}}return keyword_null};DataBarRule.prototype.minimumType=function(value){var self=this,scales=self.scales;if(arguments.length===0){return scales&&scales.length===3?scales[0].type:keyword_null}else
{if(scales&&scales.length===3){scales[0].type=value}return self}};DataBarRule.prototype.minimumValue=function(value){var self=this,scales=self.scales;if(arguments.length===0){return scales&&scales.length===3?scales[0].value:keyword_null}else
{if(scales&&scales.length===3){scales[0].value=value}return self}};DataBarRule.prototype.maximumType=function(value){var self=this,scales=self.scales;if(arguments.length===0){return scales&&scales.length===3?scales[2].type:keyword_null}else
{if(scales&&scales.length===3){scales[2].type=value}return self}};DataBarRule.prototype.maximumValue=function(value){var self=this,scales=self.scales;if(arguments.length===0){return scales&&scales.length===3?scales[2].value:keyword_null}else
{if(scales&&scales.length===3){scales[2].value=value}return self}};DataBarRule.prototype.gradient=function(value){if(arguments.length===0){return this._gradient}else
{this._gradient=value;return this}};DataBarRule.prototype.color=function(value){if(arguments.length===0){return this._color}else
{this._color=value;return this}};DataBarRule.prototype.showBorder=function(value){if(arguments.length===0){return this._showBorder}else
{this._showBorder=value;return this}};DataBarRule.prototype.borderColor=function(value){if(arguments.length===0){return this._borderColor}else
{this._borderColor=value;return this}};DataBarRule.prototype.dataBarDirection=function(value){if(arguments.length===0){return this._dataBarDirection}else
{this._dataBarDirection=value;return this}};DataBarRule.prototype.negativeFillColor=function(value){if(arguments.length===0){return this._negativeFillColor}else
{this._negativeFillColor=value;return this}};DataBarRule.prototype.useNegativeFillColor=function(value){if(arguments.length===0){return this._useNegativeFillColor}else
{this._useNegativeFillColor=value;return this}};DataBarRule.prototype.negativeBorderColor=function(value){if(arguments.length===0){return this._negativeBorderColor}else
{this._negativeBorderColor=value;return this}};DataBarRule.prototype.useNegativeBorderColor=function(value){if(arguments.length===0){return this._useNegativeBorderColor}else
{this._useNegativeBorderColor=value;return this}};DataBarRule.prototype.axisPosition=function(value){if(arguments.length===0){return this._axisPosition}else
{this._axisPosition=value;return this}};DataBarRule.prototype.axisColor=function(value){if(arguments.length===0){return this._axisColor}else
{this._axisColor=value;return this}};DataBarRule.prototype.showBarOnly=function(value){if(arguments.length===0){return this._showBarOnly}else
{this._showBarOnly=value;return this}};DataBarRule.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"ranges":return value===keyword_null;case"gradient":return value===true;case"showBorder":return value===false;case"borderColor":return value==="black";case"dataBarDirection":return value===0;case"negativeFillColor":return value==="red";case"useNegativeFillColor":return value===true;case"negativeBorderColor":return value==="black";case"useNegativeBorderColor":return value===false;case"axisPosition":return value===0;case"axisColor":return value==="black";case"showBarOnly":return value===false;case"priority":return value===1;case"stopIfTrue":return value===false}};DataBarRule.prototype.toJSON=function(){var self=this;var dictData={ruleType:12,ranges:self.ranges,minType:self.minimumType(),minValue:self.minimumValue(),maxType:self.maximumType(),maxValue:self.maximumValue(),gradient:self.gradient(),color:self.color(),showBorder:self.showBorder(),borderColor:self.borderColor(),dataBarDirection:self.dataBarDirection(),negativeFillColor:self.negativeFillColor(),useNegativeFillColor:self.useNegativeFillColor(),negativeBorderColor:self.negativeBorderColor(),useNegativeBorderColor:self.useNegativeBorderColor(),axisPosition:self.axisPosition(),axisColor:self.axisColor(),showBarOnly:self.showBarOnly(),priority:self._priority,stopIfTrue:self._stopIfTrue};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};DataBarRule.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.ranges){self.ranges=[];for(var i=0;i<settings.ranges.length;i++){var r=settings.ranges[i];self.ranges.push(new spread.Range(r.row,r.col,r.rowCount,r.colCount))}}if(settings.minType!==keyword_null&&settings.minType!==keyword_undefined){self.minimumType(settings.minType)}if(settings.minValue!==keyword_null&&settings.minValue!==keyword_undefined){self.minimumValue(settings.minValue)}if(settings.maxType!==keyword_null&&settings.maxType!==keyword_undefined){self.maximumType(settings.maxType)}if(settings.maxValue!==keyword_null&&settings.maxValue!==keyword_undefined){self.maximumValue(settings.maxValue)}if(settings.gradient!==keyword_null&&settings.gradient!==keyword_undefined){self.gradient(settings.gradient)}if(settings.color!==keyword_null&&settings.color!==keyword_undefined){self.color(settings.color)}if(settings.showBorder!==keyword_null&&settings.showBorder!==keyword_undefined){self.showBorder(settings.showBorder)}if(settings.borderColor!==keyword_null&&settings.borderColor!==keyword_undefined){self.borderColor(settings.borderColor)}if(settings.dataBarDirection!==keyword_null&&settings.dataBarDirection!==keyword_undefined){self.dataBarDirection(settings.dataBarDirection)}if(settings.negativeFillColor!==keyword_null&&settings.negativeFillColor!==keyword_undefined){self.negativeFillColor(settings.negativeFillColor)}if(settings.useNegativeFillColor!==keyword_null&&settings.useNegativeFillColor!==keyword_undefined){self.useNegativeFillColor(settings.useNegativeFillColor)}if(settings.negativeBorderColor!==keyword_null&&settings.negativeBorderColor!==keyword_undefined){self.negativeBorderColor(settings.negativeBorderColor)}if(settings.useNegativeBorderColor!==keyword_null&&settings.useNegativeBorderColor!==keyword_undefined){self.useNegativeBorderColor(settings.useNegativeBorderColor)}if(settings.axisPosition!==keyword_null&&settings.axisPosition!==keyword_undefined){self.axisPosition(settings.axisPosition)}if(settings.axisColor!==keyword_null&&settings.axisColor!==keyword_undefined){self.axisColor(settings.axisColor)}if(settings.showBarOnly!==keyword_null&&settings.showBarOnly!==keyword_undefined){self.showBarOnly(settings.showBarOnly)}if(settings.priority!==keyword_null&&settings.priority!==keyword_undefined){self._priority=settings.priority}if(settings.stopIfTrue!==keyword_null&&settings.priority!==keyword_undefined){self._stopIfTrue=false}};return DataBarRule})(ScaleRule);spread.DataBarRule=DataBarRule;var IconCriterion=(function(){function IconCriterion(isGreaterThanOrEqualTo,iconValueType,iconValue){this.isGreaterThanOrEqualTo=isGreaterThanOrEqualTo;this.iconValueType=iconValueType;this.iconValue=iconValue}return IconCriterion})();spread.IconCriterion=IconCriterion;var IconSetRule=(function(_super){__extends(IconSetRule,_super);function IconSetRule(iconSetType){var _iconSetType=iconSetType;if(arguments.length===0){_iconSetType=0}_super.call(this,keyword_null,keyword_null,keyword_null);this._init(_iconSetType)}IconSetRule.prototype._initIconSetType=function(iconSetType){var self=this;self._iconSetType=iconSetType;if(self._iconSetType>=0&&self._iconSetType<=9){self._iconCriteria=new Array(2);self._iconCriteria[0]=new IconCriterion(true,4,33);self._iconCriteria[1]=new IconCriterion(true,4,67)}else if(self._iconSetType>=10&&self._iconSetType<=14){self._iconCriteria=new Array(3);self._iconCriteria[0]=new IconCriterion(true,4,25);self._iconCriteria[1]=new IconCriterion(true,4,50);self._iconCriteria[2]=new IconCriterion(true,4,75)}else if(self._iconSetType>=15&&self._iconSetType<=19){self._iconCriteria=new Array(4);self._iconCriteria[0]=new IconCriterion(true,4,20);self._iconCriteria[1]=new IconCriterion(true,4,40);self._iconCriteria[2]=new IconCriterion(true,4,60);self._iconCriteria[3]=new IconCriterion(true,4,80)}else if(self._iconSetType>19){self._iconCriteria=new Array}};IconSetRule.prototype._init=function(iconSetType){this._showIconOnly=false;this._reverseIconOrder=false;this._initIconSetType(iconSetType)};IconSetRule.prototype._modifyIconIndex=function(index){var iconCount=this._iconCriteria.length+1;if(this._reverseIconOrder&&iconCount>2){return iconCount-1-index}return index};IconSetRule.prototype._getActualValue=function(evaluator,baseRow,baseColumn,index){var self=this;var value=self._iconCriteria[index];if(value){switch(value.iconValueType){case 7:return self._calculateValue(evaluator,baseRow,baseColumn,value.iconValue);case 1:return self._calculateValue(evaluator,baseRow,baseColumn,value.iconValue);case 4:return self._calculatePercent(evaluator,baseRow,baseColumn,value.iconValue);case 5:return self._calculatePercentile(evaluator,baseRow,baseColumn,value.iconValue)}}return keyword_null};IconSetRule.prototype._paintIconSet=function(ctx,obj,x,y,w,h,style,imageLoader){var startX=x+1,startY=y+2,width=16.0,height=16.0;if(obj.showIconOnly){if(style.hAlign==1){startX=x+w/2.0-width/2.0}else if(style.hAlign==2){startX=x+w-width-2}}if(style.vAlign==1){startY=y+h/2.0-height/2.0}else if(style.vAlign==2){startY=y+h-height-2}var icon=IconSetRule.getIcon(obj.iconSetType,obj.iconIndex);try
{if(icon&&imageLoader){if($.type(icon)==="string"){if(imageLoader.getState(icon)){ctx.drawImage(imageLoader.getImage(icon),startX,startY,width,height)}else
{imageLoader.addImage(icon)}}else
{if(imageLoader.getState(icon.image)){ctx.drawImage(imageLoader.getImage(icon.image),icon.x,icon.y,icon.w,icon.h,startX,startY,width,height)}else
{imageLoader.addImage(icon.image)}}}}catch(ex){}};IconSetRule.prototype.evaluate=function(evaluator,baseRow,baseColumn,actual){var self=this;var value=actual;if(value===keyword_null||value===keyword_undefined){return keyword_null}var numberValue=NaN;try
{if(spread.Calc.Convert.isNumber(value)){numberValue=spread.Calc.Convert.toDouble(value)}}catch(ex){return keyword_null}if(isNaN(numberValue)){return keyword_null}var iconCount=0,iconSetType=self._iconSetType,iconCriteria=self._iconCriteria;if(iconSetType>=0&&iconSetType<=9){iconCount=3}else if(iconSetType>=10&&iconSetType<=14){iconCount=4}else if(iconSetType>=15&&iconSetType<=19){iconCount=5}if(!iconCriteria){return 0}var lastValue=Number.MAX_VALUE,showIconOnly=self._showIconOnly,criterion,iconValue;for(var n=iconCount-1;n>0;n--){if(n<iconCriteria.length+1){criterion=iconCriteria[n-1];iconValue=(criterion&&criterion.iconValue);if(iconValue!==keyword_null&&typeof(iconValue)!==const_undefined){var currentValue=self._getActualValue(evaluator,baseRow,baseColumn,n-1);if(currentValue!==keyword_null&&typeof(currentValue)!==const_undefined){if(criterion.isGreaterThanOrEqualTo){if(numberValue<lastValue&&numberValue>=currentValue){return{iconSetType:iconSetType,iconIndex:self._modifyIconIndex(n),showIconOnly:showIconOnly}}}else
{if(numberValue<lastValue&&numberValue>currentValue){return{iconSetType:iconSetType,iconIndex:self._modifyIconIndex(n),showIconOnly:showIconOnly}}}}else
{return{iconSetType:iconSetType,iconIndex:self._modifyIconIndex(0),showIconOnly:showIconOnly}}}else
{return{iconSetType:iconSetType,iconIndex:self._modifyIconIndex(0),showIconOnly:showIconOnly}}}else
{return{iconSetType:iconSetType,iconIndex:self._modifyIconIndex(0),showIconOnly:showIconOnly}}}return{iconSetType:iconSetType,iconIndex:self._modifyIconIndex(0),showIconOnly:showIconOnly}};IconSetRule.prototype.reset=function(){var self=this;self.ranges=keyword_null;self.condition=keyword_null;self.style=keyword_null;self._showIconOnly=false;self._reverseIconOrder=false;self._iconSetType=0;self._iconCriteria=keyword_null;self._stopIfTrue=false;self._priority=1;self.scales=[];self.expected=[]};IconSetRule.prototype.iconSetType=function(value){if(arguments.length===0){return this._iconSetType}else
{this._initIconSetType(value);return this}};IconSetRule.prototype.reverseIconOrder=function(value){if(arguments.length===0){return this._reverseIconOrder}else
{this._reverseIconOrder=value;return this}};IconSetRule.prototype.showIconOnly=function(value){if(arguments.length===0){return this._showIconOnly}else
{this._showIconOnly=value;return this}};IconSetRule.prototype.iconCriteria=function(){return this._iconCriteria};IconSetRule.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"showIconOnly":return value===false;case"reverseIconOrder":return value===false;case"priority":return value===1;case"stopIfTrue":return value===false;default:return false}};IconSetRule.prototype.toJSON=function(){var self=this;var dictData={ruleType:13,ranges:self.ranges,iconSetType:self.iconSetType(),iconCriteria:self.iconCriteria(),showIconOnly:self.showIconOnly(),reverseIconOrder:self.reverseIconOrder(),priority:self._priority,stopIfTrue:self._stopIfTrue};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};IconSetRule.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.ranges){self.ranges=[];for(var i=0;i<settings.ranges.length;i++){var r=settings.ranges[i];self.ranges.push(new spread.Range(r.row,r.col,r.rowCount,r.colCount))}}if(settings.iconSetType!==keyword_null&&settings.iconSetType!==keyword_undefined){self._initIconSetType(settings.iconSetType)}if(settings.iconCriteria!==keyword_null&&settings.iconCriteria!==keyword_undefined){var length=settings.iconCriteria.length;for(var i=0;i<length;i++){var iconCriterion=settings.iconCriteria[i];self._iconCriteria[i]=new IconCriterion(iconCriterion.isGreaterThanOrEqualTo,iconCriterion.iconValueType,iconCriterion.iconValue)}}if(settings.showIconOnly!==keyword_null&&settings.showIconOnly!==keyword_undefined){self.showIconOnly(settings.showIconOnly)}if(settings.reverseIconOrder!==keyword_null&&settings.reverseIconOrder!==keyword_undefined){self.reverseIconOrder(settings.reverseIconOrder)}if(settings.priority!==keyword_null&&settings.priority!==keyword_undefined){self._priority=settings.priority}if(settings.stopIfTrue!==keyword_null&&settings.priority!==keyword_undefined){self._stopIfTrue=false}};IconSetRule._getImageSrc=function(){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAQgCAYAAADvxtzfAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO"+"wgAADsIBFShKgAAANyVJREFUeF7tfQl8TFf7/6CvVsXaIkqrtVZqKxq0SCyxxxpr0ailtUYoYilCrLWE"+"qC0h9i2xJyKSEJSiUcQWW4tGFRFEJJlkMs//+Z577yzJzGQm+v5/fd93ns/n+7nnnvN8v2e59z5z7ty5"+"Z1R/u7m4uDR1dXWlFi1aDJOzrDeFfPv2bbJZxJCswGqRnOSYmJg8RZjjgTKxk5MMREVHmRVRyDoBzmhn"+"KBIVFU2RR45QRMThXCIKWckTArCcIhERERQeFk4HDhwwEgFu3bqVnksAllPkwP4DtHfvXgoNDdHlGSKX"+"ACynSEhIKO3YsYO2bt1KGzdtovXB6ykwMNC8ACynCMibNm2k4PUSefXq1ZYFYIYiIK8PDtaRf/zxR6sE"+"dOeG0myFvDxguWUBQzKgI69cSQHLA8jff5l5Ac50MSRbQi6Bnj17FkKmLZCpdjM0UwNlCTJNb3wO6C7X"+"vGBSAKaIKJctAswRjg+HDh2i/fv3U4h8dZoVgBm2JDIyksLDw2nf3n20a9cu2rJlS94CiD6KQNjBg7R3"+"zx7auWMnbd68mdavW2dZwJAM7N4dStu3b6dNGzdSUFAQreRrwqxATnJoaCht27aNNmzYQGsD1/LVuJKW"+"LfM3LZCTrPQ3eH2wLs8QRgI5yTu4v5u4v+vk/ioEQx+dQE6y0t9A7q+hMx+ZdoaxQidgSNb1d60UOA3J"+"wplNEdEJGKoCa9asMUtWjPNF4JF3c4tYIiuGACQnJTMUyYts1hSRfJHt9k+xlLUuHi8DmxPj5KMVLg5y"+"tnUmyEEuROnXKWXN57aJGJIVvFjlbJ1ITrL2N2+9yIp6JkVeBroEpaxuLF1MLwObGZEF7ozR5T33/8RI"+"hNPBzxZUpBcrG0oCogVrmuhFmKy9PZLxjV5kcVUhAnLy/Aoi78WKuvrLGSIpqz7Ti4B8czDRjYG6vGcL"+"P6Dk+e+R9uWldOw/X1ZTLwCDyIuAunqRmwOIEvqQ9noPXZ4hnnGrZKreIPLcv6bOSXutO9E1d6LLbYni"+"WxBdakp00VkS+KFSbgEYRJ4trqIXudKWtPEtZXIjogv1RX7yvPKmBWBChEdaCMhkrSB/StrztUX+U793"+"zQukrnWplzy/vNQKmaxFzb8y+bzUxaezipsWkMjvSWQANf/KZNQcx+Rfqon8pJlvmxjEda4uuprzwJPp"+"hXMLvPixPr0IqMNnX01xmDDSyQsqUPLcMpQ8uxQ99S1GSTOKUNL3henJ1ILmx+B/2XCN4zLFlYaLRTeQ"+"fNbhxMGxx+HDETA5iAgUyhmYF3AkZJqxKde8ctlKAWYUaW8N5cubr9BrHpIAH06ZktskEelsVMhaJmuv"+"9SDt1Q4iH+eE7G5sCF2IPgggQkCuWcs1a68wGZc15+PEkil6U8gIYXASAmg2ggpqBvliY0mAz06ZJpmO"+"zEFUT+5vVLOWydrz9SQBPsVlqp6MMK4jJ3Czr/OAgSznGUIXkXRk/iBRCkWzMdoGZBxewytVFxNBxkeZ"+"UpBztCXnKoQoZRgrcMUqAsZkbrbos5wHR5CFM5sSrXDZiwwUGn20GZAR5g3JiiHwIHbIu7lFAHzQmCKb"+"NUMRfNTZRFZMiPCHbb7Idvs3WIl1Dh4l1xWNKx74tu0zd5BLrCt675vY4VR8zduJxVfYIGJIXnEhiLAt"+"tvytxLcXWyGSk9zuWCedSNEfCie+PfdN8yKG5ICLgdQ6pr2AGwP7yH9r1r8S35xhQsSIfGkNuUS65cLy"+"S2uFSOFpbyS+6VNIL2JIXh6/mh1X0zJGk3BXhovYIh95KIPfG98VSizkLYvwoaISgYw1Ran4yrep2yl3"+"8o9fSZ/u/5zqy/C/vFLkF570Bv1rfCF6w7sgFRptZn7gsPQtWnplBTmFNqRPQj8jp92f8X4AFfZ5wzQh"+"pxX94S1acnUZVdlRl6pur8Ooy/vL0WzrBN6e9yYtvuZP72+uSe9vceKtEy25tpQKjbVySlNkdmFalLCE"+"ym2oRuWCq1FZBvYLjbJS4K0ZhemHG4uoVNBHVHrdR2K7iPcLDi9gnUDhqW+wwA9UfO0HOmC/wDfWCkwq"+"RAtvLsyFAkNV1gn8i0cbA4bjjGYX+JYB8mArBexm+TtF2cWywdHwyxgFNgsoDyuAfAlERUXRkagjdOSI"+"9LTDZoGIQ4cE8E1mvgQOHDwgnnAoTzlsFti9e7cO+RLAk40d2yWYFTD3hTwImzdtok2MzZs26wRyQogo"+"X3+dOXNGOCrAl5HrghgGX0oC8IM/eEIAllNk9epVtGr1avFgQoFZsmI5RQJWBFBAwAqxzZOsWE6Rpf7S"+"N7hWkRXLKWITWTFDEZvJiiki+SLbTW/KIPI1U1jOss0g8FoiIBueCzaLgJjzbDQSQWZegIBZEUMHSwiU"+"HxfkElEETp0+TcdPnKDomGg6FBEhPU8KCRHPWzdsCGaBtbRq5apcIiYEYsQz5/0HJIFtEBDPWyGwklYE"+"GMcGvcApFjgutUAIyC2AQHDwBrkF0uMhky3IC6bGQDeIeUERyUW2xhSBfJFhIOWbDAMx32TYa5FhfLYZ"+"Pwqym3WGyxQjn68jYEi2+QTKSbbpFDZFxjzRKhFTZMwNxRyRY4NFEVNkZW6o4CDPF82K5CQryDlHVJBL"+"BDs5AUdpfrjdaI6YE9z63NcJCkDYvFmaH27irSIgu1g2RSAIc8R1QQL5Eli9ynh+aLOANEeUkC8B/6VL"+"eY64lPzleaLNAosXL9YhXwI5YZOAOcgudrPGHgz7ksxBdrFsfwzuQ3TnTi5YLXB3YHdByAoJ1QH797/u"+"bZ3A7T7ukgDHgqxtOyhz23ax/3v/btYJ3OjRRhAyN26izA0SsH+zZ3vrBK65uwqCek0QqXlupF4TKPav"+"d25pncDldl8IQsayFZSxPIC3AWL/cvum1glccmssCOkLf6CMBYsYP4h95Msuervi4uRw+YtamguNaz6E"+"A4DDBUKa72xK9/VjzBb7yD/a+BOBsHJvvTzw7hsJQuSScw0PEFOjDgtHBWlTpgm8mjzNKD9x5TIKr+5I"+"e0v+q7YQgJ2p/ZHHL80+pZeRh4TTq/ETGBNlID1B5P+hI6v0ZMVO1HD0+Mm5JqVEhEsio8cKpDIE+Ud/"+"82TFoj8o7QGnF4cOClLq8FHG5KIWyIodciwiRJ6HH7C+5py2r3Qhj32lCj2+7jPW+ppz2u4SKtESm2q2"+"W25LXd+SHk1W5f+p18v1LpQS+HlWvkVeBjWjjMshlBL0Rf5EXq7l4JJ+XRIJNCHy1NeBnvqVpuR5ZSl5"+"QUV6trgyPfevQS8CalPKygaCqDx/NCmSNLOIzsESxMNr3uYSefJ9YcnpXCXpxxnna5MWP1S55CI98cUD"+"azyHxaPzO3xl5hRJmvaGTkAbV50F6pD2gjNp4zkyX20vfkYjHiFD4PYo3U+NhMjqxq9USVMLGrfgV24B"+"C9AlV+nhrWELWEDfgqaaRz6qdqonU1SSQB4wGoPVzhJZjAELPJlSgJ5wV5Kmv0U4KniqnzwXR6WCICgi"+"SD//sZ6ebI09W/i+jvzMv6ZtZBiecAvyDx/aTobhNwZP5znmjwxL9itF+SbbLf9WhOHJCGHEyUAaeSiz"+"aM6MhOrVq1OvXr1o2rRpAkgjD2Wyj0nzKlKkiGb8+PEUGxsrgFtfQNlHGXzgK1H05la0aFENfk4NR/zI"+"ecWKFTRr1iyazViwYIH4pTTK4ANfcCSqZPFo6rFjx2jVqlXk5+dHM2fOpKnTptKECRPIy8uLxo4dS/Pn"+"zxc+8AVHoqpUTcuXLy/U8TPjuXPnSuSpEnnMmDE0bNgw6t9/APXt00c8a4AvOOBCwAeDBOUlS5aQr69v"+"DvJQGsDkHh49qEP79uTNLYEvOOBCwB9NxA/b0cRpCnm0XPOA/tSjh0Ru4eJCLfjeCb7ggAsBPzhitOfN"+"m0cTDZo9QCF3aM83XS7UyNmZGtSvL3xRzlxfCAxu3bq1aNaiRYtYmclDQeZmi5o76Mh1atchV24FfMFh"+"Lk4uVRk+LGp80YABQtNRs4eoGWRXHbkGn0w4nPAFB1wIwPxdZGUMZN++fUWfDcnVq1UjrzFewge+4EhU"+"yUow4keMGCEOEe7cO7u7i2a6NGsmtkv5Xhpl8IGvzDGyCoyzzlwjfrcOZ4z2zp07RBp5KIMP4wMQTBmu"+"tnGMRFw87twKQL6QEhkTZB+rzInRUQbSdrPWFi9eXISvd89Jk3xCvL2940aOHBk3ePDQkP79+3t6eHhY"+"PgIcSJynT5+e4OMzmcaNG0cjR42kIUOGiOuiZ8+e1KlTp4Q2bdqYjokcvryYrPGZ7CPIo0aOoiFDh/Dl"+"PIB6MblzZ3dya+NGzZo11TRs1Mg4JnIQcZv+/XTNZF3NTBY19+eae4mTqY2bGzVv3ozPxs/42qit+bjq"+"x/qYyDXHKzWP5JqHDuEoJDe7c+fO1IZrbt68uUSuw1dljepUqVIlKSbOmDGjqb7Zxn1GzW5t2lAzQear"+"EuTqNejDDz8kR46JpUqVaqqaxMNtasBwNbq5tdHXXLeuiAcgI6C+88475ODg4KPiQ+U/Stdng5q5z81E"+"n6Waq9eoQZU+rCTIpd8pTcWKFaO33nrLX8XXtx9GW0/uLJqtG7A6XLMgKzXryFSoUCFfFdc8WN9sJivN"+"/oxrrss1iz5LNb9T+h09+Q3xuxxP1aBBg8p49PJQS2RltA0GrJJM5j4r5DcKCbI+Jrp3cvfHoVJGu658"+"qKQBc6TSBjXLZEAfEznmleAzLP4zpWbus+Fo68hSs4HcMbFx48YV6tSpfdbwUJWWyW++9aZhzeZjYsWK"+"FYvwGTbO0dEx0XjAxC+hbIuJfJI4FS5cuCMfKntMtMYmz91J5mBNuXA4dvpWLigOeZXbBWQHc7Cm/PXN"+"lLICa8rz7GNe5XYB2cEcrCm3299hpkZXgTXleR7nvMrtArKDOVhT/jdYrRAyCzZTNSsQfDj2mH4tFwwF"+"LI6BXYANjubABkdzEHy7/Q1manQVWFOe53HOq9wuIDuYgzXlf4OZugoVWFOOhKV4kGe5XUByMAtryu32"+"d5ip0VXAZuoqVCD4cLR0nOFoMR7YBdjgaA5scDQHwX99M1WzAmvKkbA0BnmW2wUkB7Owptxuf4eZGl0F"+"1pQjYfE451VuF5AczMKa8tc3U8oKrClHwmIf8yq3C0gOZmFNud3+Zjt9+nSRY8eOecbExIQciYqKi4w8"+"EhcRERESFhHhuXPnTstPuaKPH3eOPno0AW+W4YcaypKoeCHk4MGDtP/AgYQ9e/aYfu58NDbWK+boUY1E"+"jiaumSIOH6bwcJDDQKa9e/fhnQ4Nt8T4uXNsbKwbyGKhxegoOnwkUiIfCqeDYUyWl0XFCyF4VW3Hjh2a"+"bdu26Z87Mzle1CzIR+iwIHPNOrKoWZCxhiJ+TrF161bpuTMPWFOFHKnUjGYb1byHdoWE6slbtopfBW3c"+"uLGpKioqxicqWu4zD1juPu+hkF1M3rmLtm8zIlNwcLCPKjIqyl+MtqiZ+wzy/v26mrGi684du2ib1Gzx"+"asrGDZtow/pg/PDFXxUZGemnb/ZB8SuXfQYDJmqWm70JZFHzBrGOZNDaIF8VH+PBumYb9Fki6waMm72F"+"yZvEao7r162ndYFBtHbtWk8IlOGa1YK8T+rzLh15h9xnJotmo2YmBzF5zVo1d0F67sxkf5M1K2RpwGTy"+"OvGm4drVa/XPnXft2lUiNDQ0XiyBC/I2ueZNClmqOShQR45fs2aN8XNnrrXC9h07zhoN2IaN4u1Kw5qZ"+"eJZh+rkzixTZunnrOD5UiQp5nb7mRK55An4lIrtbNh4gp6CgoI7AulXr7M+d/27rues1Xpr0vPyNl2f8"+"tydHXBlh29qKMJAHXf6WAJtFvrw01Kv/xcHU/+IQgQEXB6cNuDhM/4Zdz7hhuX5nppjHuYFeveIGUK+4"+"gRJ+Gaj2OP+V/tezXX7qWa/z6d6P3X/uLX5rZ2idT/X24jJS4H6qt9r9dB89uc3Jrg3cjnV+6hbbhdyO"+"d9a4He+iE2kd29mrzfEupID31a2OuRv/brdptJvHF0faaJpFtSWgKdKRbT2bH2nrpc9jRLVRM0z/6LfB"+"IRePBuHNNQ3DXahhmCuDt5xuoKTDXNT1w1zxYw7z5rTP2eOTvY00tfY2ptr7GhO2tXjLaXWtfc6WyYpV"+"3VnPo3rop5rqIQ2oemh9qhZaX11tZ33ryIp9tK22x0fba2s+3F5H/eG22p3lbNvso511nSvvcjL7E0K7"+"/Q+Yt6pIMa9insXGFAtx8CoWByCNPJTJXqatuHdxZ4cxxRNqza9N3bd7kPfx8QJIIw9l8JHdjY1r8Xp3"+"QhnN8KhRtP0pz0oYwY830XqGso8y+MBXpklWfExxt7ITy2mW3lwuHBf+sUQEzl7nB1C3c33I41x/Gn9l"+"Mv2YuJZmXp5DZSeV04Aj01F78Xg0dWvSDvru1mT68tIg6vkrk8/2oU6ne5BzREuqtK0WtQh3p+o7G1Db"+"g10IHEF2GOPQ9KMZlUXN3170ovanulObE12o5bFOIo2Y8P7WT2jiuen0KiuNttzZSZ2P9iFwwGWB4j4Y"+"pLm3fxCO3572piGnRtOH22tTlZ31RI377oeTYuF/HCH3o73FwIKrcvAq7j/s8Lc08+Yc6n98mHBKzXpF"+"Lbm5bSO6093U+yIvMzuTZp6fLyppF92DwAEXo+/31YFBLDBXFEb/FSsIf6U/ogxNhkgnvnpAnSJ7i/JK"+"3LK1f64ncJjrizEY3CrQjbY93Un1DjQVTb6ZclsQYUf/PEGf7GpMH/AgglxrdxMx2OCIk8thtEOZMhPK"+"qoMSg2nitWlUZden9Pn+tvQo/QnNvbhEV+tH2+uK9NBzowm+4IArHQnui+uaFkK5+09fCkKNnQ1FrR/t"+"qMsDWofJtajlYXfa8mQ7wVf0X7FSk0qVwHH9OnyIOJxjLk2gzw66UtWQ+ixQh2qGNqaRv44XZfCBLzgy"+"XbIi3kUqOIwpdrZxwOcUcGelcF71IIgRKNLIQxl8So0pZSbgSlfiOK4hERdPx42dBJBGHpdNyPOKVIwH"+"yKnY2GIdAaTlbLtZZf+9MXHmrTmiDD7wtSkmunGIc4lpT/3ODKYt7ANfcATZMCbOubeQ+jG5F5O7Mrkj"+"yMc7k8vRDvR5ZGsx8cKFBt9cMREBZciVEdRTNLuvnhzTgZqAfMiF6h74nBqHu3FLd+aOiesfb5T6jJpP"+"9RCR2RU1H0HNrlSHyTX3NKJqfInjCs0VEzHaSs0go89odgNB/oLJzlR1V336kOOD2ZjYk0fb7YTc7CNu"+"3Gwm72fybj3ZYkycnDBDrpnJXHNdJjtxzdWYbHVM7HtmkFSz3Gz02eaY6H3Zh5zDWthj4v+YubpPoGET"+"lmORyeGMh2KxSQl7VF+rashu5g0C7JzIzhHFllegxodb0ldXh1KdjQ2J8+5xmTPDjRHLOCnT9CYLnCwZ"+"+CEBjQ+3EgIuh9sgX80icSh3+rGW8JNpesst0JI8IRDBAtwCXAvdfulL7aM6WyvQShI43FYS2JYfgWtD"+"pC4Igdq2CshdkAUqWdsChyXlQYjg9HDeXqi+8hMjAbdD7S0IsCMXXuWtp6qnqpBqkMqF02c572GFoBrU"+"YEsjkB9yHt6iMDYICJGcNlhVlQlxjBjGbyxq+qo0K2BoPVXm14qzSsCS/ZcIfDthZf4F7KZS4d01oE+f"+"PjR0kCd9NbCfeMer35cDqFcfvkPr0ZO6dOlGHTq0o1ZuralzJ3fhD+gE/P2XC3zJpJ4e3cm9Uwdq2bIl"+"OTdqQnXq1KLKH1Wn9xzLU/GSJfDKMhVQFdQL9O3dh5Yt9ceODu+3rET1vBqS88zPqYanE5Wq9Y5ROdDF"+"vSu2KtWQrwfTgC/7i8wi775NLX5sS/1+5aneuYHU9ee+1OEkT3tiu1DV4TWpwBtijWUB+X1Xleqrr74S"+"r+Uis9Wa9jTg1yH0zeUxNCLem/qeG0Rtj3cjV572fMEzl/cHVJYFClJz12aSAAasU6dOVLlzNep3fhCN"+"uvIdBf21kXYl76ZZt+dTh+M9xLSnMd+Ef3HIjRxqFKeCqgLk6iIL9OvXj1q1akVNFrhQ73Nf0XfXp9Ke"+"5wfoYEoEreRb/k7He9JnPGdyPtSCWh11pxoTa4tW6LrQu3dvaty4MTVf05q6nO5Nnue/pSX3Aijo4UYa"+"d3kKNYtsLyZcEMFY1JrbgFQFVOTq2lwSQP9r165N9b535v52FU4dTvSkTid6UdPIdnxL/AV9sreR6EL7"+"E93ooxHVjbvQpUsXqlKlCpVtXp5aHO0ovsFsFNGKGhxsTvW45tr7moh5cqujnVigO735/tviPGjuKncB"+"7zU7OjqKfjVc+QU1j24nRrwJi+BDphkLolXuP/WkGt+L/xsQwHuA4OPVPCpeXPw1ChUuWZg+W9mM2vGh"+"Azqc7E6dfvKgtrFdqco4Jx0Z0B1GnJI4PZUCoIyrI33i14BqL/mMPvL6mN6qaFwOuHcxuBYKFCjA/VKJ"+"bSHZAfsYbeSJrZyvwOhiUoBjC7g2x7aFvG0mRhyvcKPM0F8I2O1vNu3p00U0EZGe2WHhIZr9++M0obvj"+"MnfsDFFv2eKpzeu5szY62jn78JGE7PBDpNl/gDS795Bm5y7K2rKNsjZsoMy1gQmZq1aZvnfWHIn20hyO"+"1GSHHaJshbxDIW9kchBlrlxNGcuWazIWLTG+d86KjnYTZK5ZIu+lLJmcCXJgEKmZrF4WQBmLl1D6vAWa"+"dN85+ntnJsdLzT5ImtAcNTM5c+UqHTlj/kJK95tLaTNmSvfOdCiqqQY17zNutlIzmq1etlxHzvCbQ+kz"+"ZlLa1O8pbdKkpipN2CEfZcCy5AHLDEaf13GzpZrVi5YyeQFlzAbZl9IFeTKljZvko+I++wuyqHkrZYGs"+"q5nJSrMFmWue9j2lT5pCad9NpFRvb39VVsheP+OaMWByzYJsULMgc81MfuU9nl6NGeurUm/fOdi4ZkOy"+"UrOv1GcfmTyWyV5jKXXUKE8Vn11l1MEb1FLN8qFCn+fxgBn0OV0hSzVT6sjR6pTRo6V7Z/Xadf6i2csx"+"YPJoz56rr1lp9thxgvxq1BiufbT+3pnWrCmR4b88XjpUC/g465stDdgErhlkb0FmxCcPy/Fs7tXixRXS"+"5y08q/RZd6i45jRudppS88gxZ9PGjDF976xdvLhI2gzfcelTpyXqmi1qxoCNTuRBm6D19rbu3jll/Hin"+"1LHjO6aOGtuRB8t+75xPQ+jC3xEDpsOYGRtWvXr1F127dqXvvvtOAGnkoUxyMW2Ob7/99hEsZRAWFiaW"+"LYmPjxdAGnkogw98JYqBFStW7CgWHo2OjqbHjx/L3+3rDXkogw98ZZrOhqGpR48epczMTJmS21AGEfgy"+"Z7hEVamK8PTmGZqYlJQku5q3J0+eiO6Aw1zxEL8pBun06dOyS952/PhxMbDMbQIBz2+//ZYuX74sF+dt"+"Fy9eJHDAFQKYK1+9elUuztsuXbpE4CgCTTF1wXK31hq6K69uKrpQhI9tMv4qITU1VXYxbykpKeJvFcBh"+"ru6XEMO/+OILoZydnS275jaNRkM//fQTwRcciaq3GCym8fPPP5tsCfJAhg98JYqxYV2c2AYNGtD69euF"+"M44McPLkSbHsD8rgI/uaNVwwT6tWrUrt2rUTQBp5cpnVlu/L2W56+4fEROwjjOU7JnKRAM5C/MTM5pjI"+"ZTpgdRKI2BQTudwIn376qW0xUSEaAkuhWR0TFZIhsPSZPSbaY6LdrDd7TJSNy3T4X42JCskQWF/R6pio"+"kAyxcOFC62OiQlKARbjwI3CrYyKX6VC4cGGxvqJNMZHzBbD0F8g2x0QsuIg/MLDHxP9Us8dE2bhMh//2"+"mCivEWsVTMbE2bNn53I0B5MxEXEOUUdxMgeLMRHKb0gLDZqEVTERi/OaaolNMTEwMFA4Ix7aY+J/uv0f"+"x0SELqRtjokIWfIZZwSrYiJOV8Q93jeJPGNi3bp1c5FywmxMxKWsOOUFkzFRXvrZKthjoj0m2u1vsNde"+"jQVE4/VgbDSbBeCoQNm3WcCQ8B8ggAIFyr7NApYIOfdzWV6EnPsiQ4Eph7z2bSbk3P9vEVCQn3275cNe"+"exBBNDqMtprNAnBUoOzbLGDxTMzL/v8LoECBsm+zgCVCzv1clhch577xei9seRFy7guBMTsfvp7A4FV3"+"X0/AcI2bvAg594VAu5EXXk9ABzYUKLBm3275sNceRBCND6ONZrMAHBUo+zYLWD4T87D/AwET14bNAl67"+"rA8wuY2JIzcn2iAARwXy/rC192wTMIyJ2H619I5tAoYxEds+c27YJmC07hdvu025apuAYUzEtpP3JdsE"+"dDCxD0cFpvbtlg977UEE0fgw2mi2C5g4L2wWsBQf8jYmjtr65+sJjNhoPsDkNjgqkPeHBd63TcCwz9h+"+"veJ32wQMYyK2A5bctiCAAgXyvmFMxLbvvJuWBSzFRGx7zrxuWcBSTMS26+QrlgUsxURsO38Xb1nAUkzE"+"tqOX+RgpHHSwYh9EBaLcbvmwHINquzFxjOHFZrMxcfR2fYDJ2+CoQN4fufmBbQI548O3wX/YJmAYE7Ed"+"Gmhwuedp7GgYE7H9eqXB1ZvLUKBA3jeMidgO9DeIF7mMCyzFRGy/XHjLsoClmIitUcARCQXyvqWYiK3H"+"DH2IExm2xERsjSIWErbERGy7TLhsLGBLTMS20ziDfSRsiYnYth9z0VhAh/zs2y23na6oKnKshMozpqQq"+"5GhJVRyANPJQJruZtujiKmcmJPzyeW26NWYo/bUmQABp5KEMPrK7sXGh1/H3imoeLJ1P9McfEn77TYK8"+"jzL4wFemScaqbicqFtO8OhkrHLWXL1P2kSjSHJBfmGNknz0ryuADX3BkukoVU0IVj6bS/fukPfUzZR+S"+"X08MZfL2HZS1cTNlBq2jLN6ne/dEt8AR5GOlVE1Pf/K+1MwLF0m8JLhvP2WFhJJm23Ymb5LeLvxxJWX4"+"+5Mm8ojwBQdcVUwplQ8Gie7/wc0+IsiakBAmyy8Irg2kzB9/pIwl/pSxYCGpeYuWggMumu//x8LZRHd+"+"o+y9+0izK0R6NTF4A6nXBJJ6BZMX4+XAhZQxy4/Sv59B2uvXCRxwIeB3d6YPC9yRyVspcz3IaykzYIUg"+"p+P9Ppmc5jOFtDduEDjM9VUdLaEafLVfV9GsrF2hlLUumDJXryH18hXSW3bzFlC672xKmzZdvJ6Hd97g"+"Cw5OLtUJB1WZ4xWKqTOv8KE7cZLUq1YzeTllLFpMGXPnCXL6VCZPmkyvxk+gTD4S8AUHXHEk0JfLvTqK"+"Q5S1Yyepf1gkkWfOkt7tm8jkcd/xUVhGdPcuwVf0X7GoUqoSnBF/f850cYiy+FCpecTTpk5jsg/3fTpl"+"7T8oyuADX3BkumTRpVUV+BQ9e7GTK6WfOS2ctdeuCSCNPJTBh8mm3+3D1caDOo6RiIsnYciXAuJC4jyu"+"eUKeV6Ri3CInrq0jgLScbbd/q/3ernXju1066c8uE/ZbB7fm97p2WCTv6g3k5G++yUr1Hk/3unUKkrON"+"DORnI0ZohE/XjivkbMn+GtD/Ac51wJSIQlZ8UsaM1d5s16KKXKxSYefpkMFppkRykl96jaXf3duMF0RD"+"yykC3O/RJcwqsmKmRKwmKyZEhg7NMCSnjh1nHRkm+jx8RLahAGDu6BjZ7U6tWxn2WbyabK1ITjL6fLdL"+"h7k5x8SkiCmy0mdTA5tLxPBEMjXaEEka/PUrxSfXiXSrTZv32SHV0qFSRED+vVO7EXK23iDyW8f2Q+Vd"+"kwaR253aDJJ37fZvs3/WPFGbkCCg7Fs9T8w6HEnpPKXBdAZAOisqSpRZnifevSf9yjkzkzJ4aqcIZPJE"+"k7RaqYx9zM4Ts3hymXVMWpAVBIgIsmyZmD+yD3xNzBPvU/qcuaLGrJM/SQylVjaQRXfYx+Q8UXvtuq7J"+"QPZvv8tUoqwzZ43K4JtrnojRVhwMmy1M7o5OwNw8EWsf5OqzQXcgAh+z88SssHBdv5U+AzqR7GwxiObn"+"iXyIsniyaUg2FEEZfPKeJx4My30iHYoQZTbOE68LIG2fJ/7HWlh1x3bh1R0pvEZZ4whkjSnkRzu2kM0i"+"CvnZsWjS3rxF6Rd+tV5EISfHHn2Qfeq0uIPNPn/eOhHDmjUnTgiyAiHy63nzIjry0SjKijlKmbgB3cq3"+"v1hsBneyjOxz51gkLreIjhxzRIR0NW62Bdbxjfc6g/0g0vBlnR73i15kl0pVCDs3p06g7MtXxL2hBL75"+"NIKSt4y0t27RX6sChIhowaGqjk7YeRC0WoT1ND++6dRhrgwpreGBTYo+cgr+aLkQgCki2VeuUtaRKEqb"+"PJVeTeYbT94qQPOf7dktajYiK6aI3AsOvJEVESktYwN4jSNN7Al6tnuXebJiiojmwgXKCj9EqcNHUVZ0"+"DD3btSNvsmK6MeGByk64YbrPeZkicmPUMOtrzmmKSL7IdnsNwwpFtHy5Z/aixSGaOfPjNLNmx2mmfB+i"+"/m6SZ54rE2mXr3LW+i9P0P6wmLLnzScmU9bU7ylr4iTK5NNZ/c3IhMzBg03PE7UBP3plL12myTYkT2Py"+"BB8me5P62xGU8fUQSu83QJPRvbdxRNIGBLgJ8iImz51P2b6zSWNEHklqiUxpHr3pVacumpdt2uvnidn+"+"y+KVmkHOmjadMtHsMTJ5EJO/HEDpTE5z70av2nSgV64t5bXC/P2b6sjcbMOaM9FsJmd8OZDSe3DN7l1l"+"cit6+XkzSmnQqKlKs3CRj+gzasaACTIPGNeskNMMyKlMTv28Ob1s0JhS6jTwUXGf/QVZ1IzR1jdb1Cya"+"rZBbM7kZvWzI5LoN6PnHdfxVWb6z/dBnHXn4CKnP/bhmXZ/bU6pLa3rZBM0GuT6l1KxDL6rV9FVppk4f"+"bDTag4ZKA8bNTuskDZhCFs3mml9IZHpRuZqnSjt5chn1aG915nCpzzhU6R69mMzNbis3uwn3Gc2uo5Cd"+"6NmH1dQpjlXltcK+HeEvnSRKs+U+o2b9gFGKE5OrOtHzytXp+QdVDNYKGzasRFrfAfEYMP1oy2S5ZqnP"+"TP5IkOOTK1fOsVaYh0eFNPcuZ41qVsioWfS5Oj37oMpZJptZK6yxR5GXrq3G8YAlpih9lslcc+KzDypP"+"uF+xonXzxJR69ZxefFy344tqH3dM+aCqfZ6Yl2Fh3hHjA+hQdcfh4dUcH+LTSEK5PRE13rNunW12Tgyv"+"Vi7i6eQpRHvDKDtkH931HID8ewerlXMOr1rWLax6udiwauVMr/CMAnyUqxcsIS0LaFngGV+hLKpmxKH8"+"6uCBwk+m6c1IYCEEwvUC3IKMOQtIG7qfkpcvz1sgQwgYtMBWAakFLBDKAhxYbW8Bj4EYRBZ4PmFiDoEA"+"ywJ/9uuLQYsQh7N6uQtXunUUAmpZ4PEPP5gXgCMfpqvs4InJJ89OXPhcOIvzInmiD/0xBUfE8SGXW7/O"+"9uEqZapKh9Axhsm/YcojFxmbOQFD2+XkZF9n25KBbF9n+zVNWaX3n7XOdtcmTWj+V560YfQYmty1GzWW"+"3vM0gsl1th1LlaLDfn6kwaPjA/spa9cuysST36B1tLCHBxUuVEgnYHKd7WhM92KiKPvCz5R98QxpIsNJ"+"jWew0oq2NLNdB1nAxDrbX7VuTVlhHM5+OUXaZ78TpdwnzaWfKXPDBkHGA9xXywKo/vvvm15neycH0ax9"+"+yn7zAnSJv9O2hf3SPPrKb5/DqR0noxmLFoi7qUDBwwUrci1znYs912sLbt/L2lOHyPNmVjKDN1JGTzA"+"6XPnUQaLZK4Ppv0jRppeZzuYZ2p4VC76vI7v2teulcnzKW32HHHjnblxMy3p3sP0OtvdGjTk0V4vDRju"+"1LlG1JzGN91ovhplLFDt3XfFeWByne1Ib54nL1/BNfPtPh6ZM7CPp+H4EmLLQPGmtYDJdbZLvv02hQz9"+"htSr1kgLEgdLRHXwRgrgpsNHgcV1tjt+Uou2ff01RfGZuLpnL6pRpoxROWBfZ/t/w0aMGOEAyLu225gx"+"Y/wAedc28/b2rjBx4sRUAGk523obPXp00L59+whAWs62zry8vOpNnTpV8+DBAwKQRp5cbNrYoQb3tx9j"+"IeMq/uP62rVrAkgjTy7rB1+ZJpo6nTNfzpkzRywuhb9oPn/+PD18+FCs1AMgjTyUwQe+4ICLwSrCiZNY"+"FAFrAiUkJNCZM2fFGkEghB8Kp5ijMSIPZfCBLzjgilYM4/tGzriA/3S+e/cuhXNoxz8t79u7T2zxT9Ph"+"4WGiDD5cexw4gqwYC5RhJGCNixs3boh/WDYE8lAGH/jKNGPjgnZYOOH27du0afNm8QfJmzdvElvkYSEF"+"+MjuuW3UqFGeG/hTCAsrhYaG0sWLF8QaukjHx18ilMFHds9t3DdfnDh//vkn/fbbb2KwAKSRhzL4yO65"+"jQs3YZBQE4/wS95fDCCNPHkAN8nuuY37d5LxlDGdSaXlbBzq0siTy3JP9xVj9X6WLl+UwUfetZs19mhG"+"mdeLiU9nl8p/TEzyK10heWHF/MfEp34lg9JjvPIXE5/5laiXvKSqRpsUZX1MfDLrnRpP55TslzS75MKn"+"s0tezfh5BtFfG/OOiUyYzs19+Xx1fUrd04vST/Bc8fpqouRo0v7uk3dMvL+4YpEkv5InX4V5Ej0/wbVu"+"IO29WaS9PYq0NwZaFxOT55cqkTS71IW0qJFET0JJe60Laa+4CVgdE1PmOJThriSkH59A9DCQtL/WJPrV"+"ybaYyCdOu5QNLtyNYKIzJUl7tpRtMTHJr4Rn6t4+RPf9iM7XILo307aY+NSvlC9OHkqOpOw/9xMG1qaY"+"yAKbMJBoxdN5777ko2NbTMThTPIr9RTnxvMZxW2PiTgTcQnLu7nMHhPzYRhQS4OapyEmAvKubabERABp"+"Odt6U2IigLScbZ0ZxkQAaeTJxabNXEwEkEaeKGMf+Mq0vGMigDTyUAYf+IIDrumYeF8fEwXujBZxEmXw"+"gS844IpW5IqJV5WY2EZsCVuOkyiDD1/2ceAIsmI5YyLiofZ8TYYTpzk+ch7K4ANfmWZs+pi4nojjIZ0x"+"AMfJlI0teDBL2RYTBX7lNOehDD6ye24zFRMBpJEnnVSlbIuJANLIkwfQ9piINPJEGfvI2bktr5iIMvjI"+"u3b7/2IVvSsWKfM6QbXspHKxZSeWixP/qmmrlZ1Ytt8XK5oSUGaiY6418iwamv3BtEoPVt8LpDX3g+j9"+"7yslc3d0Z2aeVnai47zB4UMp8NF6CnoUTEiXm1hupVxs2cpPKv/BJ/NqZW5+tI3GJ/jQuIRJtPnxNnKa"+"V0tT5rv3LEdmWLmJjlu/PzeDZt+ZT1/+8jX1Y/jdWUDIKzfJEQtQmrcyk8o3bbG2Fa3jUO5+oje1j+1O"+"7WJ7UNeTfWjD4y3UdGVzdKWj7J7D+FA5Ti5/cdmtFfTV2W+oUXhLRisdhsaNpkXXl5LjpPK3nGaYeFyC"+"Q9V9hwctuLOEPg51phohn8ngdOhnVDO0ES29t4LgU25SOR+ZJhkOUeUZVZLXPdhALQ93Fv/lbApto3oQ"+"fCrPqJxaekpF/QcuDlHv0L7ib5jx/9U//L7MJIIebhA+Hjt78Vg4bpXpOO7lrr43pQI1XPqZVYAvH5GH"+"Ml26aMr7lG9gC17rIrPbv8OOOZVxCPu4fANbsNPwZwR4khnh9D791NHFKsAXT0dluvhx39Yr3/H05s4d"+"4tsz8W6fKfCNo/C55jMWz171EepgtYoVohpWT828eIHwF3xZm7dSpsAWgSwFBw8SfNg3+bBTjhjJTfK5"+"7D2ctHyXhpfi1KvXUMaqNeJbfgVavv2FD54KyzS94ZlqeI3yt15EHaas0N2UsXARpctAOnP7Tko9fozC"+"P37vIp4KyzRj4351PNOzI0/prlH67LmUNm0GpeF1vFmzxRj80r87116+qexu2nhAjzzavpkyQ3ZLr6F4"+"f0eZu0IJeRhs2c28hVV7r94xlwaa7GtXKU38PnEaIX2sxWeZByqXN/M/7zkMh+j2vJmUffIn8WtRpPlc"+"mScX5204RJF1KydnxJ2j9HNn6HCdyg9wtsrF1hkO1c892hMQXrWs7RMr8etRPHevXg5ryObP0Gyji8Zu"+"dvtnW9IcB6cns0o0sAWPZhSvKpFnlViZNLsE5QuzSszju/biJ8Wd6sMfbYI2cS0EwvjuvXhs1vnBRNf7"+"MwbI25xQ8rEdQFpG5s8DuRXF9/PtbvHeT2aXOM1NirMFaPljv2JmJp12s9v/ud33VhV5NKWg55MpBUKe"+"TCkYJ6FACPJQJruZtqQpKufHUwomPFtRh1IPDKaMX5YKII08lMFHdje2x9MKej2Z6aBJPzWHKP22hFdX"+"GDy9k/dRBh/4yjTJkiYXcnviW0KjSYySnF8ck677xHlE92cyfIme7hNl8IEvODJdpeJ+xqOplH6T6MkO"+"ogeLmYw36KYT3Z3Ak8vRRLeGSGJpN0S3wBHkR1NVTZN/+ECq+VkkkxcR/YF3174n+h1knsHe4oCT0JcI"+"X8j9yS1jX3DAVT2ZWtAHg0Tpt6Rm/+FHdG8ak79j8giim4OY3Ifoameiy2687SpaCg643PwC/uknuGmv"+"4pk8m5s8lei38US3hzPZk0NYLya5M7kV0cUviH5tQJTyM4EDLreggF9aDDcVAnenMHksk7/hSfdXTO7J"+"5I5E8S2Z/DmT6xOd/4To5S8EDgv4qh5PLTg4ZTv3DV24x7XfGsZkBE8PoisdmNyCyY2Z/ClRnBOnG/FA"+"3iRwcHKp/pysKsMfFGpt8nkivkOnGxx9r3VncnsmuxJdALke0S81ic5V4Up42su+4IArjgT6krKFa+ND"+"RPgS9kpbokvNmcy1/VqHawa5Mgtzq9ISCL6i/4olT1KVwHFNi+Uu4HDiUF1uw/0FuQaLNOTzgg8vl8EH"+"vuDIdMn4HK/A43H2xXpX0jyMlYR4tCnltEgjD2XwYbLpOTOuNnYYx0jExfNyd18BcSFxHtc8Ic8rUrGk"+"ySqnx1MKdQSQlrPtZoul7Clc8+Xmt/oDSMvZ1ltaWMG9GdEqyohREdJytvWWduhfezOO/osApOVs6y09"+"oujejNiipGYgLWdbb+mRpfeqT7xD6hOlCWk523pLi3IMzDxVgQCk5WzrLf3oR7Mzf67Ks7GqhLScbb1l"+"nq71TdYvdSjrXB1CWs623rLON+qcdb4xZcUxOC1nW2+Z8a4umostKfNc82yk5ez/JEuPVg3JiFKdAZCW"+"s603Jt0U1wIDaTnbenvtFtjtNewfNk/kmYiAvG/9PPGv9ZQa60ipx0oLpJ/iicXDtaLM8jyRJw90x0tM"+"a1KOvEmkzSSt+k96dexdniN8xpMuniuyj/l54p8rpDlRvIskIJYsSGOBd1iAZ2fnearzx0Lha2KeyLPU"+"az14auMipjeSgJYo6wULlJbmSedrcxnPm3iSlXue+PKcTG4m5oMpUUWYryFtxp88reEugIwnwHEfm5kn"+"YrQxsbrYlNGEXkY7cPPVpH2VwM5lmczzQ8zUfqlubp7IXbjCM1ImY3b26mhJrvkd3hanjJOO0kwtjsmY"+"9pmdJz7wl6d2DSn9eBk+CEmU/fw0qU++xzXzbO1cNZ6Ez7E0T+TDiEPFU9r04+9S9st40vy1gwW4BSBf"+"50m3VfPEB0tJfbqKIKpPlqOsM1x74hJRlo95IoPT9nniP97wMtDICQH0dKbD8Ke+Dg8ZJDCz6J4ns4pZ"+"924fkxOTfB0iNBEF+UaLrw2OSuqYjsR595JmFHdO8i3qljSzaCxvTb9VhgI6oSIBIRBM2Ze+hoCaxeNQ"+"/mqPu/CTaXozKxAvBO7RWY5Y92ZS1qXp1grw3Sl34fUEHrGA1IV7dC6/LVAEzlayTiDrYCEQInA4eXsh"+"LfQLWUBqQWbcJEsCDvee+ha9mjSrmCftUhVK9nVw4f2zOC80RyvwtN8D58bDpzOLWf9uH743xSFkYgyf"+"A78lzXDI/7t9NENlf7fPkoFsf7fvNU15M+if9W5ftzZVaOGkJrRpoStNHV6HmtR716gcMP1uX5miFLmR"+"J1t3xktTvhs8XxDf5PWgxRM+ocL/KqgTMPlu39GtHiJ40KNgxmZOT+eJRW9p+nO5Hc0ZrbxlaOLdPs8e"+"PA+6PZZnpat5JnKV5wW3iB5v5Rb047ljGwHN5W7UwKm46Xf7QgLciG6NkCacaVdYgCdejzdx83tKU0Bu"+"ASUMpLUzpT9NzfVu38ltPE/C14B3vCWRh2u4RWO45tY8e+PZGb6gu/E17VnW0PS7fZsWfC7Vhhkrvg7E"+"t3rx+CKSyRd4rnylk5iELfSuavrdvh5tKrITvvrEV4FMxKxVnvbRRe7C9b6kTRhE1T+QzgOT7/Zd2MPN"+"vcIfbVc6Sn1G8zGAmOLdHEqhS+oJP8Dku31lS79JcaFMuDGI4SmNCW+1CV/Txjm1dWTA4rt9vdqWp7CV"+"jejnbU1p24K6VLtaUaNywP5un92sskczVI4WP9bzssdTC2wV94b5MdyVPp1fnp4tc3qFuxk523rju5O4"+"jLhllHkrhO9WCuT9+xNDezK5YL/nq52JMn4XSNneVbpPtsZ44Bxwf5R1ew9pf/MWyH5yhu8Ti1+SXSzb"+"4ykF5qFG1Ky9PYIxXKRfRXoRWia7mTbczj3h2Tlq1HIgMULKVXq6oMJDtFB2z20YrLSYSVLtHFC117rJ"+"Ww6unIdBRQtld2MTX0Qs/ojo1U3SXm4tQPJWSvNnBos8W90o85GPSnpwrxj1VBXiE+ZCxnn+LGAnPMnR"+"cijXIiIbprks6244Pfn+X+EyVTI+5sN0hy2uFtF5BfjSgSHy5DT7vNzdj7tSSHpsLg7btDcSoSwErAAG"+"mSfld8R1In1rpXxjlQemFozlgV6jwOyXUtabSvX/AOf1iiJEERHsAAAAAElFTkSuQmCC"};IconSetRule.getIcon=function(iconSetType,iconIndex){var iconArray=[["0,160,16,16","0,180,16,16","0,80,16,16",keyword_null,keyword_null],["0,100,16,16","0,120,16,16","0,140,16,16",keyword_null,keyword_null],["0,900,16,16","0,920,16,16","0,880,16,16",keyword_null,keyword_null],["0,820,16,16","0,840,16,16","0,860,16,16",keyword_null,keyword_null],["0,780,16,16","0,1000,16,16","0,420,16,16",keyword_null,keyword_null],["0,680,16,16","0,940,16,16","0,400,16,16",keyword_null,keyword_null],["0,800,16,16","0,1020,16,16","0,440,16,16",keyword_null,keyword_null],["0,740,16,16","0,1040,16,16","0,400,16,16",keyword_null,keyword_null],["0,720,16,16","0,980,16,16","0,380,16,16",keyword_null,keyword_null],["0,700,16,16","0,960,16,16","0,360,16,16",keyword_null,keyword_null],["0,160,16,16","0,40,16,16","0,60,16,16","0,80,16,16",keyword_null],["0,100,16,16","0,0,16,16","0,20,16,16","0,140,16,16",keyword_null],["0,220,16,16","0,340,16,16","0,460,16,16","0,760,16,16",keyword_null],["0,600,16,16","0,620,16,16","0,640,16,16","0,660,16,16",keyword_null],["0,200,16,16","0,680,16,16","0,940,16,16","0,400,16,16",keyword_null],["0,160,16,16","0,40,16,16","0,180,16,16","0,60,16,16","0,80,16,16"],["0,100,16,16","0,0,16,16","0,120,16,16","0,20,16,16","0,140,16,16"],["0,580,16,16","0,600,16,16","0,620,16,16","0,640,16,16","0,660,16,16"],["0,480,16,16","0,500,16,16","0,520,16,16","0,540,16,16","0,560,16,16"],["0,240,16,16","0,260,16,16","0,280,16,16","0,300,16,16","0,320,16,16"]];var image=IconSetRule._getImageSrc();var imageRect=iconArray[iconSetType][iconIndex];if(imageRect){var rect=imageRect.split(",");return{image:image,x:rect[0],y:rect[1],w:rect[2],h:rect[3]}}return keyword_null};return IconSetRule})(ScaleRule);spread.IconSetRule=IconSetRule;var AreaCondition=(function(){function AreaCondition(expected,formula){this.ignoreBlank=false;this.expected=expected;this.formula=(typeof(formula)==="string")?$.trim(formula).replace("=",""):formula}AreaCondition.prototype._concatArray=function(destArray,array){var temp,i;if(array.length===1){temp=array[0];if(temp instanceof Array){for(i=0;i<temp.length;i++){destArray.push(temp[i])}}else
{destArray.push(temp)}}else
{for(i=0;i<array.length;i++){temp=array[i];if(temp instanceof Array){if(temp.length>0){destArray.push(temp[0])}}else
{destArray.push(temp)}}}};AreaCondition.prototype.getValidList=function(evaluator,baseRow,baseColumn){var self=this;var validValuesTemp=[];if(self.formula&&self.formula.length>0){var obj=self.getExpected(evaluator,baseRow,baseColumn);if(obj instanceof Array){self._concatArray(validValuesTemp,obj)}else
{validValuesTemp.push(obj)}}else if(self.expected&&self.expected.length>0){var source=self.expected;var datas=source.split(",");if(datas){var formatter=spread.features.formatter?new spread.GeneralFormatter:keyword_null;for(var i=0;i<datas.length;i++){var data=datas[i];if(data===keyword_undefined||data===keyword_null||data===""){continue}var dataTemp=$.trim(data);if(dataTemp!==keyword_undefined&&dataTemp!==keyword_null&&dataTemp!==""){try
{if(formatter){validValuesTemp.push(formatter.Parse(dataTemp))}else
{validValuesTemp.push(dataTemp)}}catch(ex){validValuesTemp.push(dataTemp)}}}}}return validValuesTemp};AreaCondition.prototype._equals=function(v1,v2){if(v1 instanceof Date&&v2 instanceof Date){return v1.valueOf()===v2.valueOf()}else
{return v1===v2}};AreaCondition.prototype.evaluate=function(evaluator,baseRow,baseColumn,actualObj){if(actualObj===keyword_undefined||actualObj===keyword_null||actualObj===""){return this.ignoreBlank===true}var valids=this.getValidList(evaluator,baseRow,baseColumn);if(valids){for(var i=0;i<valids.length;i++){var obj=valids[i];if((obj===keyword_undefined||obj===keyword_null)&&(actualObj===keyword_undefined||actualObj===keyword_null)){return true}else if(obj!==keyword_undefined&&obj!==keyword_null&&this._equals(obj,actualObj)){return true}}}return false};AreaCondition.prototype.getExpected=function(evaluator,baseRow,baseCol){var self=this;if(self.formula){var rowCount,colCount,r,c;var arrayValue=[];var calcService=evaluator.getCalcService();if(!calcService){return self.expected}var expr=calcService.parse(self.formula,baseRow,baseCol);var v=calcService.evaluateParsedFormula(evaluator._getSheetSource(),expr,baseRow,baseCol,true);if(v instanceof spread.Calc.Reference){rowCount=v.getRowCount(0);colCount=v.getColumnCount(0);for(r=0;r<rowCount;r++){arrayValue[r]=[];for(c=0;c<colCount;c++){arrayValue[r][c]=v.getValue(0,r,c)}}}else if(v instanceof spread.Calc.Array){rowCount=v.getRowCount();colCount=v.getColumnCount();for(r=0;r<rowCount;r++){arrayValue[r]=[];for(c=0;c<colCount;c++){arrayValue[r][c]=v.getValue(r,c)}}}return arrayValue}else
{return self.expected}};AreaCondition.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"ignoreBlank":return value===false;default:return false}};AreaCondition.prototype.toJSON=function(){var self=this;var dictData={expected:self.expected,formula:self.formula,conType:12,ignoreBlank:self.ignoreBlank};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};AreaCondition.prototype.fromJSON=function(settings){if(!settings){return}if(settings.expected!==keyword_null&&settings.expected!==keyword_undefined){this.expected=settings.expected}if(settings.formula!==keyword_null&&settings.formula!==keyword_undefined){this.formula=settings.formula}if(settings.ignoreBlank!==keyword_null&&settings.ignoreBlank!==keyword_undefined){this.ignoreBlank=settings.ignoreBlank}};AreaCondition.fromSource=function(expected){return new AreaCondition(expected,keyword_null)};AreaCondition.fromFormula=function(formula){return new AreaCondition("",formula)};return AreaCondition})();spread.AreaCondition=AreaCondition;var ConditionalFormats=(function(){function ConditionalFormats(worksheet){this.rules=[];this._ruleTypes=keyword_null;this.worksheet=worksheet}ConditionalFormats.prototype.getRule=function(index){return this.rules[index]};ConditionalFormats.prototype.count=function(){return this.rules.length};ConditionalFormats.prototype._cloneRanges=function(ranges){var newRanges=[];var length=ranges.length;for(var i=0;i<length;i++){newRanges.push(this.worksheet._getActualRange(ranges[i]))}return newRanges};ConditionalFormats.prototype.addSpecificTextRule=function(comparisionOperator,text,style,ranges){var rule=new SpecificTextRule(comparisionOperator,text,style);rule.ranges=ranges;return this.addRule(rule)};ConditionalFormats.prototype.addCellValueRule=function(comparisionOperator,value1,value2,style,ranges){var rule=new CellValueRule(comparisionOperator,value1,value2,style);rule.ranges=ranges;return this.addRule(rule)};ConditionalFormats.prototype.addDateOccurringRule=function(type,style,ranges){var rule=new DateOccurringRule(type,style);rule.ranges=ranges;return this.addRule(rule)};ConditionalFormats.prototype.addFormulaRule=function(formula,style,ranges){var rule=new FormulaRule(formula,style);rule.ranges=ranges;return this.addRule(rule)};ConditionalFormats.prototype.addTop10Rule=function(type,rank,style,ranges){var rule=new Top10Rule(type,rank,style);rule.ranges=ranges;return this.addRule(rule)};ConditionalFormats.prototype.addUniqueRule=function(style,ranges){var rule=new UniqueRule(style);rule.ranges=ranges;return this.addRule(rule)};ConditionalFormats.prototype.addDuplicateRule=function(style,ranges){var rule=new DuplicateRule(style);rule.ranges=ranges;return this.addRule(rule)};ConditionalFormats.prototype.addAverageRule=function(type,style,ranges){var rule=new AverageRule(type,style);rule.ranges=ranges;return this.addRule(rule)};ConditionalFormats.prototype.add3ScaleRule=function(minType,minValue,minColor,midType,midValue,midColor,maxType,maxValue,maxColor,ranges){var rule=new ThreeScaleRule(minType,minValue,minColor,midType,midValue,midColor,maxType,maxValue,maxColor);rule.ranges=ranges;return this.addRule(rule)};ConditionalFormats.prototype.add2ScaleRule=function(minType,minValue,minColor,maxType,maxValue,maxColor,ranges){var rule=new TwoScaleRule(minType,minValue,minColor,maxType,maxValue,maxColor);rule.ranges=ranges;return this.addRule(rule)};ConditionalFormats.prototype.addDataBarRule=function(minType,minValue,maxType,maxValue,color,ranges){var rule=new DataBarRule(minType,minValue,maxType,maxValue,color);rule.ranges=ranges;return this.addRule(rule)};ConditionalFormats.prototype.addIconSetRule=function(iconSetTye,ranges){var rule=new IconSetRule(iconSetTye);rule.ranges=ranges;return this.addRule(rule)};ConditionalFormats.prototype.addRule=function(rule){if(this.worksheet){var self=this;return this.worksheet._bindToAutoRefresh(function(rule){if(!rule){throw new Error(spread.SR.Exp_RuleIsNull);}for(var index=0;index<self.rules.length;index++){self.rules[index]._priority++}rule._priority=1;rule.ranges=self._cloneRanges(rule.ranges);self.rules.push(rule);return rule})(rule)}};ConditionalFormats.prototype.removeRule=function(rule){if(this.worksheet){var self=this;this.worksheet._bindToAutoRefresh(function(rule){if(rule){self.rules.remove(rule)}})(rule)}};ConditionalFormats.prototype._removeRange=function(srcRange,row,column,rowCount,columnCount){if(!srcRange.intersect(row,column,rowCount,columnCount)){return[srcRange]}var sourceRowTop=srcRange.row;var sourceRowBottom=srcRange.row+srcRange.rowCount-1;var sourceColumnLeft=srcRange.col;var sourceColumnRight=srcRange.col+srcRange.colCount-1;var removeRowTop=row;var removeRowBottom=row+rowCount-1;var removeColumnLeft=column;var removeColumnRight=column+columnCount-1;var newRanges=[];if(sourceRowTop!==-1&&sourceColumnLeft!==-1){if(removeRowTop!==-1&&removeColumnLeft!==-1){if(removeColumnLeft-sourceColumnLeft>0&&removeRowTop-sourceRowTop>0){var topLeft=new spread.Range(sourceRowTop,sourceColumnLeft,removeRowTop-sourceRowTop,removeColumnLeft-sourceColumnLeft);newRanges.push(topLeft)}if(Math_min(removeColumnRight,sourceColumnRight)-Math_max(removeColumnLeft,sourceColumnLeft)>=0&&removeRowTop-sourceRowTop>0){var topMid=new spread.Range(sourceRowTop,Math_max(removeColumnLeft,sourceColumnLeft),removeRowTop-sourceRowTop,Math_min(removeColumnRight,sourceColumnRight)-Math_max(removeColumnLeft,sourceColumnLeft)+1);newRanges.push(topMid)}if(sourceColumnRight-removeColumnRight>0&&removeRowTop-sourceRowTop>0){var topRight=new spread.Range(sourceRowTop,removeColumnRight+1,removeRowTop-sourceRowTop,sourceColumnRight-removeColumnRight);newRanges.push(topRight)}if(removeColumnLeft-sourceColumnLeft>0&&Math_min(removeRowBottom,sourceRowBottom)-Math_max(removeRowTop,sourceRowTop)>=0){var midLeft=new spread.Range(Math_max(removeRowTop,sourceRowTop),sourceColumnLeft,Math_min(removeRowBottom,sourceRowBottom)-Math_max(removeRowTop,sourceRowTop)+1,removeColumnLeft-sourceColumnLeft);newRanges.push(midLeft)}if(sourceColumnRight-removeColumnRight>0&&Math_min(removeRowBottom,sourceRowBottom)-Math_max(removeRowTop,sourceRowTop)>=0){var midRight=new spread.Range(Math_max(removeRowTop,sourceRowTop),removeColumnRight+1,Math_min(removeRowBottom,sourceRowBottom)-Math_max(removeRowTop,sourceRowTop)+1,sourceColumnRight-removeColumnRight);newRanges.push(midRight)}if(removeColumnLeft-sourceColumnLeft>0&&sourceRowBottom-removeRowBottom>0){var bottomLeft=new spread.Range(removeRowBottom+1,sourceColumnLeft,sourceRowBottom-removeRowBottom,removeColumnLeft-sourceColumnLeft);newRanges.push(bottomLeft)}if(Math_min(removeColumnRight,sourceColumnRight)-Math_max(removeColumnLeft,sourceColumnLeft)>=0&&sourceRowBottom-removeRowBottom>0){var bottomMid=new spread.Range(removeRowBottom+1,Math_max(removeColumnLeft,sourceColumnLeft),sourceRowBottom-removeRowBottom,Math_min(removeColumnRight,sourceColumnRight)-Math_max(removeColumnLeft,sourceColumnLeft)+1);newRanges.push(bottomMid)}if(sourceColumnRight-removeColumnRight>0&&sourceRowBottom-removeRowBottom>0){var bottomRight=new spread.Range(removeRowBottom+1,removeColumnRight+1,sourceRowBottom-removeRowBottom,sourceColumnRight-removeColumnRight);newRanges.push(bottomRight)}}}if(newRanges.length>0){return newRanges}return keyword_null};ConditionalFormats.prototype.removeRuleByRange=function(row,column,rowCount,columnCount){if(this.worksheet){var self=this;this.worksheet._bindToAutoRefresh(function(row,column,rowCount,columnCount){var removeRules=[];if(self.rules){for(var i=0,rulesLength=self.rules.length;i<rulesLength;i++){var rule=self.rules[i];if(rule&&rule.ranges&&rule.intersects(row,column,rowCount,columnCount)){var newRanges=[];for(var j=0,rangesLength=rule.ranges.length;j<rangesLength;j++){var range=rule.ranges[j];var ranges=self._removeRange(range,row,column,rowCount,columnCount);if(ranges){newRanges=newRanges.concat(ranges)}}if(newRanges.length>0){rule.ranges=newRanges}else
{removeRules.push(rule)}}}}for(var k=0,length=removeRules.length;k<length;k++){self.rules.remove(removeRules[k])}})(row,column,rowCount,columnCount)}};ConditionalFormats.prototype.clearRule=function(){if(this.worksheet){var self=this;this.worksheet._bindToAutoRefresh(function(){self.rules.length=0})()}};ConditionalFormats.prototype.getRules=function(row,column){var rules=this.rules;if(arguments.length===0){return rules}var ruleCount=rules.length,rule,ranges,rangeCount,range,rangeRow,rangeCol,rangeRowCount,rangeColCount,rulesTemp=[];for(var i=0;i<ruleCount;i++){rule=rules[i];ranges=rule.ranges;rangeCount=ranges.length;for(var j=0;j<rangeCount;j++){range=ranges[j];rangeRow=range.row;rangeCol=range.col;rangeRowCount=range.rowCount;rangeColCount=range.colCount;if((rangeRow===-1||(rangeRow<=row&&row<rangeRow+rangeRowCount))&&(rangeCol===-1||(rangeCol<=column&&column<rangeCol+rangeColCount))){rulesTemp.push(rule)}}}return rulesTemp};ConditionalFormats.prototype.containsRule=function(rule,row,column){if(rule){if(this.rules.contains(rule)){return rule.contains(row,column)}}return false};ConditionalFormats.prototype._clearNullRefRules=function(){var self=this;if(self.rules){for(var n=self.count()-1;n>-1;n--){var rule=self.rules[n];if(rule.hasNoReference()){self.removeRule(rule)}}}};ConditionalFormats.prototype._addRows=function(row,rowCount){var self=this;if(self.rules&&self.worksheet){var length=self.rules.length;for(var i=0;i<length;i++){var rule=self.rules[i];if(rule){rule._addRows(row,rowCount)}}}};ConditionalFormats.prototype._addColumns=function(col,colCount){var self=this;if(self.rules&&self.worksheet){var length=self.rules.length;for(var i=0;i<length;i++){var rule=self.rules[i];if(rule){rule._addColumns(col,colCount)}}}};ConditionalFormats.prototype._removeRows=function(row,rowCount){var self=this;if(self.rules&&self.worksheet){var length=self.rules.length;for(var i=0;i<length;i++){var rule=self.rules[i];if(rule){rule._removeRows(row,rowCount)}}}};ConditionalFormats.prototype._removeColumns=function(col,colCount){var self=this;if(self.rules&&self.worksheet){var length=self.rules.length;for(var i=0;i<length;i++){var rule=self.rules[i];if(rule){rule._removeColumns(col,colCount)}}}};ConditionalFormats.prototype._clearCache=function(){var rules=this.rules,rule;if(rules!=keyword_null&&rules.length>0){for(var i=0,count=rules.length;i<count;i++){rule=rules[i];if(rule instanceof ScaleRule){rule._clearCache()}}}};ConditionalFormats.prototype.toJSON=function(){var rules=[];for(var i=0;i<this.rules.length;i++){var rule=this.rules[i];rules.push(rule?rule.toJSON():keyword_null)}if(rules.length===0){return keyword_undefined}return{rules:rules}};ConditionalFormats.prototype.fromJSON=function(settings){if(!settings){return}if(settings.rules){this.rules=[];for(var i=0;i<settings.rules.length;i++){var ruleSettings=settings.rules[i];var rule=keyword_null;if(ruleSettings){var dict=this._getRuleTypes();var ruleClass=dict[ruleSettings.ruleType];if(ruleClass){rule=new ruleClass;rule.fromJSON(ruleSettings)}}if(rule){this.rules.push(rule)}}}};ConditionalFormats.prototype._getRuleTypes=function(){if(!this._ruleTypes){var dict={};dict[0]=ConditionRuleBase;dict[1]=CellValueRule;dict[2]=SpecificTextRule;dict[3]=FormulaRule;dict[4]=DateOccurringRule;dict[5]=Top10Rule;dict[6]=UniqueRule;dict[7]=DuplicateRule;dict[8]=AverageRule;dict[9]=ScaleRule;dict[10]=TwoScaleRule;dict[11]=ThreeScaleRule;dict[12]=DataBarRule;dict[13]=IconSetRule;this._ruleTypes=dict}return this._ruleTypes};return ConditionalFormats})();spread.ConditionalFormats=ConditionalFormats})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("dataValidator",["core.common"]);var keyword_null=null,keyword_undefined=undefined;function convertToDouble(val){if(val===keyword_undefined||val===keyword_null){return 0.0}else if(typeof(val)==="number"){return val}else if(typeof(val)==="string"){var ret=parseFloat(val);if(!isNaN(ret)){if(ret.toString()===val.toString()){return ret}}}return keyword_null}function convertToDateTime(val){if(val instanceof Date){return val}else if(typeof(val)==="string"){return new Date(val)}return keyword_null}var DefaultDataValidator=(function(){function DefaultDataValidator(condition){var self=this;self.condition=keyword_null;self.type=0;self.errorStyle=0;self.ignoreBlank=true;self.inCellDropdown=true;self.showInputMessage=true;self.showErrorMessage=true;self.inputTitle="";self.errorTitle="";self.inputMessage="";self.errorMessage="";self.comparisonOperator=keyword_null;self._init();self.condition=condition;if(self.condition){self.condition.ignoreBlank=self.ignoreBlank}self.type=7}DefaultDataValidator.prototype.IgnoreBlank=function(value){var self=this;if(arguments.length<=0){return self.ignoreBlank}else
{self.ignoreBlank=value;if(self.condition){self.condition.ignoreBlank=value}return self}};DefaultDataValidator.prototype._init=function(){var self=this;self.errorStyle=0;self.ignoreBlank=true;self.inCellDropdown=true;self.showInputMessage=true;self.showErrorMessage=true;self.inputTitle="";self.errorTitle="";self.inputMessage="";self.errorMessage="";self.comparisonOperator=6};DefaultDataValidator.prototype.value1=function(){var self=this;var cond=(self.condition&&self.condition.item1)?self.condition.item1:self.condition;if(cond){if(cond.formula&&cond.formula.length>0){return"="+$.trim(cond.formula.toString().toUpperCase()).replace("=","")}else
{return cond.expected}}return keyword_null};DefaultDataValidator.prototype.value2=function(){var self=this;var cond=(self.condition&&self.condition.item2)?self.condition.item2:self.condition;if(cond){if(cond.formula&&cond.formula.length>0){return"="+$.trim(cond.formula.toString().toUpperCase()).replace("=","")}else
{return cond.expected}}return keyword_null};DefaultDataValidator.prototype.isValid=function(evaluator,baseRow,baseColumn,actual){var self=this;if(self.condition){self.IgnoreBlank(self.ignoreBlank);if(self.condition.ignoreBlank&&(actual===keyword_undefined||actual===keyword_null||actual==="")){return true}var val=actual,v;if(actual!==keyword_undefined&&actual!==keyword_null){switch(self.type){case 0:return true;case 2:case 1:v=convertToDouble(actual);if(v!==keyword_undefined&&v!==keyword_null){val=v}break;case 4:case 5:v=convertToDateTime(actual);if(v!==keyword_undefined&&v!==keyword_null){val=v}break;case 7:case 3:case 6:break}}return self.condition.evaluate(evaluator,baseRow,baseColumn,val,val)}return true};DefaultDataValidator.prototype.reset=function(){this._init();this.type=7;this.condition=keyword_null};DefaultDataValidator.prototype.getValidList=function(evaluator,baseRow,baseColumn){if(!spread.features.conditionalFormat){return keyword_null}var self=this;if(self.condition!=keyword_null&&self.type===3&&self.condition instanceof spread.AreaCondition){return self.condition.getValidList(evaluator,baseRow,baseColumn)}return keyword_null};DefaultDataValidator.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"errorStyle":return value===0;case"ignoreBlank":return value===true;case"inCellDropdown":return value===true;case"showInputMessage":return value===true;case"showErrorMessage":return value===true;case"inputTitle":return value==="";case"errorTitle":return value==="";case"inputMessage":return value==="";case"errorMessage":return value==="";case"comparisonOperator":return value===6;case"type":return value===0;case"condition":return value===keyword_null;default:return false}};DefaultDataValidator.prototype.toJSON=function(){var self=this;var dictData={errorStyle:self.errorStyle,ignoreBlank:self.ignoreBlank,inCellDropdown:self.inCellDropdown,showInputMessage:self.showInputMessage,showErrorMessage:self.showErrorMessage,inputTitle:self.inputTitle,errorTitle:self.errorTitle,inputMessage:self.inputMessage,errorMessage:self.errorMessage,comparisonOperator:self.comparisonOperator,type:self.type,condition:self.condition};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}if($.isEmptyObject(settings)){return keyword_undefined}return settings};DefaultDataValidator.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(spread.features.conditionalFormat&&settings.condition!==keyword_null&&settings.condition!==keyword_undefined){var condition=keyword_null;var dict=self._getConditionTypes();var conditionClass=dict[settings.condition.conType];if(conditionClass){condition=new conditionClass;condition.fromJSON(settings.condition)}self.condition=condition}if(settings.type!==keyword_null&&settings.type!==keyword_undefined){self.type=settings.type}if(settings.comparisonOperator!==keyword_null&&settings.comparisonOperator!==keyword_undefined){self.comparisonOperator=settings.comparisonOperator}if(settings.errorStyle!==keyword_null&&settings.errorStyle!==keyword_undefined){self.errorStyle=settings.errorStyle}if(settings.ignoreBlank!==keyword_null&&settings.ignoreBlank!==keyword_undefined){self.ignoreBlank=settings.ignoreBlank}if(settings.inCellDropdown!==keyword_null&&settings.inCellDropdown!==keyword_undefined){self.inCellDropdown=settings.inCellDropdown}if(settings.showInputMessage!==keyword_null&&settings.showInputMessage!==keyword_undefined){self.showInputMessage=settings.showInputMessage}if(settings.showErrorMessage!==keyword_null&&settings.showErrorMessage!==keyword_undefined){self.showErrorMessage=settings.showErrorMessage}if(settings.inputTitle!==keyword_null&&settings.inputTitle!==keyword_undefined){self.inputTitle=settings.inputTitle}if(settings.errorTitle!==keyword_null&&settings.errorTitle!==keyword_undefined){self.errorTitle=settings.errorTitle}if(settings.inputMessage!==keyword_null&&settings.inputMessage!==keyword_undefined){self.inputMessage=settings.inputMessage}if(settings.errorMessage!==keyword_null&&settings.errorMessage!==keyword_undefined){self.errorMessage=settings.errorMessage}};DefaultDataValidator.prototype._getConditionTypes=function(){if(!this._dict){var dict={};dict[0]=spread.RelationCondition;dict[1]=spread.NumberCondition;dict[2]=spread.TextCondition;dict[3]=spread.ColorCondition;dict[4]=spread.FormulaCondition;dict[5]=spread.DateCondition;dict[6]=spread.DateExCondition;dict[7]=spread.TextLengthCondition;dict[8]=spread.Top10Condition;dict[9]=spread.UniqueCondition;dict[10]=spread.AverageCondition;dict[11]=spread.CellValueCondition;dict[12]=spread.AreaCondition;this._dict=dict}return this._dict};DefaultDataValidator.getImageSrc=function(){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAKTWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQWaIQkgBhhBASQMWFiApWFBURnEhVxILVCkidiOKgKLhnQYqIWotVX"+"DjuH9yntX167+3t+9f7vOec5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28AAgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEIiAKoNAOz0ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4"+"EwK4BgFm2MkcCgL0FAHaOWJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDSv+CpX3CFuEgBAMDLlc2XS9IzFLiV0Bp38vDg4iHiwmyxQmEXKRBmCeQinJebIxNI5wNMzgwAABr50cH+OD+Q5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryMAgQAEE7P79pf5eXWA3DHAbB1v2upWwDaVgBo3/ldM9sJoFoK0Hr5i3k4/"+"EAenqFQyDwdHAoLC+0lYqG9MOOLPv8z4W/gi372/EAe/tt68ABxmkCZrcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHiNLFcLBWK8ViJuFAiTcd5uVKRRCHJleIS6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYAQH7zLYwaC5EAEGc0Mnn3AACTv/mPQCsBAM2XpOMAALzoGFyolBdMxggAAES"+"ggSqwQQcMwRSswA6cwR28wBcCYQZEQAwkwDwQQgbkgBwKoRiWQRlUwDrYBLWwAxqgEZrhELTBMTgN5+ASXIHrcBcGYBiewhi8hgkEQcgIE2EhOogRYo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1cQPqQ28ggMor8irxHMZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2At"+"qKn0UvodXQAfYqOY4DRMQ5mjNlhXIyHRWCJWBomxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQR1hMWEOoJewjtBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQOyZLkTgohJZAySQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDr"+"FiOJMCaIkUqSUEko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8ukLaPV0JppZ2n3aC/pdLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUymBdOXmchUMNcyG5lnmA+Yb1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgtUq1UPq15WfaZGVbNQ46kJ1Bar1"+"akdVbupNq7OUndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXxWELWclYD6yxrmE1iW7L57Ex2Bfsbdi97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57LQMtPy2x1mqtZq1+rTfaetq+2mLtcu0W7eva73VwnUCdLJ31Om0693UJuja6UbqFutt1z+o+02PreekJ9cr1Dund0Uf1bfSj9Rf"+"q79bv0R83MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEctoupHEaKPRSaMnuCbuh2fjNXgXPmasbxxirDTeZdxrPGFiaTLbpMSkxeS+Kc2Ua5pmutG003TMzMgs3KzYrMnsjjnVnGueYb7ZvNv8jYWlRZzFSos2i8eW2pZ8ywWWTZb3rJhWPlZ5VvVW16xJ1lzrLOtt1ldsUBtXmwybOpvLtqitm63Edptt3xTiF"+"I8p0in1U27aMez87ArsmuwG7Tn2YfYl9m32zx3MHBId1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd8zUXpkuQyxKXdpcXU22niqdun3rLleUa7rrStdP1o5u7m9yt2W3U3cw9xX2r+00umxvJXcM970H08PdY4nHM452nm6fC85DnL152Xlle+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgK"+"fep+Hvqa+It89viN+1n6Zfgf8nvs7+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQWNBbsGLww+FUIMCQ1ZH3KTb8AX8hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjgR2yIuB9pGZkX+X0UKSoyqi7qUbRTdHF09yzWrORZ+2e9jvGPqYy5O9tqtnJ2Z6xqbFJsY+ybu"+"IC4qriBeIf4RfGXEnQTJAntieTE2MQ9ieNzAudsmjOc5JpUlnRjruXcorkX5unOy553PFk1WZB8OIWYEpeyP+WDIEJQLxhP5aduTR0T8oSbhU9FvqKNolGxt7hKPJLmnVaV9jjdO31D+miGT0Z1xjMJT1IreZEZkrkj801WRNberM/ZcdktOZSclJyjUg1plrQr1zC3KLdPZisrkw3keeZtyhuTh8r35CP5c/P"+"bFWyFTNGjtFKuUA4WTC+oK3hbGFt4uEi9SFrUM99m/ur5IwuCFny9kLBQuLCz2Lh4WfHgIr9FuxYji1MXdy4xXVK6ZHhp8NJ9y2jLspb9UOJYUlXyannc8o5Sg9KlpUMrglc0lamUycturvRauWMVYZVkVe9ql9VbVn8qF5VfrHCsqK74sEa45uJXTl/VfPV5bdra3kq3yu3rSOuk626s91m/r0q9akHV0IbwD"+"a0b8Y3lG19tSt50oXpq9Y7NtM3KzQM1YTXtW8y2rNvyoTaj9nqdf13LVv2tq7e+2Sba1r/dd3vzDoMdFTve75TsvLUreFdrvUV99W7S7oLdjxpiG7q/5n7duEd3T8Wej3ulewf2Re/ranRvbNyvv7+yCW1SNo0eSDpw5ZuAb9qb7Zp3tXBaKg7CQeXBJ9+mfHvjUOihzsPcw83fmX+39QjrSHkr0jq/dawto22"+"gPaG97+iMo50dXh1Hvrf/fu8x42N1xzWPV56gnSg98fnkgpPjp2Snnp1OPz3Umdx590z8mWtdUV29Z0PPnj8XdO5Mt1/3yfPe549d8Lxw9CL3Ytslt0utPa49R35w/eFIr1tv62X3y+1XPK509E3rO9Hv03/6asDVc9f41y5dn3m978bsG7duJt0cuCW69fh29u0XdwruTNxdeo94r/y+2v3qB/oP6n+0/rFlw"+"G3g+GDAYM/DWQ/vDgmHnv6U/9OH4dJHzEfVI0YjjY+dHx8bDRq98mTOk+GnsqcTz8p+Vv9563Or59/94vtLz1j82PAL+YvPv655qfNy76uprzrHI8cfvM55PfGm/K3O233vuO+638e9H5ko/ED+UPPR+mPHp9BP9z7nfP78L/eE8/sl0p8zAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAA"+"Xb5JfxUYAAAMOSURBVHjaXJNdaJRHFIbfM7PfGremUTfkpxgpiheiBOmFtYUgRXNRqNnd75sEhBoIKhrwQpFUUSsihhIQ41+FNrUGqYhRY43STZqgARNRTIzRaFqz6xJTtals3K8xRQ3x7UV215+LB2bOxTNn3jMDs+mEIgmS+LwQiqSQ9JG03FHX54666pn7TLmJEZVIjCCRGMkYGxvNiI9FvaENZzLw/Pmqt"+"CDFV/4WkERw8TI03K6XqqrNWLBgPoafDmNwMCbd3TestpMDHpJAuIcWSZjSUrnS0SFOWamXJLpuDYAkAiYAkioYDCIej0+Lx12QrervFxOemjWfCvIyIcmTVeLVC1986OkUklhRtlgutLYrkpnOKlt1dl0BSfTHmnCnm5oTm0AS6I0xLaDLrK1PusTp/cb7/rUAyH8kSL+Vqt0ebpuGP699LCRROAdqf/suGfo"+"rCpLi4DMpAOQQLAEgfE2sRDZIv5cknGxi74HDFnZ/32olk9f//vOTPIj05ZnKZpp14QlnfZgpTOXvNGsvjrvuH9MnOwAOYlhQ/UPYmxRkJVvzPHw8JF8EdrKoZEeapSt2cHDo4Sxn7R0hiV8/hEQe3Ad21jZNJQnbDklSBBas0ddvRj2Fi4qZIhaL+Q3ni8N0ZohGe4Dv6sKZfFP0kvkSWLZdGvLpiUTuTS9cV"+"MxI5H5+fz+UfXyOto/Ns5bUL7dyjsBjTsKDbbVnM0iqYNHXYi9ZLiSlaRbFn089zlzvwN1IzkDlmDhfdiin5KgOBY5qO9iojX1K9+VRcOCXnlySsFkOkjj/WGschtR0Kt/Ga9D2aYj5DWKaIeYSxTlFMS2T66udBDbXHS94Z97ZUB8Ayt7+iVVddlkzl5LCvrklvQ9dr1fnF0IQbng5O/VQsmAJSfnxSLuqCG3"+"Rxxpfz3xbXv0IEkzm5YR7lXOCGs6+PVNJYjaQnoKwSgBIDSqkjjPUuv3QLP9ImW+hG1/lKJtzp5jaCmW2nrNAUpOUkqrWrJUb23T5rhZf0eoWhbeEKX7O4eTPHe8DSTjF59T/AwCfnhbaDaIICgAAAABJRU5ErkJggg=="};DefaultDataValidator.isFormula=function(val){return(val)&&(val[0]==="=")};DefaultDataValidator.createNumberValidator=function(typeOperator,v1,v2,isIntegerValue){if(!spread.features.conditionalFormat){return keyword_null}var formula1=DefaultDataValidator.isFormula(v1)?v1.replace("=",""):keyword_null;var expect1=DefaultDataValidator.isFormula(v1)?keyword_null:v1;var formula2=DefaultDataValidator.isFormula(v2)?v2.replace("=",""):keyword_null;var expect2=DefaultDataValidator.isFormula(v2)?keyword_null:v2;var conditionTemp=keyword_null,c1,c2;var comparisonOperator=spread.ComparisonOperator,generalCompareType=spread.GeneralCompareType,relationCompareType=spread.RelationCompareType;switch(typeOperator){case 6:c1=new spread.NumberCondition(3,expect1,formula1);c1.integerValue=isIntegerValue;c2=new spread.NumberCondition(5,expect2,formula2);c2.integerValue=isIntegerValue;conditionTemp=new spread.RelationCondition(1,c1,c2);break;case 7:c1=new spread.NumberCondition(4,expect1,formula1);c1.integerValue=isIntegerValue;c2=new spread.NumberCondition(2,expect2,formula2);c2.integerValue=isIntegerValue;conditionTemp=new spread.RelationCondition(0,c1,c2);break;case 0:conditionTemp=new spread.NumberCondition(0,expect1,formula1);conditionTemp.integerValue=isIntegerValue;break;case 1:conditionTemp=new spread.NumberCondition(1,expect1,formula1);conditionTemp.integerValue=isIntegerValue;break;case 2:conditionTemp=new spread.NumberCondition(2,expect1,formula1);conditionTemp.integerValue=isIntegerValue;break;case 3:conditionTemp=new spread.NumberCondition(3,expect1,formula1);conditionTemp.integerValue=isIntegerValue;break;case 4:conditionTemp=new spread.NumberCondition(4,expect1,formula1);conditionTemp.integerValue=isIntegerValue;break;case 5:conditionTemp=new spread.NumberCondition(5,expect1,formula1);conditionTemp.integerValue=isIntegerValue;break}var t=new DefaultDataValidator(conditionTemp);t.type=isIntegerValue?1:2;t.comparisonOperator=typeOperator;return t};DefaultDataValidator.createDateValidator=function(typeOperator,v1,v2){if(!spread.features.conditionalFormat){return keyword_null}var formula1=DefaultDataValidator.isFormula(v1)?v1.replace("=",""):keyword_null;var expect1=DefaultDataValidator.isFormula(v1)?keyword_null:v1;var formula2=DefaultDataValidator.isFormula(v2)?v2.replace("=",""):keyword_null;var expect2=DefaultDataValidator.isFormula(v2)?keyword_null:v2;var conditionTemp=keyword_null,c1,c2;var comparisonOperator=spread.ComparisonOperator,dateCompareType=spread.DateCompareType,relationCompareType=spread.RelationCompareType;switch(typeOperator){case 6:c1=new spread.DateCondition(5,expect1,formula1);c2=new spread.DateCondition(3,expect2,formula2);conditionTemp=new spread.RelationCondition(1,c1,c2);break;case 7:c1=new spread.DateCondition(2,expect1,formula1);c2=new spread.DateCondition(4,expect2,formula2);conditionTemp=new spread.RelationCondition(0,c1,c2);break;case 0:conditionTemp=new spread.DateCondition(0,expect1,formula1);break;case 1:conditionTemp=new spread.DateCondition(1,expect1,formula1);break;case 2:conditionTemp=new spread.DateCondition(4,expect1,formula1);break;case 3:conditionTemp=new spread.DateCondition(5,expect1,formula1);break;case 4:conditionTemp=new spread.DateCondition(2,expect1,formula1);break;case 5:conditionTemp=new spread.DateCondition(3,expect1,formula1);break}var t=new DefaultDataValidator(conditionTemp);t.type=4;t.comparisonOperator=typeOperator;return t};DefaultDataValidator.createTextLengthValidator=function(typeOperator,v1,v2){if(!spread.features.conditionalFormat){return keyword_null}var formula1=DefaultDataValidator.isFormula(v1)?v1.replace("=",""):keyword_null;var expect1=DefaultDataValidator.isFormula(v1)?keyword_null:v1;var formula2=DefaultDataValidator.isFormula(v2)?v2.replace("=",""):keyword_null;var expect2=DefaultDataValidator.isFormula(v2)?keyword_null:v2;var conditionTemp=keyword_null,c1,c2;var comparisonOperator=spread.ComparisonOperator,generalCompareType=spread.GeneralCompareType,relationCompareType=spread.RelationCompareType;switch(typeOperator){case 6:c1=new spread.TextLengthCondition(3,expect1,formula1);c2=new spread.TextLengthCondition(5,expect2,formula2);conditionTemp=new spread.RelationCondition(1,c1,c2);break;case 7:c1=new spread.TextLengthCondition(4,expect1,formula1);c2=new spread.TextLengthCondition(2,expect2,formula2);conditionTemp=new spread.RelationCondition(0,c1,c2);break;case 0:conditionTemp=new spread.TextLengthCondition(0,expect1,formula1);break;case 1:conditionTemp=new spread.TextLengthCondition(1,expect1,formula1);break;case 2:conditionTemp=new spread.TextLengthCondition(2,expect1,formula1);break;case 3:conditionTemp=new spread.TextLengthCondition(3,expect1,formula1);break;case 4:conditionTemp=new spread.TextLengthCondition(4,expect1,formula1);break;case 5:conditionTemp=new spread.TextLengthCondition(5,expect1,formula1);break}var t=new DefaultDataValidator(conditionTemp);t.type=6;t.comparisonOperator=typeOperator;return t};DefaultDataValidator.createFormulaValidator=function(formula){if(!spread.features.conditionalFormat){return keyword_null}var s=formula;if(s&&s.charAt(0)==="="){s=s.substr(1)}var t=new DefaultDataValidator(new spread.FormulaCondition(4,s));t.type=7;return t};DefaultDataValidator.createFormulaListValidator=function(formula){if(!spread.features.conditionalFormat){return keyword_null}var t=new DefaultDataValidator(spread.AreaCondition.fromFormula(formula));t.type=3;return t};DefaultDataValidator.createListValidator=function(source){if(!spread.features.conditionalFormat){return keyword_null}var t=new DefaultDataValidator(spread.AreaCondition.fromSource(source));t.type=3;return t};return DefaultDataValidator})();spread.DefaultDataValidator=DefaultDataValidator})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var __extends=this.__extends||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __};var wijmo;(function(wijmo){(function(spread){spread.feature("celltype",["core.common","core.sheet_action","core.basecelltype"]);var const_undefined="undefined",keyword_null=null,keyword_undefined=undefined,Math_max=Math.max,Math_min=Math.min,Math_floor=Math.floor,Math_round=Math.round;var document=window.document;var cssPositoin="position",cssAbsolute="absolute",cssMargin="margin",cssFont="font",cssLeft="left",cssRight="right",cssTop="top",cssBottom="bottom",cssAlphabetic="alphabetic",cssMiddle="middle",cssCenter="center",cssAttr="gcUIElement",cssNone="none",zero="0",gradientColorStop1="#F6FAFB",gradientColorStop2="#D2DBEB",buttonDownColor="#34B4E3",buttonHoverColor="#A6F4FF",_gcEditingInput=".gcEditingInput",_keyDown_gcEditingInput="keydown"+_gcEditingInput,_keyUp_gcEditingInput="keyup"+_gcEditingInput,_mousedown_gcEditingInput="mousedown"+_gcEditingInput,_mouseup_gcEditingInput="mouseup"+_gcEditingInput,_mouseout_gcEditingInput="mouseout"+_gcEditingInput,_mousemove_gcEditingInput="mousemove"+_gcEditingInput,_click_gcEditingInput="click"+_gcEditingInput,cssWidth="width",cssHeight="height",cssPadding="padding",cssHidden="hidden",cssVisibility="visibility",cssWordWrap="word-wrap",cssOverflow="overflow",cssResize="resize",cssBorder="border",cssOutline="outline",cssBoxShadow="box-shadow",cssBoxSizing="box-sizing",cssColor="color",cssBorderWidth="border-width",cssBorderStyle="border-style",cssBorderColor="border-color",cssWhiteSpace="white-space",cssBackgroundColor="background-color",cssMaxWidth="max-width",cssMaxHeight="max-height";(function(EditorValueType){EditorValueType[EditorValueType["Text"]=0]="Text";EditorValueType[EditorValueType["Index"]=1]="Index";EditorValueType[EditorValueType["Value"]=2]="Value"})(spread.EditorValueType||(spread.EditorValueType={}));var EditorValueType=spread.EditorValueType;(function(CheckBoxTextAlign){CheckBoxTextAlign[CheckBoxTextAlign["top"]=0]="top";CheckBoxTextAlign[CheckBoxTextAlign["bottom"]=1]="bottom";CheckBoxTextAlign[CheckBoxTextAlign["left"]=2]="left";CheckBoxTextAlign[CheckBoxTextAlign["right"]=3]="right"})(spread.CheckBoxTextAlign||(spread.CheckBoxTextAlign={}));var CheckBoxTextAlign=spread.CheckBoxTextAlign;(function(HyperLinkTargetType){HyperLinkTargetType[HyperLinkTargetType["Blank"]=0]="Blank";HyperLinkTargetType[HyperLinkTargetType["Self"]=1]="Self";HyperLinkTargetType[HyperLinkTargetType["Parent"]=2]="Parent";HyperLinkTargetType[HyperLinkTargetType["Top"]=3]="Top"})(spread.HyperLinkTargetType||(spread.HyperLinkTargetType={}));var HyperLinkTargetType=spread.HyperLinkTargetType;var CheckBoxCellType=(function(_super){__extends(CheckBoxCellType,_super);function CheckBoxCellType(){_super.call(this);var self=this;self.allowOverflow=false;self._checkboxSize=12;self._caption="";self._textTrue="";self._textIndeterminate="";self._textFalse="";self._textAlign=3;self._isThreeState=false}CheckBoxCellType.prototype.paintValue=function(ctx,value,x,y,w,h,style,options){if(!ctx){return}ctx.save();ctx.rect(x,y,w,h);ctx.clip();ctx.beginPath();var self=this;var text=self._getDisplayText(value);var textWidth=0,textHeight=0,sheet=options.sheet;if(sheet){textWidth=sheet._getStringWidthByCanvas(text,style.font);textHeight=sheet._getFontHeight(style.font);if(text){var lines=text.split(/\r\n|\r|\n/);textHeight*=lines.length}}var radius=self._checkboxSize/2,rect=new spread.Rect(++x,++y,--w,--h),startX=parseInt((x+self._getCheckBoxLeft(style,rect,textWidth)).toString()),startY=parseInt((y+self._getCheckBoxTop(style,rect,textHeight)).toString());var textAlign=cssLeft;var textStartX=startX+1;if(style.hAlign===1){textAlign=cssCenter;textStartX+=radius}else if(style.hAlign===2){textAlign=cssRight;textStartX+=radius*2}var font=style.font;if(font&&ctx.font!==font){ctx.font=font}if(style.foreColor){ctx.fillStyle=style.foreColor}var textDecoration=style.textDecoration,fontSize=options.fontInfo.fontSize,baselineOffset=fontSize>8?Math_floor((fontSize-8)/5+2):1,lineOffset=textHeight/2-fontSize/2+baselineOffset;if(ctx.textBaseline!==cssAlphabetic){ctx.textBaseline=cssAlphabetic}if(self._textAlign===2){ctx.textAlign=cssRight;ctx.fillText(text,startX+1-2,startY+radius+textHeight/2-lineOffset);if(textDecoration){self._renderTextDecoration(ctx,textDecoration,startX+1-2,startY+radius+textHeight/2-lineOffset,textWidth,fontSize,baselineOffset)}}else if(self._textAlign===0){ctx.textAlign=textAlign;ctx.fillText(text,textStartX,startY-2-lineOffset);if(textDecoration){self._renderTextDecoration(ctx,textDecoration,textStartX,startY-2-lineOffset,textWidth,textHeight)}}ctx.strokeStyle="black";ctx.strokeRect(startX+0.5,startY+0.5,radius*2+0.05,radius*2+0.05);ctx.fillStyle="white";ctx.fillRect(startX+1,startY+1,radius*2-1,radius*2-1);if(self._isThreeState&&(value===keyword_null||value===keyword_undefined)){ctx.beginPath();ctx.fillStyle="green";ctx.rect(startX+3,startY+3,(radius-2.5)*2,(radius-2.5)*2);ctx.fill()}else if(!!value===true){ctx.beginPath();ctx.lineWidth=2.5;ctx.moveTo(startX+3,startY+radius);ctx.lineTo(startX+radius,startY+radius*2-3.5);ctx.lineTo(startX+radius*2-1.5,startY+3);ctx.stroke()}if(style.foreColor){ctx.fillStyle=style.foreColor}if(self._textAlign===3){ctx.textAlign=cssLeft;ctx.fillText(text,startX+1+radius*2+2,startY+radius+textHeight/2-lineOffset);if(textDecoration){self._renderTextDecoration(ctx,textDecoration,startX+1+radius*2+2,startY+radius+textHeight/2-lineOffset,textWidth,fontSize,baselineOffset)}}else if(self._textAlign===1){ctx.textAlign=textAlign;ctx.fillText(text,textStartX,startY+radius*2+2+textHeight-lineOffset);if(textDecoration){self._renderTextDecoration(ctx,textDecoration,textStartX,startY+radius*2+2+textHeight-lineOffset,textWidth,fontSize,baselineOffset)}}ctx.restore()};CheckBoxCellType.prototype.focus=function(editorContext,context){if(editorContext){editorContext.focus()}};CheckBoxCellType.prototype._formatEditorValue=function(editorContext,cellStyle,value,context){return value};CheckBoxCellType.prototype._getCheckBoxLeft=function(cellStyle,cellRect,textWidth,isMargin){var x=cellRect.x-1,w=cellRect.width+1,totalWidth=0,startX=0;var self=this;if(self._textAlign===0||self._textAlign===1){startX=x+5;if(cellStyle.hAlign===1){startX=x+(w/2)-self._checkboxSize/2}else if(cellStyle.hAlign===2){startX=x+w-5-self._checkboxSize}}else if(self._textAlign===2){totalWidth=self._checkboxSize+textWidth;startX=x+5+textWidth;if(cellStyle.hAlign===1){startX=x+(w/2)-totalWidth/2+textWidth}else if(cellStyle.hAlign===2){startX=x+w-5-totalWidth+textWidth}}else
{totalWidth=self._checkboxSize+textWidth;startX=x+5;if(cellStyle.hAlign===1){startX=x+(w/2)-totalWidth/2}else if(cellStyle.hAlign===2){startX=x+w-5-totalWidth}}var checkboxLeft=startX-x;if(isMargin){if($.browser.msie){checkboxLeft-=3}}return checkboxLeft};CheckBoxCellType.prototype._getCheckBoxTop=function(cellStyle,cellRect,textHeight,isMargin){var y=cellRect.y-1,h=cellRect.height+1,totalHeight=0,startY=0;var self=this;if(self._textAlign===0){totalHeight=self._checkboxSize+textHeight;startY=y+5+textHeight;if(cellStyle.vAlign===1){startY=y+(h/2)-totalHeight/2+textHeight}else if(cellStyle.vAlign===2){startY=y+h-5-totalHeight+textHeight}}else if(self._textAlign===1){totalHeight=self._checkboxSize+textHeight;startY=y+5;if(cellStyle.vAlign===1){startY=y+(h/2)-totalHeight/2}else if(cellStyle.vAlign===2){startY=y+h-5-totalHeight}}else
{startY=y+5;if(cellStyle.vAlign===1){startY=y+(h/2)-self._checkboxSize/2}else if(cellStyle.vAlign===2){startY=y+h-5-self._checkboxSize}}var checkboxTop=startY-y;if(isMargin){if($.browser.msie){checkboxTop-=3}}return checkboxTop};CheckBoxCellType.prototype.createEditorElement=function(context){var div=document.createElement("div");var $div=$(div);$div.css(cssPositoin,cssAbsolute).css(cssMargin,zero).css(cssPadding,zero).css(cssOverflow,cssHidden).css(cssResize,cssNone).css(cssBorder,"2px #5292f7 solid").css(cssOutline,cssNone).css(cssBoxShadow,"1px 2px 5px rgba(0,0,0,0.4)").css(cssBoxSizing,"content-box").attr("tabindex",1).attr(cssAttr,"gcEditingInput");var $input=$("<input/>");$input.attr("type","checkbox");$div.append($input);var $span=$("<span></span>");$span.css(cssPositoin,cssAbsolute).css(cssFont,"normal 10pt Arial").css("cursor","default").css(cssWhiteSpace,"nowrap");$div.append($span);var $childDiv=$("<div></div>");$childDiv.css(cssPositoin,cssAbsolute).css(cssBackgroundColor,"green").css(cssWidth,(this._checkboxSize/2-2.5)*2).css(cssHeight,(this._checkboxSize/2-2.5)*2);$div.append($childDiv);return div};CheckBoxCellType.prototype._getNextState=function(value){var newValue;if(this._isThreeState){if(value===keyword_null||value===keyword_undefined){newValue=false}else if(!!value===true){newValue=keyword_null}else
{newValue=true}}else
{newValue=!value}return newValue};CheckBoxCellType.prototype.setEditorValue=function(editorContext,value,context){if(editorContext&&editorContext.children[0]&&editorContext.children[1]&&editorContext.children[2]){var startEditNotBySpace=(context&&context.sheet&&context.sheet._startEditByKeydown);if(!startEditNotBySpace){value=this._getNextState(value)}if(this._isThreeState){if(value===keyword_null||value===keyword_undefined){editorContext.children[0].checked=false;$(editorContext.children[2]).show()}else
{editorContext.children[0].checked=!!value;$(editorContext.children[2]).hide()}}else
{editorContext.children[0].checked=!!value}$(editorContext.children[1]).text(this._getDisplayText(value))}};CheckBoxCellType.prototype.getEditorValue=function(editorContext,context){if(editorContext&&editorContext.children[0]&&editorContext.children[1]&&editorContext.children[2]){if(this._isThreeState){if($(editorContext.children[2]).is(":visible")){return keyword_null}else
{return editorContext.children[0].checked}}else
{return editorContext.children[0].checked}}return keyword_null};CheckBoxCellType.prototype._triggerButtonClicked=function(sheet,row,col){var parent=sheet.parent;if(parent){parent._trigger(spread.Events.ButtonClicked,{sheet:sheet,sheetName:sheet._name,row:row,col:col})}};CheckBoxCellType.prototype.activateEditor=function(editorContext,cellStyle,cellRect,context){var sheet=editorContext&&context&&context.sheet;if(sheet){var $editor=$(editorContext);var offset=sheet._eventHandler._getCanvasOffset(),bounds=sheet._bounds;$editor.css(cssTop,offset.top+bounds.y+cellRect.y-2).css(cssLeft,offset.left+bounds.x+cellRect.x-2).css(cssBackgroundColor,cellStyle.backColor?cellStyle.backColor:"white");var self=this;$editor.bind(_mousedown_gcEditingInput,function(e){spread.util.cancelDefault(e)});$editor.bind(_mouseup_gcEditingInput,function(e){var oldValue=self.getEditorValue(editorContext,context);self.setEditorValue(editorContext,oldValue,context);self.updateEditor(editorContext,cellStyle,cellRect,context);self._triggerButtonClicked(sheet,sheet._activeRowIndex,sheet._activeColIndex)});$editor.bind(_keyDown_gcEditingInput,function(e){if(e.keyCode===32&&!e.ctrlKey&&!e.shiftKey&&!e.altKey){self._isKeyDown=true;spread.util.cancelDefault(e);return false}else if(e.keyCode===8&&!e.ctrlKey&&!e.shiftKey&&!e.altKey){spread.util.cancelDefault(e)}});$editor.bind(_keyUp_gcEditingInput,function(e){if(self._isKeyDown&&e.keyCode===32&&!e.ctrlKey&&!e.shiftKey&&!e.altKey){self._isKeyDown=false;var oldValue=self.getEditorValue(editorContext,context);self.setEditorValue(editorContext,oldValue,context);self.updateEditor(editorContext,cellStyle,cellRect,context);self._triggerButtonClicked(sheet,sheet._activeRowIndex,sheet._activeColIndex)}});if(editorContext.children[0]){$(editorContext.children[0]).bind("click",function(e){spread.util.cancelDefault(e)})}}};CheckBoxCellType.prototype.updateEditor=function(editorContext,cellStyle,cellRect,context){var sheet=editorContext&&context&&context.sheet;if(sheet){$(editorContext).width(cellRect.width).height(cellRect.height);var $editor=$(editorContext),render=sheet._render;var offset=sheet._eventHandler._getCanvasOffset(),bounds=sheet._bounds;$editor.css(cssTop,offset.top+bounds.y+cellRect.y-2).css(cssLeft,offset.left+bounds.x+cellRect.x-2);var checkbox=editorContext.children[0],span=editorContext.children[1],greenDiv=editorContext.children[2];if(checkbox&&span&&greenDiv){var $span=$(span);var text=$span.text();if(cellStyle.foreColor){$span.css(cssColor,cellStyle.foreColor)}var font=keyword_null;if(cellStyle.font){font=cellStyle.font}else
{font=render._getDefaultFont()}if(sheet._zoomFactor>1){font=render._getZoomFont(font)}$span.css(cssFont,font);var textWidth=sheet._getStringWidth(text,font);var textHeight=sheet._getFontHeight(font);if(text){var lines=text.split(/\r\n|\r|\n/);textHeight*=lines.length}var self=this;var marginLeft=self._getCheckBoxLeft(cellStyle,cellRect,textWidth,true),marginTop=self._getCheckBoxTop(cellStyle,cellRect,textHeight,true);$(checkbox).css("margin-left",marginLeft).css("margin-top",marginTop);var textLeft=0,textTop=0;if(self._textAlign===0){textLeft=checkbox.offsetLeft;if(cellStyle.hAlign===1){textLeft=checkbox.offsetLeft+self._checkboxSize/2-textWidth/2}else if(cellStyle.hAlign===2){textLeft=checkbox.offsetLeft+self._checkboxSize-textWidth}textTop=checkbox.offsetTop-textHeight}else if(self._textAlign===1){textLeft=checkbox.offsetLeft;if(cellStyle.hAlign===1){textLeft=checkbox.offsetLeft+self._checkboxSize/2-textWidth/2}else if(cellStyle.hAlign===2){textLeft=checkbox.offsetLeft+self._checkboxSize-textWidth}textTop=checkbox.offsetTop+checkbox.offsetHeight}else if(self._textAlign===2){textLeft=checkbox.offsetLeft-textWidth-2;textTop=checkbox.offsetTop+self._checkboxSize/2-textHeight/2}else
{textLeft=checkbox.offsetLeft+checkbox.offsetWidth+2;textTop=checkbox.offsetTop+self._checkboxSize/2-textHeight/2}if($.browser.msie){textLeft+=3;textTop+=3}$span.css(cssLeft,textLeft).css(cssTop,textTop);if(self._isThreeState){var left=checkbox.offsetLeft+(checkbox.offsetWidth-greenDiv.offsetWidth)/2,top=checkbox.offsetTop+(checkbox.offsetHeight-greenDiv.offsetHeight)/2;$(greenDiv).css(cssLeft,left).css(cssTop,top).toggle().toggle()}else
{$(greenDiv).hide()}if(cellStyle.textDecoration){self._setEditStatusTextDecoration($span,cellStyle.textDecoration)}}}};CheckBoxCellType.prototype.caption=function(value){if(arguments.length===0){return this._caption}else
{this._caption=value;return this}};CheckBoxCellType.prototype.textTrue=function(value){if(arguments.length===0){return this._textTrue}else
{this._textTrue=value;return this}};CheckBoxCellType.prototype.textIndeterminate=function(value){if(arguments.length===0){return this._textIndeterminate}else
{this._textIndeterminate=value;return this}};CheckBoxCellType.prototype.textFalse=function(value){if(arguments.length===0){return this._textFalse}else
{this._textFalse=value;return this}};CheckBoxCellType.prototype._getDisplayText=function(value){var self=this;if(self._isThreeState&&(value===keyword_null||value===keyword_undefined)){return self._textIndeterminate||self._caption}else if(!!value===true){return self._textTrue||self._caption}else
{return self._textFalse||self._caption}};CheckBoxCellType.prototype.textAlign=function(value){if(arguments.length===0){return this._textAlign}else
{this._textAlign=value;return this}};CheckBoxCellType.prototype.isThreeState=function(value){if(arguments.length===0){return this._isThreeState}else
{this._isThreeState=value;return this}};CheckBoxCellType.prototype.getHitInfo=function(x,y,cellStyle,cellRect,context){if(context){var sheetArea=context.sheetArea;if(sheetArea===keyword_null||sheetArea===keyword_undefined||sheetArea===3){return{x:x,y:y,row:context.row,col:context.col,cellRect:cellRect,sheetArea:sheetArea,isReservedLocation:true,sheet:context.sheet}}}return keyword_null};CheckBoxCellType.prototype.processMouseDown=function(hitInfo){if(!hitInfo){return false}if(hitInfo.isReservedLocation){this._isMouseDownReservedLocation=true}};CheckBoxCellType.prototype.processMouseUp=function(hitInfo){if(!hitInfo){return false}var self=this;var sheet=hitInfo.sheet;if(self._isMouseDownReservedLocation&&sheet&&hitInfo.isReservedLocation){self._isMouseDownReservedLocation=false;var row=hitInfo.row,col=hitInfo.col,sheetArea=hitInfo.sheetArea;var cellNode=sheet._getModel(sheetArea).getNode(row,col,true);if(!cellNode._isFirstMouseUp){var oldValue=sheet.getValue(row,col,sheetArea);var newValue=self._getNextState(oldValue);var cellEditInfo={row:row,col:col,newValue:newValue,autoFormat:true};var undoAction=new spread.UndoRedo.CellEditUndoAction(sheet,cellEditInfo);sheet._doCommand(undoAction);self._triggerButtonClicked(sheet,row,col);cellNode._isFirstMouseUp=true;cellNode._mouseupToken=window.setTimeout(function(){delete cellNode._isFirstMouseUp;if(cellNode._mouseupToken){window.clearTimeout(cellNode._mouseupToken);delete cellNode._mouseupToken}},250);return true}else
{delete cellNode._isFirstMouseUp;if(cellNode._mouseupToken){window.clearTimeout(cellNode._mouseupToken);delete cellNode._mouseupToken}}}return false};CheckBoxCellType.prototype.processMouseLeave=function(hitInfo){if(!hitInfo){return false}this._isMouseDownReservedLocation=false};CheckBoxCellType.prototype.isReservedKey=function(e,context){if(e.keyCode===32&&!e.ctrlKey&&!e.shiftKey&&!e.altKey){return true}return false};CheckBoxCellType.prototype.processKeyUp=function(event,context){var sheet=context.sheet;if(!sheet){return false}var row=sheet.getActiveRowIndex();var col=sheet.getActiveColumnIndex();var sheetArea=sheet._getSheetArea(sheet.activeRowViewportIndex,sheet.activeColViewportIndex);var oldValue=sheet.getValue(row,col,sheetArea);var newValue=this._getNextState(oldValue);var cellEditInfo={row:row,col:col,newValue:newValue,autoFormat:true};var undoAction=new spread.UndoRedo.CellEditUndoAction(sheet,cellEditInfo);sheet._doCommand(undoAction);this._triggerButtonClicked(sheet,row,col);return true};CheckBoxCellType.prototype._getAutoFitWidth=function(sheet,value,text,cellStyle,isFilterHeader,context){var self=this;var width=spread.CellTypeContext._getAutoFitWidth(sheet,value,self._getDisplayText(value),cellStyle,isFilterHeader,context);if(self._textAlign===0||self._textAlign===1){width=Math_max(width,self._checkboxSize)}else
{width+=self._checkboxSize}return width+5+2};CheckBoxCellType.prototype._getAutoFitHeight=function(sheet,value,text,cellStyle,columnWidth,context){var self=this;var height=spread.CellTypeContext._getAutoFitHeight(sheet,value,self._getDisplayText(value),cellStyle,columnWidth,context);if(self._textAlign===0||self._textAlign===1){height+=self._checkboxSize}else
{height=Math_max(height,self._checkboxSize)}return height+5};CheckBoxCellType.prototype._cancelDefaultKeydown=function(event){if(event.keyCode===32&&!event.ctrlKey&&!event.shiftKey&&!event.altKey){spread.util.cancelDefault(event)}};CheckBoxCellType.prototype.isImeAware=function(context){return false};CheckBoxCellType.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"caption":return value==="";case"textTrue":return value==="";case"textIndeterminate":return value==="";case"textFalse":return value==="";case"textAlign":return value===3;case"isThreeState":return value===false;default:return false}};CheckBoxCellType.prototype.toJSON=function(){var self=this;var dictData={type:5,caption:self.caption(),textTrue:self.textTrue(),textIndeterminate:self.textIndeterminate(),textFalse:self.textFalse(),textAlign:self.textAlign(),isThreeState:self.isThreeState()};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};CheckBoxCellType.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.caption){self.caption(settings.caption)}if(settings.textTrue){self.textTrue(settings.textTrue)}if(settings.textIndeterminate){self.textIndeterminate(settings.textIndeterminate)}if(settings.textFalse){self.textFalse(settings.textFalse)}if(settings.textAlign!==keyword_null&&settings.textAlign!==keyword_undefined){self.textAlign(settings.textAlign)}if(settings.isThreeState!==keyword_null&&settings.isThreeState!==keyword_undefined){self.isThreeState(settings.isThreeState)}};return CheckBoxCellType})(spread.TextCellType);spread.CheckBoxCellType=CheckBoxCellType;var ButtonCellType=(function(_super){__extends(ButtonCellType,_super);function ButtonCellType(){_super.call(this);var self=this;self.allowOverflow=false;self._marginTop=2;self._marginRight=2;self._marginBottom=2;self._marginLeft=2;self._text="";self._buttonBackColor=keyword_null;self._buttonBorderColor="#707070";self._eventNameSpace=".buttonCellType"}ButtonCellType.prototype.paintValue=function(ctx,value,x,y,w,h,style,options){if(!ctx){return}var self=this;var startX=x+self._marginLeft,startY=y+self._marginTop,width=w-self._marginLeft-self._marginRight,height=h-self._marginTop-self._marginBottom,isIntersect=(startX+width>x&&startX<x+w&&startY+height>y&&startY<y+h);if(width-2>0&&height-2>0&&isIntersect){ctx.save();if(startX<x||startX+width>x+w||startY<y||startY+height>y+h){ctx.rect(x,y,w,h);ctx.clip()}ctx.beginPath();var strokeStyle=self._buttonBorderColor;if(strokeStyle&&ctx.strokeStyle!==strokeStyle){ctx.strokeStyle=strokeStyle}ctx.strokeRect(startX+0.5,startY+0.5,width-1,height-1);var fillStyle=self._buttonBackColor;if(!fillStyle){var gradient=ctx.createLinearGradient(x+w/2,y,x+w/2,y+h);gradient.addColorStop(0.125,gradientColorStop1);gradient.addColorStop(1.0,gradientColorStop2);fillStyle=gradient}if(ctx.fillStyle!==fillStyle){ctx.fillStyle=fillStyle}ctx.fillRect(startX+1,startY+1,width-2,height-2);ctx.restore();if(self._text){_super.prototype.paintValue.call(this,ctx,self._text,startX,startY,width,height,style,options)}}};ButtonCellType.prototype.focus=function(editorContext,context){if(editorContext){editorContext.focus()}};ButtonCellType.prototype._formatEditorValue=function(editorContext,cellStyle,value,context){return value};ButtonCellType.prototype.createEditorElement=function(context){var editor=document.createElement("div");var $editor=$(editor);$editor.css(cssPositoin,cssAbsolute).css(cssMargin,zero).css(cssPadding,zero).css(cssOverflow,cssHidden).css(cssResize,cssNone).css(cssBorder,"2px #5292f7 solid").css(cssOutline,cssNone).css(cssBoxShadow,"1px 2px 5px rgba(0,0,0,0.4)").css(cssBoxSizing,"content-box").css("user-select","none").attr("tabindex",1).attr(cssAttr,"gcEditingInput");var $div=$("<div></div>");$div.css(cssPositoin,cssAbsolute).css(cssOverflow,cssHidden).css(cssBorder,"1px "+this._buttonBorderColor+" solid");$editor.append($div);var $span=$("<span></span>");$span.css(cssPositoin,cssAbsolute).css(cssWhiteSpace,"nowrap").css(cssFont,"normal 10pt Arial").css("cursor","default");$div.append($span);return editor};ButtonCellType.prototype.setEditorValue=function(editorContext,value,context){var child=editorContext&&editorContext.children[0]&&editorContext.children[0].children[0];if(child){$(child).html(this._text)}};ButtonCellType.prototype.getEditorValue=function(editorContext,context){if(editorContext){return editorContext._oldValue}return keyword_null};ButtonCellType.prototype._triggerButtonClicked=function(sheet,row,col){var parent=sheet.parent;if(parent){parent._trigger(spread.Events.ButtonClicked,{sheet:sheet,sheetName:sheet._name,row:row,col:col})}};ButtonCellType.prototype._setButtonBackgroundColor=function($button,backgroundColor){$button.removeClass("gradientButton");if(backgroundColor){$button.css(cssBackgroundColor,backgroundColor)}else
{$button.addClass("gradientButton")}};ButtonCellType.prototype.activateEditor=function(editorContext,cellStyle,cellRect,context){var sheet=editorContext&&context&&context.sheet;if(sheet){var $editor=$(editorContext);var offset=sheet._eventHandler._getCanvasOffset(),bounds=sheet._bounds;$editor.css(cssTop,offset.top+bounds.y+cellRect.y-2).css(cssLeft,offset.left+bounds.x+cellRect.x-2).css(cssBackgroundColor,cellStyle.backColor?cellStyle.backColor:"white");var self=this;var button=editorContext.children[0];if(button){var $button=$(button);$editor.bind(_keyDown_gcEditingInput,function(e){if(e.keyCode===32&&!e.ctrlKey&&!e.shiftKey&&!e.altKey){if(!self._isKeyDown){self._setButtonBackgroundColor($button,buttonDownColor)}self._isKeyDown=true;spread.util.cancelDefault(e);return false}else if(e.keyCode===8&&!e.ctrlKey&&!e.shiftKey&&!e.altKey){spread.util.cancelDefault(e)}});$editor.bind(_keyUp_gcEditingInput,function(e){if(self._isKeyDown&&e.keyCode===32&&!e.ctrlKey&&!e.shiftKey&&!e.altKey){self._isKeyDown=false;self._setButtonBackgroundColor($button,self._buttonBackColor);self._triggerButtonClicked(sheet,sheet._activeRowIndex,sheet._activeColIndex)}});$button.bind(_mousedown_gcEditingInput,function(e){if(e.button!==2){self._isMouseDown=true;self._setButtonBackgroundColor($button,buttonDownColor)}});$button.bind(_mouseup_gcEditingInput,function(e){if(e.button!==2){self._isMouseDown=false;self._setButtonBackgroundColor($button,buttonHoverColor)}});$button.bind(_click_gcEditingInput,function(e){self._triggerButtonClicked(sheet,sheet._activeRowIndex,sheet._activeColIndex)});$button.bind(_mousemove_gcEditingInput,function(e){if(!self._isMouseDown){self._setButtonBackgroundColor($button,buttonHoverColor)}else
{self._setButtonBackgroundColor($button,buttonDownColor)}});$button.bind(_mouseout_gcEditingInput,function(e){var target=e.relatedTarget;if(target!==button&&target!==button.children[0]){self._setButtonBackgroundColor($button,self._buttonBackColor)}})}}};ButtonCellType.prototype.updateEditor=function(editorContext,cellStyle,cellRect,context){var sheet=editorContext&&context&&context.sheet;if(sheet){var $editor=$(editorContext),render=sheet._render;var offset=sheet._eventHandler._getCanvasOffset(),bounds=sheet._bounds;$editor.css(cssTop,offset.top+bounds.y+cellRect.y-2).css(cssLeft,offset.left+bounds.x+cellRect.x-2).width(cellRect.width).height(cellRect.height);var button=editorContext.children[0];if(button){var self=this;var $button=$(button);$button.width(cellRect.width-self._marginLeft-self._marginRight).height(cellRect.height-self._marginTop-self._marginBottom).css("margin-top",self._marginTop-1).css("margin-left",self._marginLeft-1);self._setButtonBackgroundColor($button,self._buttonBackColor);var span=button.children[0];if(span){var $span=$(span);if(cellStyle.foreColor){$span.css(cssColor,cellStyle.foreColor)}var font=keyword_null;if(cellStyle.font){font=cellStyle.font}else
{font=render._getDefaultFont()}if(sheet._zoomFactor>1){font=render._getZoomFont(font)}$span.css(cssFont,font);var textWidth=sheet._getStringWidth(self._text,font);var textHeight=sheet._getFontHeight(font);if(self._text){var lines=self._text.split(/\r\n|\r|\n/);textHeight*=lines.length}var top=0;if(cellStyle.vAlign===1){top=$button.height()/2-textHeight/2}else if(cellStyle.vAlign===2){top=$button.height()-textHeight}var left=0;if(cellStyle.hAlign===1){left=$button.width()/2-textWidth/2}else if(cellStyle.hAlign===2){left=$button.width()-textWidth}$span.css(cssTop,top).css(cssLeft,left);if(cellStyle.textDecoration){self._setEditStatusTextDecoration($span,cellStyle.textDecoration)}}}}};ButtonCellType.prototype.marginTop=function(value){if(arguments.length===0){return this._marginTop}else
{this._marginTop=value;return this}};ButtonCellType.prototype.marginRight=function(value){if(arguments.length===0){return this._marginRight}else
{this._marginRight=value;return this}};ButtonCellType.prototype.marginBottom=function(value){if(arguments.length===0){return this._marginBottom}else
{this._marginBottom=value;return this}};ButtonCellType.prototype.marginLeft=function(value){if(arguments.length===0){return this._marginLeft}else
{this._marginLeft=value;return this}};ButtonCellType.prototype.text=function(value){if(arguments.length===0){return this._text}else
{this._text=value;return this}};ButtonCellType.prototype.buttonBackColor=function(value){if(arguments.length===0){return this._buttonBackColor}else
{this._buttonBackColor=value;return this}};ButtonCellType.prototype.getHitInfo=function(x,y,cellStyle,cellRect,context){var self=this;if(!context){return keyword_null}var sheetArea=context.sheetArea;if((sheetArea===keyword_null||sheetArea===keyword_undefined||sheetArea===3)&&cellRect){var leftX=cellRect.x+self._marginLeft,rightX=cellRect.x+cellRect.width-self._marginRight,topY=cellRect.y+self._marginTop,bottomY=cellRect.y+cellRect.height-self._marginBottom;var info={x:x,y:y,row:context.row,col:context.col,cellRect:cellRect,sheetArea:sheetArea,sheet:context.sheet};if(leftX<=x&&x<=rightX&&topY<=y&&y<=bottomY){info.isReservedLocation=true}return info}return keyword_null};ButtonCellType.prototype.processMouseDown=function(hitInfo){if(!hitInfo){return false}var self=this;var sheet=hitInfo.sheet;if(sheet&&hitInfo.isReservedLocation&&!self._isMouseDownReservedLocation){self._originButtonBackColor=self._buttonBackColor;self._isMouseDownReservedLocation=true;self._buttonBackColor=buttonDownColor;sheet.repaint(hitInfo.cellRect);return true}return false};ButtonCellType.prototype.processMouseUp=function(hitInfo){if(!hitInfo){return false}var self=this;var sheet=hitInfo.sheet;if(self._isMouseDownReservedLocation&&sheet&&hitInfo.isReservedLocation){self._buttonBackColor=self._originButtonBackColor;sheet.repaint(hitInfo.cellRect);self._isMouseDownReservedLocation=false;var row=hitInfo.row,col=hitInfo.col,sheetArea=hitInfo.sheetArea;var cellNode=sheet._getModel(sheetArea).getNode(row,col,true);if(!cellNode._isFirstMouseUp){self._triggerButtonClicked(sheet,row,col);cellNode._isFirstMouseUp=true;cellNode._mouseupToken=window.setTimeout(function(){delete cellNode._isFirstMouseUp;if(cellNode._mouseupToken){window.clearTimeout(cellNode._mouseupToken);delete cellNode._mouseupToken}},250);return true}else
{delete cellNode._isFirstMouseUp;if(cellNode._mouseupToken){window.clearTimeout(cellNode._mouseupToken);delete cellNode._mouseupToken}}}return false};ButtonCellType.prototype.processMouseLeave=function(hitInfo){if(!hitInfo){return false}var self=this;var sheet=hitInfo.sheet;if(sheet){if(self._isMouseDownReservedLocation){self._buttonBackColor=self._originButtonBackColor;sheet.repaint(hitInfo.cellRect);self._isMouseDownReservedLocation=false}}};ButtonCellType.prototype.processKeyDown=function(event,context){var sheet=context&&context.sheet;if(!sheet){return false}var self=this;if(!self._isKeyPressed){var row=sheet.getActiveRowIndex();var col=sheet.getActiveColumnIndex();var cellRect=sheet.getCellRect(row,col,sheet.activeRowViewportIndex,sheet.activeColViewportIndex);self._originButtonBackColor=self._buttonBackColor;self._buttonBackColor=buttonDownColor;sheet.repaint(cellRect);sheet._bind(spread.Events.SelectionChanged+self._eventNameSpace,function(event,args){sheet._unbind(spread.Events.SelectionChanged+self._eventNameSpace);self._isKeyPressed=false;self._buttonBackColor=self._originButtonBackColor;sheet.repaint(cellRect)});self._isKeyPressed=true;return true}return false};ButtonCellType.prototype.processKeyUp=function(event,context){var sheet=context.sheet;if(!sheet){return false}var self=this;if(self._isKeyPressed){var row=sheet.getActiveRowIndex();var col=sheet.getActiveColumnIndex();var cellRect=sheet.getCellRect(row,col,sheet.activeRowViewportIndex,sheet.activeColViewportIndex);self._buttonBackColor=self._originButtonBackColor;sheet.repaint(cellRect);sheet._unbind(spread.Events.SelectionChanged+self._eventNameSpace);self._triggerButtonClicked(sheet,row,col);self._isKeyPressed=false;return true}return false};ButtonCellType.prototype.isReservedKey=function(e,context){if(e.keyCode===32&&!e.ctrlKey&&!e.shiftKey&&!e.altKey){return true}return false};ButtonCellType.prototype._getAutoFitWidth=function(sheet,value,text,cellStyle,isFilterHeader,context){var self=this;var width=spread.CellTypeContext._getAutoFitWidth(sheet,value,self._text,cellStyle,isFilterHeader,context);return width+self._marginLeft+self._marginRight};ButtonCellType.prototype._getAutoFitHeight=function(sheet,value,text,cellStyle,columnWidth,context){var self=this;var height=spread.CellTypeContext._getAutoFitHeight(sheet,value,self._text,cellStyle,columnWidth,context);return height+self._marginTop+self._marginBottom};ButtonCellType.prototype._cancelDefaultKeydown=function(event){if(event.keyCode===32&&!event.ctrlKey&&!event.shiftKey&&!event.altKey){spread.util.cancelDefault(event)}};ButtonCellType.prototype.isImeAware=function(context){return false};ButtonCellType.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"marginTop":return value===2;case"marginRight":return value===2;case"marginBottom":return value===2;case"marginLeft":return value===2;case"text":return value==="";case"buttonBackColor":return value===keyword_null;default:return false}};ButtonCellType.prototype.toJSON=function(){var self=this;var dictData={type:6,marginTop:self.marginTop(),marginRight:self.marginRight(),marginBottom:self.marginBottom(),marginLeft:self.marginLeft(),text:self.text(),buttonBackColor:self.buttonBackColor()};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};ButtonCellType.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.marginTop!==keyword_null&&settings.marginTop!==keyword_undefined){self.marginTop(settings.marginTop)}if(settings.marginRight!==keyword_null&&settings.marginRight!==keyword_undefined){self.marginRight(settings.marginRight)}if(settings.marginBottom!==keyword_null&&settings.marginBottom!==keyword_undefined){self.marginBottom(settings.marginBottom)}if(settings.marginLeft!==keyword_null&&settings.marginLeft!==keyword_undefined){self.marginLeft(settings.marginLeft)}if(settings.text){self.text(settings.text)}if(settings.buttonBackColor){self.buttonBackColor(settings.buttonBackColor)}};return ButtonCellType})(spread.TextCellType);spread.ButtonCellType=ButtonCellType;var DefaultDropDownButtonWidth=17;var DefaultMaxVisibleItemCount=20;var ComboBoxCellType=(function(_super){__extends(ComboBoxCellType,_super);function ComboBoxCellType(){_super.call(this);var self=this;self.allowOverflow=false;self._editorValueType=0;self._items=keyword_null;self._autoFormatValue=false;self._hasInPlaceEditor=false}ComboBoxCellType.prototype.getHitInfo=function(x,y,cellStyle,cellRect,context){if(!context){return keyword_null}var sheetArea=context.sheetArea;if((sheetArea===keyword_null||sheetArea===keyword_undefined||sheetArea===3)&&cellRect){var x2=cellRect.x+cellRect.width;var info={x:x,y:y,row:context.row,col:context.col,cellStyle:cellStyle,cellRect:cellRect,sheetArea:sheetArea,isFocusAware:true,isEditting:this._hasInPlaceEditor,sheet:context.sheet};if(this._hasInPlaceEditor||(x2-DefaultDropDownButtonWidth<=x&&x<x2)){info.isReservedLocation=true}return info}return keyword_null};ComboBoxCellType.prototype.processMouseDown=function(hitInfo){if(!hitInfo||!hitInfo.sheet){return}if(hitInfo.isReservedLocation){if(this._dropDown){this._closeDropDown(hitInfo)}else
{this._openDropDown(hitInfo)}}};ComboBoxCellType.prototype.isReservedKey=function(e,context){if(this._hasInPlaceEditor){var modifyKey=(e.ctrlKey||e.shiftKey||e.altKey);if(!modifyKey&&(e.which===13||e.which===27||e.which===9||e.which===37||e.which===39)){return false}return true}return false};ComboBoxCellType.prototype.isEditting=function(){return this._hasInPlaceEditor};ComboBoxCellType.prototype._openDropDown=function(context,maxVisibleItem){var sheet=context&&context.sheet;if(!sheet){return}if(typeof(maxVisibleItem)===const_undefined){maxVisibleItem=DefaultMaxVisibleItemCount}var render=sheet._render;var row=context.row;var col=context.col;var cellRect=context.cellRect;var sheetArea=context.sheetArea;var cellStyle=context.cellStyle;var self=this;var dummy=self.createEditorElement();self._dropDown=dummy;var $dummy=$(dummy);document.body.insertBefore(dummy,keyword_null);$dummy.hide();var device=spread.util.device(),isSafariOnIpad=$.browser.safari&&(device.ipad||device.iphone);var dummyTop,dummyLeft,dummyWidth,dummyHeight;var offset=sheet._eventHandler._getCanvasOffset(),bounds=sheet._bounds;if(isSafariOnIpad){dummyTop=offset.top+bounds.y+cellRect.y-1.5;dummyLeft=offset.left+bounds.x+cellRect.x-1.5;dummyWidth=cellRect.width+3;dummyHeight=cellRect.height+3}else
{dummyTop=offset.top+bounds.y+cellRect.y+cellRect.height;dummyLeft=offset.left+bounds.x+cellRect.x;dummyWidth=cellRect.width;dummyHeight="auto"}$dummy.css(cssTop,dummyTop).css(cssLeft,dummyLeft).css(cssBoxSizing,"border-box").css(cssHeight,dummyHeight).css(cssOutline,cssNone);if(cellStyle.backColor){$dummy.css(cssBackgroundColor,cellStyle.backColor)}if(cellStyle.foreColor){$dummy.css(cssColor,cellStyle.foreColor)}var font=(cellStyle&&cellStyle.font)?cellStyle.font:render._getDefaultFont();if(sheet._zoomFactor>1){font=render._getZoomFont(font)}$dummy.css(cssFont,font);self._renderItems(dummy,self._items);var dummyLength=dummy.length;if(dummyLength>maxVisibleItem){$dummy.prop("size",maxVisibleItem)}else
{$dummy.prop("size",Math_max(2,dummyLength))}self.setEditorValue(dummy,sheet.getValue(row,col,sheetArea),context);var tempWidth=parseInt($dummy.css("width"));if(tempWidth>dummyWidth){dummyWidth=tempWidth}$dummy.css(cssWidth,dummyWidth);$dummy.bind("keydown",function(e){if(e.ctrlKey||e.shiftKey||e.altKey){return}if(e.which===27){self._closeDropDown(context,true)}else if(e.which===13){self._closeDropDown(context)}else if(e.which===37){e.preventDefault();self._closeDropDown(context);spread.SpreadActions.navigationLeft.apply(sheet)}else if(e.which===39){e.preventDefault();self._closeDropDown(context);spread.SpreadActions.navigationRight.apply(sheet)}});$dummy.bind("click",function(e){if(e.target.tagName==="SELECT"||e.target.tagName==="OPTION"){self._closeDropDown(context)}});$dummy.bind("blur",function(){self._closeDropDown(context)});$dummy.show();$dummy.focus();self._hasInPlaceEditor=true;sheet.repaint(cellRect)};ComboBoxCellType.prototype._closeDropDown=function(context,cancel){var self=this;var sheet=context.sheet;var row=context.row;var col=context.col;var cellRect=context.cellRect;$(self._dropDown).unbind("blur").unbind("click").unbind("keydown");document.body.removeChild(self._dropDown);self._hasInPlaceEditor=false;if(cancel){sheet.repaint(cellRect)}else
{var v=self.getEditorValue(self._dropDown,context);var cellEditInfo={row:row,col:col,newValue:v,autoFormat:self._autoFormatValue};var undoAction=new spread.UndoRedo.CellEditUndoAction(sheet,cellEditInfo);sheet._doCommand(undoAction)}self._dropDown=keyword_null};ComboBoxCellType.prototype.paintValue=function(ctx,value,x,y,w,h,style,options){var btnWidth=DefaultDropDownButtonWidth,txtWidth=Math_max(0,w-btnWidth-1);if(style.hAlign===3){style.hAlign=0}if(style.wordWrap){style.wordWrap=false}if(txtWidth>0&&h>0){_super.prototype.paintValue.call(this,ctx,value,x,y,txtWidth,h,style,options)}ctx.save();if(btnWidth>w||btnWidth>h){ctx.rect(x,y,w,h);ctx.clip()}ctx.beginPath();if(this._hasInPlaceEditor&&options.sheet.getActiveRowIndex()===options.row&&options.sheet.getActiveColumnIndex()===options.col){ctx.beginPath();ctx.rect(x+w-btnWidth-0.5,y+1.5+0.05,btnWidth-1,h-3+0.05);ctx.fillStyle="#ddedfc";ctx.fill();ctx.lineWidth=1;ctx.strokeStyle="#7eb4ea";ctx.stroke()}ctx.beginPath();ctx.lineWidth=2;ctx.fillStyle="#000000";ctx.moveTo(x+w-btnWidth+4,y+(h-2)/2-2.5);ctx.lineTo(x+w-btnWidth+7,y+(h-2)/2+3.5);ctx.lineTo(x+w-btnWidth+10,y+(h-2)/2-2.5);ctx.fill();ctx.restore()};ComboBoxCellType.prototype.createEditorElement=function(context){var editor=document.createElement("select");$(editor).css(cssPositoin,cssAbsolute).css(cssMargin,zero).css(cssBackgroundColor,"white").attr(cssAttr,"gcEditor");return editor};ComboBoxCellType.prototype.setEditorValue=function(editorContext,value,context){var self=this,items=self._items;if(!editorContext||!items){return}var element=editorContext,count=items.length;if(self._editorValueType===0){var text=(value!==keyword_undefined&&value!==keyword_null)?value.toString().toLowerCase():keyword_null;var index=-1;for(var i=0;i<count;i++){var item=items[i];var txt=(item&&item.hasOwnProperty("text"))?item.text:item;txt=(txt!==keyword_undefined&&txt!==keyword_null)?txt.toString().toLowerCase():keyword_null;if(txt===text){index=i;break}}element.selectedIndex=index}else if(self._editorValueType===1){var index=parseInt(value,10);if(isNaN(index)){element.selectedIndex=-1}else
{element.selectedIndex=index}}else if(self._editorValueType===2){var index=-1;for(var i=0;i<count;i++){var item=items[i];if(item&&item.hasOwnProperty("value")&&item.value===value){index=i;break}}element.selectedIndex=index}};ComboBoxCellType.prototype.getEditorValue=function(editorContext,context){var self=this,items=self._items;if(!editorContext||!items){return keyword_null}var selectedIndex=editorContext.selectedIndex;if(selectedIndex>=0){if(self._editorValueType===0){var item=items[selectedIndex];return(item&&item.hasOwnProperty("text")?item.text:item)}else if(self._editorValueType===1){return selectedIndex}else if(self._editorValueType===2){var item=items[selectedIndex];if(item&&item.hasOwnProperty("value")){return item.value}}}return keyword_null};ComboBoxCellType.prototype.activateEditor=function(editorContext,cellStyle,cellRect,context){var sheet=context&&context.sheet;if(!sheet){return}var editor=editorContext;var $editor=$(editor);var offset=sheet._eventHandler._getCanvasOffset(),bounds=sheet._bounds;$editor.css(cssTop,offset.top+bounds.y+cellRect.y-1).css(cssLeft,offset.left+bounds.x+cellRect.x-1).css(cssBoxSizing,"border-box").css(cssBorder,"1px solid black").css(cssOutline,cssNone);this._renderItems(editor,this._items);$editor.bind("keydown",function(e){if(e.keyCode===8&&!e.ctrlKey&&!e.shiftKey&&!e.altKey){spread.util.cancelDefault(e)}if(e.ctrlKey||e.shiftKey||e.altKey){return}if(sheet.isEditing()&&sheet.editorStatus()===1){if(e.which===37){e.preventDefault();sheet.endEdit();spread.SpreadActions.navigationLeft.apply(sheet)}else if(e.which===39){e.preventDefault();sheet.endEdit();spread.SpreadActions.navigationRight.apply(sheet)}}});this._hasInPlaceEditor=true};ComboBoxCellType.prototype.deactivateEditor=function(editorContext,context){if(editorContext){var editor=editorContext;$(editor).unbind("keydown")}this._hasInPlaceEditor=false;_super.prototype.deactivateEditor.call(this,editorContext,context);if(context&&context.sheet){context.sheet.repaint()}};ComboBoxCellType.prototype.updateEditor=function(editorContext,cellStyle,cellRect,context){var sheet=editorContext&&context&&context.sheet;if(!sheet){return}var editor=editorContext;var render=sheet._render;var $editor=$(editor);if(cellRect){var offset=sheet._eventHandler._getCanvasOffset(),bounds=sheet._bounds;$editor.css(cssTop,offset.top+bounds.y+cellRect.y-1).css(cssLeft,offset.left+bounds.x+cellRect.x-1);;}if(cellStyle){if(cellStyle.backColor){$editor.css(cssBackgroundColor,cellStyle.backColor)}if(cellStyle.foreColor){$editor.css(cssColor,cellStyle.foreColor)}var font=cellStyle.font?cellStyle.font:render._getDefaultFont();if(sheet._zoomFactor>1){font=render._getZoomFont(font)}$editor.css(cssFont,font);if(cellStyle.textDecoration){this._setEditStatusTextDecoration($editor,cellStyle.textDecoration)}}if(cellRect){$editor.css(cssWidth,cellRect.width+1).css(cssHeight,cellRect.height+1)}};ComboBoxCellType.prototype._formatEditorValue=function(editorContext,cellStyle,value,context){return value};ComboBoxCellType.prototype.format=function(value,format,conditionalForeColor,context){var self=this,editorValueType=self._editorValueType,items=self._items;if(items){var count=items.length;if(editorValueType===0){}else if(editorValueType===1){var index=parseInt(value);if(0<=index&&index<count){var item=items[index];if(item!==keyword_undefined&&item!==keyword_null){value=(item.hasOwnProperty("text")?item.text:item)}}}else if(editorValueType===2){for(var i=0;i<count;i++){var item=items[i];if(item&&item.hasOwnProperty("value")&&item.value===value){value=(item.hasOwnProperty("text")?item.text:item);break}}}}return _super.prototype.format.call(this,value,format,conditionalForeColor)};ComboBoxCellType.prototype.parse=function(text,formatStr,context){var self=this,editorValueType=self._editorValueType,items=self._items;var parseText=_super.prototype.parse.call(this,text,formatStr);if(items){var count=items.length;if(editorValueType===0){return parseText}else if(editorValueType===1){for(var i=0;i<count;i++){var item=items[i];if((item&&item.hasOwnProperty("text")&&item.text===parseText)||(item===parseText)){return i}}}else if(editorValueType===2){for(var i=0;i<count;i++){var item=items[i];if((item&&item.hasOwnProperty("text")&&item.text===parseText)||(item===parseText)){return item.value}}}}return parseText};ComboBoxCellType.prototype.editorValueType=function(value){if(arguments.length===0){return this._editorValueType}this._editorValueType=value;return this};ComboBoxCellType.prototype.items=function(items){if(arguments.length===0){return this._items}this._items=items;return this};ComboBoxCellType.prototype._renderItems=function(element,items){if(!items||!element){return}var count=items.length;for(var i=0;i<count;i++){var option=new window.Option;var item=items[i];if(item!==keyword_undefined&&item!==keyword_null){if(item.hasOwnProperty("text")){option.text=item.text}else
{option.text=item}}element.add(option)}};ComboBoxCellType.prototype._getAutoFitWidth=function(sheet,value,text,cellStyle,isFilterHeader,context){var width=spread.CellTypeContext._getAutoFitWidth(sheet,value,text,cellStyle,isFilterHeader,context);return width+DefaultDropDownButtonWidth};ComboBoxCellType.prototype._getAutoFitHeight=function(sheet,value,text,cellStyle,columnWidth,context){return spread.CellTypeContext._getAutoFitHeight(sheet,value,text,cellStyle,columnWidth,context)};ComboBoxCellType.prototype.isImeAware=function(context){return false};ComboBoxCellType.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"editorValueType":return value===0;case"items":return value===keyword_null;default:return false}};ComboBoxCellType.prototype.toJSON=function(){var dictData={type:7,editorValueType:this.editorValueType(),items:this.items()};var settings={};for(var item in dictData){var value=dictData[item];if(!this._isDefaultValue(item,value)){settings[item]=value}}return settings};ComboBoxCellType.prototype.fromJSON=function(settings){if(!settings){return}if(settings.editorValueType!==keyword_null&&settings.editorValueType!==keyword_undefined){this.editorValueType(settings.editorValueType)}if(settings.items!==keyword_null&&settings.items!==keyword_undefined){this.items(settings.items)}};return ComboBoxCellType})(spread.TextCellType);spread.ComboBoxCellType=ComboBoxCellType;var HyperLinkCellType=(function(_super){__extends(HyperLinkCellType,_super);function HyperLinkCellType(){_super.call(this);var self=this;self.allowOverflow=false;self._link="";self._linkColor="#0066cc";self._visitedLinkColor="#3399ff";self._text="";self._linkToolTip="";self._id=HyperLinkCellType._getUniqueId();self._target=0}HyperLinkCellType.prototype.paintValue=function(ctx,value,x,y,w,h,style,options){var self=this;if(self._actived||!ctx){return}var text=(self._text||value);if(!text){return}text=text.replace(/\s+/g," ");var visited=false;var node=options.sheet._getModel().getNode(options.row,options.col),hyperlinkInfo=(node&&node.hyperlinkInfo);if(hyperlinkInfo){if(self._id===hyperlinkInfo.id){visited=hyperlinkInfo.visited}else
{delete node.hyperlinkInfo}}ctx.save();ctx.beginPath();var fillStyle;if(visited){fillStyle=self._visitedLinkColor}else
{fillStyle=self._linkColor}if(fillStyle&&ctx.fillStyle!==fillStyle){ctx.fillStyle=fillStyle}var font=style.font;if(font&&ctx.font!==font){ctx.font=font}var hAlign=style.hAlign,vAlign=style.vAlign,linkTextWidth=ctx.measureText(text).width,linkTextHeight=options.lineHeight,linkTextPosition=self._calcPosition(new spread.Rect(x,y,w,h),linkTextWidth,linkTextHeight,hAlign,vAlign);var clipRect={x:x,y:y,width:w,height:h};if(linkTextPosition.x+linkTextWidth>clipRect.width||linkTextPosition.y+linkTextHeight>clipRect.height){ctx.rect(clipRect.x,clipRect.y,clipRect.width,clipRect.height);ctx.clip();ctx.beginPath()}var adjX=2,textAlign=cssLeft;if(hAlign===1){if(linkTextWidth<w-3){adjX=w/2;textAlign=cssCenter}}else if(hAlign===2){if(linkTextWidth<w-3){adjX=w-2;textAlign=cssRight}}if(ctx.textAlign!==textAlign){ctx.textAlign=textAlign}var adjY=($.browser.mozilla?5:2),textBaseline=cssAlphabetic,fontSize=options.fontInfo.fontSize,baselineOffset=fontSize>8?Math_floor((fontSize-8)/5+2):1,lineOffset=linkTextHeight/2-fontSize/2+baselineOffset;adjY+=linkTextHeight-lineOffset;if(vAlign===1){if(linkTextHeight<h){if($.browser.mozilla){adjY=h/2+1}else if($.browser.msie){adjY=h/2+0.5}else
{adjY=h/2}if(Math_floor(adjY)!==adjY){adjY=adjY+0.5}adjY+=linkTextHeight/2-lineOffset}}else if(vAlign===2){adjY=h-2.5-lineOffset}if(ctx.textBaseline!==textBaseline){ctx.textBaseline=textBaseline}ctx.fillText(text,x+adjX,y+adjY);var textDecoration=style.textDecoration;if(textDecoration){self._renderTextDecoration(ctx,textDecoration,x+adjX,y+adjY,linkTextWidth,fontSize,baselineOffset)}var x1=x+linkTextPosition.x;var x2=x1+linkTextWidth;if(hAlign===2){}else
{x1=x1+1;x2=x2+1}var y1=y+linkTextPosition.y+linkTextHeight;if(style.vAlign===2){y1=y1-0.5}y1=y1-Math_max(0,Math_round(linkTextHeight/9)-1);if(Math_floor(y1)===y1){y1=y1+0.5}var y2=y1;ctx.beginPath();var strokeStyle=self._linkColor;if(visited){strokeStyle=self._visitedLinkColor}if(strokeStyle&&ctx.strokeStyle!==strokeStyle){ctx.strokeStyle=strokeStyle}ctx.lineWidth=1;ctx.moveTo(x1,y1);ctx.lineTo(x2,y2);ctx.stroke();ctx.restore()};HyperLinkCellType.prototype.createEditorElement=function(context){var editor=document.createElement("div");var $editor=$(editor);$editor.css(cssMargin,zero).css(cssPadding,zero).css(cssBorder,cssNone).css(cssPositoin,cssAbsolute).css(cssOverflow,cssHidden).css(cssBoxSizing,"content-box").css(cssWhiteSpace,"nowrap").attr(cssAttr,"gcEditor").attr("tabindex",1).css(cssOutline,cssNone);var targetValue;switch(this._target){case 0:targetValue="_blank";break;case 1:targetValue="_self";break;case 2:targetValue="_parent";break;case 3:targetValue="_top";break}var a=document.createElement("a");$(a).css(cssMargin,zero).css(cssOutline,cssNone).css("display","block").attr("target",targetValue).appendTo($editor);return editor};HyperLinkCellType.prototype._triggerButtonClicked=function(sheet,row,col){var parent=sheet.parent;if(parent){if(!sheet._startEditByKeydown){parent._trigger(spread.Events.ButtonClicked,{sheet:sheet,sheetName:sheet._name,row:row,col:col})}}};HyperLinkCellType.prototype.activateEditor=function(editorContext,cellStyle,cellRect,context){if(!editorContext||!cellRect){return}var sheet=context&&context.sheet;var $editor=$(editorContext);$editor.css(cssBackgroundColor,((cellStyle&&cellStyle.backColor)||"white"));if(sheet){var offset=sheet._eventHandler._getCanvasOffset(),bounds=sheet._bounds;var top=offset.top+bounds.y+cellRect.y;var left=offset.left+bounds.x+cellRect.x;$editor.css(cssTop,top).css(cssLeft,left)}$editor.bind("keydown",function(e){if(e.keyCode===8&&!e.ctrlKey&&!e.shiftKey&&!e.altKey){spread.util.cancelDefault(e)}});var self=this;var a=$editor.children()[0];if(a){var $a=$(a);$a.bind("click",function(){$a.css(cssColor,self._visitedLinkColor);if(sheet){var row=sheet._activeRowIndex;var col=sheet._activeColIndex;var node=sheet._getModel().getNode(row,col,true);node.hyperlinkInfo={id:self._id,visited:true};self._triggerButtonClicked(sheet,row,col)}})}var clip=document.createElement("div");$(clip).css(cssMargin,zero).css(cssPositoin,cssAbsolute).css(cssOverflow,cssHidden).css(cssBoxSizing,"content-box").attr(cssAttr,"gcEditingInput").css(cssBorderWidth,"1px").css(cssBorderStyle,"solid").css(cssBackgroundColor,"transparent");document.body.insertBefore(clip,keyword_null);self._clip=clip;self._actived=true};HyperLinkCellType.prototype.deactivateEditor=function(editorContext,context){if(this._clip){document.body.removeChild(this._clip)}if(editorContext){$(editorContext).unbind("keydown");var a=$(editorContext).children()[0];if(a){$(a).unbind("click")}}_super.prototype.deactivateEditor.call(this,editorContext,context);this._actived=false;var sheet=context&&context.sheet;if(sheet){sheet.repaint()}};HyperLinkCellType.prototype.updateEditor=function(editorContext,cellStyle,cellRect,context){if(!editorContext||!cellRect){return}var self=this;var sheet=context&&context.sheet,render=sheet&&sheet._render;var editor=editorContext;var $editor=$(editor);var a=$editor.children()[0];if(a){var $a=$(a);if(self._link){$a.attr("href",self._link)}var text=self._text||self._link;if(text){$a.text(text)}$a.attr("title",self._linkToolTip);var visited=false;var node=(sheet?sheet._getModel().getNode(sheet._activeRowIndex,sheet._activeColIndex):keyword_null);if(node&&node.hyperlinkInfo){if(self._id===node.hyperlinkInfo.id){visited=node.hyperlinkInfo.visited}else
{delete node.hyperlinkInfo}}if(visited){$a.css(cssColor,self._visitedLinkColor)}else
{$a.css(cssColor,self._linkColor)}var font=(cellStyle&&cellStyle.font)?cellStyle.font:keyword_null;if(!font&&render){font=render._getDefaultFont()}if(render&&sheet._zoomFactor>1){font=render._getZoomFont(font)}if(font){$a.css(cssFont,font)}}if(cellStyle&&sheet){$editor.css(cssMaxWidth,cellRect.width-2);$editor.css(cssMaxHeight,cellRect.height-2);var offset=sheet._eventHandler._getCanvasOffset(),bounds=sheet._bounds;var top=offset.top+bounds.y+cellRect.y;var left=offset.left+bounds.x+cellRect.x;var editorPosition=self._calcPosition(cellRect,$editor.width(),$editor.height(),cellStyle.hAlign,cellStyle.vAlign);$editor.css(cssTop,top+editorPosition.y).css(cssLeft,left+editorPosition.x);if(self._clip){$(self._clip).css(cssTop,top).css(cssLeft,left).height(cellRect.height-3).width(cellRect.width-3).css(cssBorderColor,cellStyle.backColor||"white")}if(cellStyle.textDecoration){self._setEditStatusTextDecoration($editor,cellStyle.textDecoration)}}};HyperLinkCellType.prototype.getEditorValue=function(editorContext,context){return this._link};HyperLinkCellType.prototype.setEditorValue=function(editorContext,value,context){this._link=value};HyperLinkCellType.prototype._formatEditorValue=function(editorContext,cellStyle,value,context){return value};HyperLinkCellType.prototype.getHitInfo=function(x,y,cellStyle,cellRect,context){if(context){var sheetArea=context.sheetArea;if((sheetArea===keyword_null||sheetArea===keyword_undefined||sheetArea===3)&&cellStyle&&cellRect){return{x:x,y:y,row:context.row,col:context.col,cellStyle:cellStyle,cellRect:cellRect,sheetArea:sheetArea,isFocusAware:true,sheet:context.sheet}}}return keyword_null};HyperLinkCellType.prototype.processMouseDown=function(hitInfo){if(!hitInfo){return}var sheet=hitInfo.sheet;if(!sheet||sheet.isEditing()){return}if(this._isHitHyperlink(hitInfo,sheet)){hitInfo.isReservedLocation=true}else
{hitInfo.isReservedLocation=false}if(hitInfo.isReservedLocation){this._isMouseDownLink=true}};HyperLinkCellType.prototype.processMouseUp=function(hitInfo){if(!hitInfo){return}var sheet=hitInfo.sheet;if(!sheet||sheet.isEditing()){return}var self=this;if(self._isHitHyperlink(hitInfo,sheet)){hitInfo.isReservedLocation=true}else
{hitInfo.isReservedLocation=false}if(hitInfo.isReservedLocation&&self._isMouseDownLink){var link=sheet.getValue(hitInfo.row,hitInfo.col,hitInfo.sheetArea);if(link){switch(self._target){case 0:window.open(link,"_blank");break;case 1:window.open(link,"_self");break;case 2:window.open(link,"_parent");break;case 3:window.open(link,"_top");break}}var node=sheet._getModel(hitInfo.sheetArea).getNode(hitInfo.row,hitInfo.col,true);node.hyperlinkInfo={id:self._id,visited:true};sheet.repaint(hitInfo.cellRect);self._triggerButtonClicked(sheet,hitInfo.row,hitInfo.col)}self._isMouseDownLink=false};HyperLinkCellType.prototype.processMouseMove=function(hitInfo){if(!hitInfo){return}var sheet=hitInfo.sheet;if(!sheet){return}if(sheet.isEditing()&&sheet.getActiveRowIndex()===hitInfo.row&&sheet.getActiveColumnIndex()===hitInfo.col){return}if(this._isHitHyperlink(hitInfo,sheet)){hitInfo.isReservedLocation=true}else
{hitInfo.isReservedLocation=false}if(hitInfo.isReservedLocation){this._showLinkToolTip(sheet,hitInfo);var canvas=sheet._getCanvas();if(canvas){var link=sheet.getValue(hitInfo.row,hitInfo.col,hitInfo.sheetArea);if(link){canvas.style.cursor="pointer"}else
{canvas.style.cursor="text"}}}else
{this._hideLinkToolTip();var canvas=sheet._getCanvas();if(canvas){canvas.style.cursor="default"}}};HyperLinkCellType.prototype.processMouseLeave=function(hitInfo){this._isMouseDownLink=false;this._hideLinkToolTip();var sheet=hitInfo.sheet;if(sheet){var canvas=sheet._getCanvas();if(canvas){canvas.style.cursor="default"}}};HyperLinkCellType.prototype._isHitHyperlink=function(hitInfo,sheet){var cellStyle=hitInfo.cellStyle,cellRect=hitInfo.cellRect,render=sheet._render;var x=hitInfo.x,y=hitInfo.y;var text=this._text||this._link;if(!text){text=sheet.getValue(hitInfo.row,hitInfo.col,hitInfo.sheetArea)}if(!text){return false}text=text.replace(/\s+/g," ");var font=(cellStyle&&cellStyle.font)?cellStyle.font:render._getDefaultFont();if(sheet._zoomFactor>1){font=render._getZoomFont(font)}var linkRect=this._getLinkRect(text,cellStyle.hAlign,cellStyle.vAlign,font,cellRect);var x1=cellRect.x+linkRect.x;var x2=Math_min(cellRect.x+linkRect.x+linkRect.width,cellRect.x+cellRect.width);var y1=cellRect.y+linkRect.y;var y2=Math_min(cellRect.y+linkRect.y+linkRect.height,cellRect.y+cellRect.height);if(x1<=x&&x<x2&&y1<=y&&y<y2){return true}return false};HyperLinkCellType.prototype._showLinkToolTip=function(sheet,hitInfo){if(this._linkToolTip){var tip=this._getLinkToolTipElement();var $tip=$(tip);$tip.text(this._linkToolTip);var offset=sheet._eventHandler._getCanvasOffset();var left=offset.left+hitInfo.x;var top=offset.top+hitInfo.y+20;if($tip.parent().length===0){document.body.insertBefore(tip,keyword_null);$tip.css(cssTop,top).css(cssLeft,left)}}};HyperLinkCellType.prototype._hideLinkToolTip=function(){if(this._linkToolTipElement){document.body.removeChild(this._linkToolTipElement);this._linkToolTipElement=keyword_null}};HyperLinkCellType.prototype._getLinkToolTipElement=function(){if(!this._linkToolTipElement){var div=document.createElement("div");div.className="gcHyperLinkCellTypeToolTip";$(div).css(cssPositoin,cssAbsolute).css(cssMargin,zero).css(cssPadding,2).css(cssBorder,"1px #c0c0c0 solid").css(cssBoxShadow,"1px 2px 5px rgba(0,0,0,0.4)").css(cssBoxSizing,"content-box").css(cssBackgroundColor,"#ffffff").css(cssFont,"9pt Arial");this._linkToolTipElement=div}return this._linkToolTipElement};HyperLinkCellType.prototype._getLinkRect=function(text,hAlign,vAlign,font,cellRect){var dummy=HyperLinkCellType._getEditorElement();var $dummy=$(dummy);var a=$dummy.children()[0];if(a){var $a=$(a);$a.text(text?text:"");if(font){$a.css(cssFont,font)}}var w=$dummy.width();var h=$dummy.height();var ret={x:0,y:0,width:w,height:h};if(cellRect){var p=this._calcPosition(cellRect,w,h,hAlign,vAlign);ret.x=p.x;ret.y=p.y}return ret};HyperLinkCellType.prototype._calcPosition=function(cellRect,editorWidth,editorHeight,hAlign,vAlign){var x=1;var y=1;var width=cellRect.width-3;var height=cellRect.height-3;if(hAlign===1){x=x+Math_max(0,(width-editorWidth)/2)}else if(hAlign===2){x=x+Math_max(0,width-editorWidth)}if(vAlign===1){y=y+Math_max(0,(height-editorHeight)/2)}else if(vAlign===2){y=y+Math_max(0,height-editorHeight)}return{x:x,y:y}};HyperLinkCellType.prototype.isReservedKey=function(e,context){if(e.keyCode===32&&!e.ctrlKey&&!e.shiftKey&&!e.altKey){return true}return false};HyperLinkCellType.prototype.processKeyUp=function(event,context){var sheet=context.sheet;if(!sheet){return false}var row=sheet.getActiveRowIndex();var col=sheet.getActiveColumnIndex();var sheetArea=sheet._getSheetArea(sheet.activeRowViewportIndex,sheet.activeColViewportIndex);var link=sheet.getValue(row,col,sheetArea);var cellRect=sheet.getCellRect(row,col,sheet.activeRowViewportIndex,sheet.activeColViewportIndex);if(link){link=link.toString();switch(this._target){case 0:window.open(link,"_blank");break;case 1:window.open(link,"_self");break;case 2:window.open(link,"_parent");break;case 3:window.open(link,"_top");break}}var node=sheet._getModel(sheetArea).getNode(row,col,true);node.hyperlinkInfo={id:this._id,visited:true};sheet.repaint(cellRect);this._triggerButtonClicked(sheet,row,col);return true};HyperLinkCellType.prototype.linkColor=function(value){if(arguments.length===0){return this._linkColor}this._linkColor=value;return this};HyperLinkCellType.prototype.visitedLinkColor=function(value){if(arguments.length===0){return this._visitedLinkColor}this._visitedLinkColor=value;return this};HyperLinkCellType.prototype.text=function(value){if(arguments.length===0){return this._text}this._text=value;return this};HyperLinkCellType.prototype.linkToolTip=function(value){if(arguments.length===0){return this._linkToolTip}this._linkToolTip=value;return this};HyperLinkCellType.prototype.target=function(value){if(arguments.length===0){return this._target}this._target=value;return this};HyperLinkCellType.prototype._getAutoFitWidth=function(sheet,value,text,cellStyle,isFilterHeader,context){var self=this,render=sheet._render;var actualText=self._text||value;var font=(cellStyle&&cellStyle.font)?cellStyle.font:render._getZoomFont(render._getDefaultFont());var linkRect=self._getLinkRect(actualText,cellStyle.hAlign,cellStyle.vAlign,font);return linkRect.width};HyperLinkCellType.prototype._getAutoFitHeight=function(sheet,value,text,cellStyle,columnWidth,context){var actualText=this._text||value,render=sheet._render;var font=(cellStyle&&cellStyle.font)?cellStyle.font:render._getDefaultFont();if(sheet._zoomFactor>1){font=render._getZoomFont(font)}var linkRect=this._getLinkRect(actualText,cellStyle.hAlign,cellStyle.vAlign,font);return linkRect.height};HyperLinkCellType.prototype.isImeAware=function(context){return false};HyperLinkCellType.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"linkColor":return value==="#0066cc";case"visitedLinkColor":return value==="#3399ff";case"text":return value==="";case"linkToolTip":return value==="";case"target":return value===0;default:return false}};HyperLinkCellType.prototype.toJSON=function(){var self=this;var dictData={type:8,linkColor:self._linkColor,visitedLinkColor:self._visitedLinkColor,text:self._text,linkToolTip:self._linkToolTip,target:self._target};var settings={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}return settings};HyperLinkCellType.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.linkColor!==keyword_undefined&&settings.linkColor!==keyword_null){self._linkColor=settings.linkColor}if(settings.visitedLinkColor!==keyword_undefined&&settings.visitedLinkColor!==keyword_null){self._visitedLinkColor=settings.visitedLinkColor}if(settings.text!==keyword_undefined&&settings.text!==keyword_null){self._text=settings.text}if(settings.linkToolTip!==keyword_undefined&&settings.linkToolTip!==keyword_null){self._linkToolTip=settings.linkToolTip}if(settings.target!==keyword_undefined&&settings.target!==keyword_null){self._target=settings.target}};HyperLinkCellType._getUniqueId=function(){var self=this;if(self._id===keyword_undefined||self._id===keyword_null){self._id=0}return"id_"+self._id++};HyperLinkCellType._getEditorElement=function(){var self=this;if(!self._editorElement){var div=HyperLinkCellType.prototype.createEditorElement(),divStyle=div.style;document.body.insertBefore(div,keyword_null);divStyle.visibility=cssHidden;divStyle.top="-10000px";divStyle.left="-10000px";div.className="gcHyperLinkCellTypeEditor";self._editorElement=div}return self._editorElement};return HyperLinkCellType})(spread.TextCellType);spread.HyperLinkCellType=HyperLinkCellType;var CustomCellType=(function(_super){__extends(CustomCellType,_super);function CustomCellType(){_super.call(this)}CustomCellType.prototype.paint=function(ctx,value,x,y,width,height,style,context){if(!ctx){return}spread.CellTypeContext.paintBackground(ctx,x,y,width,height,style.backColor,style.backgroundImage,style.backgroundImageLayout,context.imageLoader);var showBarIconOnly=spread.CellTypeContext.paintConditionalFormats(ctx,value,x,y,width,height,style,context);context.showBarIconOnly=showBarIconOnly;spread.CellTypeContext.paintSparkline(ctx,x,y,width,height,context.sparkline);var showSparklineEx=spread.CellTypeContext.paintSparklineEx(ctx,value,x,y,width,height,context.sheet);if(!context.cellOverflowLayout&&!showBarIconOnly&&!showSparklineEx){this.paintValue(ctx,value,x,y,width,height,style,context)}};CustomCellType.prototype.createEditorElement=function(context){};CustomCellType.prototype.getEditorValue=function(editorContext,context){};CustomCellType.prototype.setEditorValue=function(editorContext,value,context){};CustomCellType.prototype.activateEditor=function(editorContext,cellStyle,cellRect,context){var sheet=editorContext&&context&&context.sheet;if(sheet){var eventHandler=sheet._eventHandler;if(this.isImeAware(context)){eventHandler._resetFocusHolder()}var offset=eventHandler._getCanvasOffset(),bounds=sheet._bounds;var originalTop=offset.top+bounds.y+cellRect.y-2;var originalLeft=offset.left+bounds.x+cellRect.x-2;$(editorContext).css("top",originalTop).css("left",originalLeft)}};CustomCellType.prototype.deactivateEditor=function(editorContext,context){if(editorContext){if(editorContext._editingLocator){document.body.removeChild(editorContext._editingLocator)}}};CustomCellType.prototype.updateEditor=function(editorContext,cellStyle,cellRect,context){if(editorContext){$(editorContext).width(cellRect.width).height(cellRect.height)}};CustomCellType.prototype.updateImeMode=function(editorContext,imeMode,context){_super.prototype.updateImeMode.call(this,editorContext,imeMode,context)};CustomCellType.prototype.getHitInfo=function(x,y,cellStyle,cellRect,context){};CustomCellType.prototype.processMouseDown=function(hitInfo){};CustomCellType.prototype.processMouseMove=function(hitInfo){};CustomCellType.prototype.processMouseUp=function(hitInfo){};CustomCellType.prototype.processMouseEnter=function(hitInfo){};CustomCellType.prototype.processMouseLeave=function(hitInfo){};CustomCellType.prototype.isReservedKey=function(event,context){return false};CustomCellType.prototype.processKeyDown=function(event,context){return false};CustomCellType.prototype.processKeyUp=function(event,context){return false};CustomCellType.prototype.isEditingValueChanged=function(oldValue,newValue,context){return oldValue!==newValue};CustomCellType.prototype._getAutoFitWidth=function(sheet,value,text,cellStyle,isFilterHeader,context){var width=this.getAutoFitWidth(value,text,cellStyle,sheet._zoomFactor,context);if(isFilterHeader){var filterButtonZoom=Math_min(sheet._zoomFactor,1);var buttonwidth=parseInt((sheet.defaults.rowHeight*filterButtonZoom).toString(),10);width+=buttonwidth}return width};CustomCellType.prototype._getAutoFitHeight=function(sheet,value,text,cellStyle,columnWidth,context){return this.getAutoFitHeight(value,text,cellStyle,sheet._zoomFactor,context)};CustomCellType.prototype.getAutoFitWidth=function(value,text,cellStyle,zoomFactor,context){return 0};CustomCellType.prototype.getAutoFitHeight=function(value,text,cellStyle,zoomFactor,context){return 0};CustomCellType.prototype.isImeAware=function(context){return false};return CustomCellType})(spread.BaseCellType);spread.CustomCellType=CustomCellType})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var __extends=this.__extends||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __};var wijmo;(function(wijmo){(function(spread){spread.feature("filter",["core.common","core.stringResource"]);var keyword_null=null,keyword_undefined=undefined;var RowFilterBase=(function(){function RowFilterBase(range){this.range=range;this.reset()}RowFilterBase.prototype.setShowFilterButton=function(value){this.showFilterButton=value;if(this.sheet){this.sheet.invalidateLayout();this.sheet.repaint()}};RowFilterBase.prototype.getShowFilterButton=function(){return this.showFilterButton};RowFilterBase.prototype.addFilterItem=function(col,filterItem){var self=this;if(filterItem===keyword_undefined||filterItem===keyword_null){throw new Error(spread.SR.Exp_FilterItemIsNull);}if(col<-1||col>=self.sheet.getColumnCount()){throw new Error(spread.SR.Exp_InvalidColumnIndex);}if(!self.range){return}var range=self.sheet._getActualRange(self.range);if(col<range.col||col>=range.col+range.colCount){return}var filterItems=self.filterItemMap[col];if(!filterItems){filterItems=[]}filterItems.push(filterItem);self.filterItemMap[col]=filterItems};RowFilterBase.prototype.addAverageFilter=function(col,compareType){if(!spread.features.conditionalFormat){return}var con=new spread.AverageCondition(compareType);this.addFilterItem(col,con)};RowFilterBase.prototype.addBackgroundFilter=function(col,color){if(!spread.features.conditionalFormat){return}var con=new spread.ColorCondition(0,color);this.addFilterItem(col,con)};RowFilterBase.prototype.addDateFilter=function(col,compareType,date){if(!spread.features.conditionalFormat){return}var con=new spread.DateCondition(compareType,date);this.addFilterItem(col,con)};RowFilterBase.prototype.addForegroundFilter=function(col,color){if(!spread.features.conditionalFormat){return}var con=new spread.ColorCondition(1,color);this.addFilterItem(col,con)};RowFilterBase.prototype.addNumberFilter=function(col,compareType,num){if(!spread.features.conditionalFormat){return}var con=new spread.NumberCondition(compareType,num);this.addFilterItem(col,con)};RowFilterBase.prototype.addTextFilter=function(col,compareType,text){if(!spread.features.conditionalFormat){return}var con=new spread.TextCondition(compareType,text);this.addFilterItem(col,con)};RowFilterBase.prototype.addTop10Filter=function(col,compareType,rank){if(!spread.features.conditionalFormat){return}var con=new spread.Top10Condition(compareType,rank);this.addFilterItem(col,con)};RowFilterBase.prototype.removeFilterItems=function(col){if(this.filterItemMap[col]){this.filterItemMap.splice(col,1,keyword_null)}this.unfilter(col)};RowFilterBase.prototype.unfilter=function(col){var self=this;if(self.sheet){self.sheet._bindToAutoRefresh(function(col){if(col!==keyword_null&&col!==keyword_undefined){self._unfilterColumn(col)}else
{if(self.filteredColMap){for(var i=0;i<self.filteredColMap.length;i++){self._unfilterColumn(self.filteredColMap[i])}}}})(col)}};RowFilterBase.prototype._filterColumn=function(col){var self=this;self._unfilterColumn(col);var rr,rrc;if(self.filterItemMap[col]){if(self.range&&self.range.col!==-1&&(col<self.range.col||col>self.range.col+self.range.colCount-1)){return}var rc=self.sheet.getRowCount();if(self.range){rr=self.range.row;rrc=self.range.rowCount;if(rr===-1){rr=0;rrc=rc}}var dataCache={};dataCache=self._getRowDataCache(col,rr,rrc);for(var row=0;row<rc;row++){if(self.range&&(row<rr||row>=rr+rrc)){self._addRowFilteredIn(row);continue}if(!self.isRowFilteredOut(row)){self._filterRowByCell(row,col,dataCache)}}self._setColumnFilteredState(col,true)}};RowFilterBase.prototype._getRowDataCache=function(col,rBegin,rCount){var dataCache={};var itemTypeArray=[];itemTypeArray=this._getItemType(col);var itemKey;var itemTypeLen=itemTypeArray.length;for(var r=rBegin;r<rBegin+rCount;r++){var cellCache={};for(var i=0;i<itemTypeLen;i++){itemKey=itemTypeArray[i];var style;switch(itemKey){case"T":cellCache[itemKey]=this.sheet.getText(r,col);break;case"BC":style=this.sheet.getActualStyle(r,col);if(style){cellCache[itemKey]=style.backColor}break;case"FC":style=this.sheet.getActualStyle(r,col);if(style){cellCache[itemKey]=style.foreColor}break;case"V":cellCache[itemKey]=this.sheet.getValue(r,col);break}}dataCache[r]=cellCache}return dataCache};RowFilterBase.prototype._getItemType=function(col){var itemtypeArray=[];var filterItems=this.filterItemMap[col];var len=filterItems.length;for(var i=0;i<len;i++){var filterItem=filterItems[i];if(filterItem.conditionType==="RelationCondition"||filterItem instanceof spread.RelationCondition){if(filterItem.item1){if(filterItem.item1.conditionType==="TextCondition"||filterItem.item1.conditionType==="TextLengthCondition"){if(itemtypeArray.indexOf("T")===-1){itemtypeArray.push("T")}}else if(filterItem.item1.conditionType==="ColorCondition"){if(filterItem.item1.compareType===0){if(itemtypeArray.indexOf("BC")===-1){itemtypeArray.push("BC")}}else if(filterItem.item1.compareType===1){if(itemtypeArray.indexOf("FC")===-1){itemtypeArray.push("FC")}}}else
{if(itemtypeArray.indexOf("V")===-1){itemtypeArray.push("V")}}}if(filterItem.item2){if(filterItem.item2.conditionType==="TextCondition"||filterItem.item2.conditionType==="TextLengthCondition"){if(itemtypeArray.indexOf("T")===-1){itemtypeArray.push("T")}}else if(filterItem.item2.conditionType==="ColorCondition"){if(filterItem.item2.compareType===0){if(itemtypeArray.indexOf("BC")===-1){itemtypeArray.push("BC")}}else if(filterItem.item2.compareType===1){if(itemtypeArray.indexOf("FC")===-1){itemtypeArray.push("FC")}}}else
{if(itemtypeArray.indexOf("V")===-1){itemtypeArray.push("V")}}}}else
{if(filterItem.conditionType==="TextCondition"||filterItem.conditionType==="TextLengthCondition"){if(itemtypeArray.indexOf("T")===-1){itemtypeArray.push("T")}}else if(filterItem.conditionType==="ColorCondition"){if(filterItem.compareType===0){if(itemtypeArray.indexOf("BC")===-1){itemtypeArray.push("BC")}}else if(filterItem.compareType===1){if(itemtypeArray.indexOf("FC")===-1){itemtypeArray.push("FC")}}}else
{if(itemtypeArray.indexOf("V")===-1){itemtypeArray.push("V")}}}}return itemtypeArray};RowFilterBase.prototype.filter=function(col){var self=this;if(self.sheet){self.sheet._bindToAutoRefresh(function(col){if(col!==keyword_null&&col!==keyword_undefined){self._filterColumn(col)}else
{if(self.filterItemMap){for(var i=0;i<self.filterItemMap.length;i++){if(self.filterItemMap[i]&&self.filterItemMap[i].length>0){self._filterColumn(i)}}}}})(col)}};RowFilterBase.prototype.isHideRowFilter=function(){return false};RowFilterBase.prototype.isFiltered=function(){return this.filteredColMap.length>0};RowFilterBase.prototype.isColumnFiltered=function(col){return this.filteredColMap.contains(col)};RowFilterBase.prototype.isRowFilteredOut=function(row){if(this.isFiltered()){return!this.filterInRows.contains(row)}return false};RowFilterBase.prototype.reset=function(){var self=this;self.filterInRows=[];self.filterItemMap=[];self.filteredColMap=[];self.filteredItems=[];self.filteredInRowsWithColIndexs={};self.showFilterButton=true;self.sortInfo=keyword_null};RowFilterBase.prototype.isFilterHeader=function(row,col,sheetArea){var self=this;var result=false;if(self.range){var range=self.sheet._getActualRange(self.range,sheetArea);if(sheetArea===1&&row===self.sheet.getRowCount(sheetArea)-1&&range.row-1<0){if(col>=range.col&&col<range.col+range.colCount){result=true}}else if(sheetArea===3&&row===range.row-1){if(col>=range.col&&col<range.col+range.colCount){result=true}}}return result};RowFilterBase.prototype.isLastFilteredColumn=function(col){var count=this.filteredColMap.length;if(count>0){return this.filteredColMap[count-1]===col}return false};RowFilterBase.prototype.getFilterItems=function(col){var itemList=this.filterItemMap[col];if(!itemList){itemList=[]}return itemList};RowFilterBase.prototype.getFilteredItems=function(){return this.filteredItems};RowFilterBase.prototype.sortColumn=function(col,ascending){var self=this,sheet=self.sheet;if(sheet){sheet._bindToAutoRefresh(function(col,ascending){var range=sheet._getActualRange(self.range);var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);var ret=sheet.sortRange(range.row,range.col,range.rowCount,range.colCount,true,[{index:col,ascending:ascending}]);sheet.isPaintSuspended(oldState);if(ret){self.sortInfo={index:col,ascending:ascending};if(self.isColumnFiltered(col)){self.reFilter()}}})(col,ascending)}};RowFilterBase.prototype.getSortState=function(col){var state=0;if(this.sortInfo){if(this.sortInfo.index===col){if(this.sortInfo.ascending){state=1}else
{state=2}}}return state};RowFilterBase.prototype.reFilter=function(){var self=this;self.filteredInRowsWithColIndexs={};if(self.filteredItems||self.filteredItems.length>0){self.filteredItems.length=0}if(self.filteredColMap||self.filteredColMap.length>0){var tempIndex=[];tempIndex=tempIndex.concat(self.filteredColMap);self.filteredColMap.length=0;for(var i=0;i<tempIndex.length;i++){self.filter(tempIndex[i])}}};RowFilterBase.prototype._addRowFilteredIn=function(row){if(!this.filterInRows.contains(row)){this.filterInRows.push(row)}};RowFilterBase.prototype._addFilteredInRowsWithColumnIndex=function(row,col){var colIndexs=this.filteredInRowsWithColIndexs[row];if(colIndexs===keyword_undefined||colIndexs===keyword_null){colIndexs=[col]}else
{if(colIndexs.contains(col)){colIndexs.remove(col)}colIndexs.push(col)}this.filteredInRowsWithColIndexs[row]=colIndexs};RowFilterBase.prototype._addFilteredItem=function(filterItem){if(!this.filteredItems.contains(filterItem)){this.filteredItems.push(filterItem)}};RowFilterBase.prototype._unfilterColumn=function(col){var self=this;if(!self.range){return}var range=self.sheet._getActualRange(self.range),row;if(self.isColumnFiltered(col)){if(!(self.filteredColMap.length>1&&col===self.filteredColMap[0])){for(row=range.row;row<range.row+range.rowCount;row++){var isOutbyColumn=self._isRowfilteredOutByColumn(row,col);if(isOutbyColumn){self._addRowFilteredIn(row)}}}self._setColumnFilteredState(col,false);self._removeFilteredInRowsWithColumnIndex(col);self._removeFilteredItems(col)}else
{for(row=range.row;row<range.row+range.rowCount;row++){var isOut=self.isRowFilteredOut(row);if(!isOut){self._addRowFilteredIn(row)}}}};RowFilterBase.prototype._setColumnFilteredState=function(col,isFiltered){var self=this;if(isFiltered){if(self.filteredColMap.length>0){if(self.filteredColMap[self.filteredColMap.length-1]===col){return}else
{self.filteredColMap.remove(col)}}self.filteredColMap.push(col)}else
{self.filteredColMap.remove(col)}};RowFilterBase.prototype._removeFilteredItems=function(col){var self=this;if(!self.filterItemMap[col]){return}var removeItems=[];var otherItems=[];for(var i=0;i<self.filterItemMap.length;i++){if(i===col){removeItems=removeItems.concat(self.filterItemMap[i])}else
{otherItems=otherItems.concat(self.filterItemMap[i])}}for(var i=0;i<removeItems.length;i++){var item=removeItems[i];if(!otherItems.contains(item)){self.filteredItems.remove(item)}}};RowFilterBase.prototype._removeFilteredInRowsWithColumnIndex=function(col){for(var key in this.filteredInRowsWithColIndexs){if(key){var colIndexs=this.filteredInRowsWithColIndexs[key];if(colIndexs&&colIndexs.contains(col)){colIndexs.remove(col)}}}};RowFilterBase.prototype._filterRowByCell=function(row,col,dataCache){var self=this;var filterOutTempyDict={};var filterItems=self.filterItemMap[col];for(var i=0;i<filterItems.length;i++){var filterItem=filterItems[i];var value1,value2;if(filterItem.conditionType==="RelationCondition"||filterItem instanceof spread.RelationCondition){if(filterItem.item1){value1=self._getActualValueFromCache(filterItem.item1,row,col,dataCache);if(filterItem.item1.conditionType==="Top10Condition"||filterItem.item1 instanceof spread.Top10Condition){filterItem.item1.ranges=self._getReviseRanges(col,self.range)}else if(filterItem.item1.conditionType==="AverageCondition"||filterItem.item1 instanceof spread.AverageCondition){filterItem.item1.ranges=self._getReviseRanges(col,self.range)}}if(filterItem.item2){value2=self._getActualValueFromCache(filterItem.item2,row,col,dataCache);if(filterItem.item2.conditionType==="Top10Condition"||filterItem.item2 instanceof spread.Top10Condition){filterItem.item2.ranges=self._getReviseRanges(col,self.range)}else if(filterItem.item2.conditionType==="AverageCondition"||filterItem.item2 instanceof spread.AverageCondition){filterItem.item2.ranges=self._getReviseRanges(col,self.range)}}}else
{value1=self._getActualValueFromCache(filterItem,row,col,dataCache);if(filterItem.conditionType==="Top10Condition"||filterItem instanceof spread.Top10Condition){filterItem.ranges=self._getReviseRanges(col,self.range)}else if(filterItem.conditionType==="AverageCondition"||filterItem instanceof spread.AverageCondition){filterItem.ranges=self._getReviseRanges(col,self.range)}}if(filterItem.evaluate(self.sheet,row,col,value1,value2)){self._addRowFilteredIn(row);self._addFilteredInRowsWithColumnIndex(row,col);self._addFilteredItem(filterItem);break}else
{if(!filterOutTempyDict[row]){self.filterInRows.remove(row);filterOutTempyDict[row]=true}}}};RowFilterBase.prototype._getActualValueFromCache=function(filterItem,row,col,dataCache){var value=keyword_null;if(filterItem.conditionType==="TextCondition"||filterItem.conditionType==="TextLengthCondition"){value=dataCache[row]["T"]}else if(filterItem.conditionType==="ColorCondition"){if(filterItem.compareType===0){value=dataCache[row]["BC"]}else if(filterItem.compareType===1){value=dataCache[row]["FC"]}}else
{value=dataCache[row]["V"]}return value};RowFilterBase.prototype._getReviseRanges=function(col,range){var reviseRange=[];if(range){var actualRange=this.sheet._getActualRange(range);if(actualRange.col<=col&&col<actualRange.col+actualRange.colCount){reviseRange.push(new spread.Range(actualRange.row,col,actualRange.rowCount,1))}}return reviseRange};RowFilterBase.prototype._getCandindateDataItems=function(col,outHasBlank){var self=this,sheet=self.sheet;var items=[];var itemsDic={};var range=sheet._getActualRange(self.range);if(col<range.col||col>range.col+range.colCount-1){return items}var hasBlank=false;for(var row=range.row;row<range.row+range.rowCount;row++){var text=sheet.getText(row,col);if(text===""){hasBlank=true;continue}if(!itemsDic[text]){if(!self.isRowFilteredOut(row)){if(sheet.getRowHeight(row,3)>0){items.push(text);itemsDic[text]=true}}else if(!self.isFiltered()||(self.isLastFilteredColumn(col)&&self._isRowfilteredOutByColumn(row,col))){items.push(text);itemsDic[text]=true}else if(sheet.getRowHeight(row,3)>0){items.push(text);itemsDic[text]=true}}}if(hasBlank&&outHasBlank){outHasBlank.hasBlank=true}return items};RowFilterBase.prototype._isRowfilteredOutByColumn=function(row,col){var self=this;if(self.filteredColMap.length===0){return false}if(self.filteredInRowsWithColIndexs){var previousColumn=-1;var currentIndex=self.filteredColMap.indexOf(col);if(currentIndex>0){previousColumn=self.filteredColMap[currentIndex-1]}var colIndexs=self.filteredInRowsWithColIndexs[row];if(previousColumn>-1){if(!colIndexs||colIndexs.length===0){return false}else
{return previousColumn===colIndexs[colIndexs.length-1]}}else
{if(self.filteredColMap.length===1){return!colIndexs||colIndexs.length===0}else
{return false}}}return false};RowFilterBase.prototype._addRows=function(row,count){var self=this;if(!self.range){return}var endRow=self.sheet.getRowCount()-count-1;if(self.range.row>-1){var cs=self.range;endRow=cs.row+cs.rowCount-1;if(cs.row>=row){self._setRangeInternal(new spread.Range(cs.row+count,cs.col,cs.rowCount,cs.colCount))}else if(cs.row<row&&row<cs.row+cs.rowCount){self._setRangeInternal(new spread.Range(cs.row,cs.col,cs.rowCount+count,cs.colCount))}}if(self.isFiltered()&&self.filterInRows){for(var i=self.filterInRows.length-1;i>=0;i--){var oldKey=self.filterInRows[i];if(oldKey>=row&&oldKey<=endRow){var oldValue=self.filterInRows[oldKey];var newKey=oldKey+count;self.filterInRows[newKey]=oldValue;self.filterInRows.remove(oldKey)}}}self.reFilter()};RowFilterBase.prototype._addColumns=function(column,count){var self=this;if(!self.range){return}var c;if(column>=0&&self._isSortted()){var addCount=0;for(var i=0;i<count;i++){c=i+column;if(c<=self._sorttedColumn()){addCount++}}self._sorttedColumn(self._sorttedColumn()+addCount)}var startColumn=-1;var columnCount=0;var cs=self.range;if(cs.col>-1){if(cs.col>=column){startColumn=self.range.col;self._setRangeInternal(new spread.Range(cs.row,cs.col+count,cs.rowCount,cs.colCount));columnCount=self.range.colCount}else if(cs.col<column&&column<cs.col+cs.colCount){startColumn=column;columnCount=cs.colCount-(column-cs.col);self._setRangeInternal(new spread.Range(cs.row,cs.col,cs.rowCount,cs.colCount+count))}}if(startColumn<0){startColumn=0;columnCount=self.sheet.getColumnCount()-count}for(c=startColumn+columnCount-1;c>=startColumn;c--){if(c>=column){var newColumn=c+count;var index=self.filteredColMap.indexOf(c);if(index>=0){self.filteredColMap[index]=newColumn}var conditions=self.filterItemMap[c];if(conditions&&conditions.length>0){self.filterItemMap.remove(c);self.filterItemMap[newColumn]=conditions}}}self.reFilter()};RowFilterBase.prototype._removeRows=function(row,count){var self=this;if(!self.range){return}var startRow=0;var endRow=self.sheet.getRowCount()+count-1;if(self.range.row>-1){var cs=self.range;startRow=cs.row;endRow=cs.row+cs.rowCount-1;if(cs.row>=row){if(cs.row===row+1){self._setRangeInternal(keyword_null)}else if(cs.row+cs.rowCount<=row+count){self._setRangeInternal(keyword_null)}else if(cs.row<row+count){self._setRangeInternal(new spread.Range(row,cs.col,(cs.row+cs.rowCount)-(row+count),cs.colCount))}else
{self._setRangeInternal(new spread.Range(cs.row-count,cs.col,cs.rowCount,cs.colCount))}}else if(cs.row<row&&row<cs.row+cs.rowCount){self._setRangeInternal(new spread.Range(cs.row,cs.col,cs.rowCount-Math.min(cs.row+cs.rowCount-row,count),cs.colCount))}}if(self.isFiltered()&&self.filterInRows){for(var i=startRow;i<=endRow;i++){if(i>=row){if(i<row+count){self.filterInRows.remove(i)}else
{var oldKey=i;var oldValue=self.filterInRows[oldKey];if(oldValue!==keyword_undefined&&oldValue!==keyword_null){var newKey=oldKey-count;self.filterInRows[newKey]=oldValue;self.filterInRows.remove(oldKey)}}}}}self.reFilter()};RowFilterBase.prototype._setRangeInternal=function(newRange){this.range=newRange};RowFilterBase.prototype._updateRange=function(newRange){var self=this,sheet=self.sheet;var oldRange=self.range;if(!oldRange){}else if(!newRange){self.reset()}else if(newRange.equals(oldRange)){}else
{var oldCol=oldRange.col,oldColCount=oldRange.colCount;var newCol=newRange.col,newColCount=newRange.colCount;if(oldCol<0&&newCol<0){}else if(self.isFiltered()){if(oldCol<0){oldCol=0;oldColCount=sheet.getColumnCount()}if(newCol<0){newCol=0;newColCount=sheet.getColumnCount()}for(var i=0;i<oldColCount;i++){var c=oldCol+i;if(newCol<=c&&c<newCol+newColCount){}else
{self.removeFilterItems(c)}}}var oldRow=oldRange.row,oldRowCount=oldRange.rowCount;var newRow=newRange.row,newRowCount=newRange.rowCount;if(oldRow<0&&newRow<0){}else if(self.isFiltered()&&self.filteredInRowsWithColIndexs){if(oldRow<0){oldRow=0;oldRowCount=sheet.getRowCount()}if(newRow<0){newRow=0;newRowCount=sheet.getRowCount()}for(var i=0;i<oldRowCount;i++){var r=oldRow+i;if(newRow<=r&&r<newRow+newRowCount){}else
{self.filteredInRowsWithColIndexs[r]=keyword_undefined}}}}if(self._isSortted()){if(newRange&&newRange.contains(-1,self._sorttedColumn())){}else
{self.sortInfo=keyword_null}}self._setRangeInternal(newRange)};RowFilterBase.prototype._removeColumns=function(column,count){var self=this;if(!self.range){return}if(column>=0&&self._isSortted()){if(!(column<=self._sorttedColumn()&&self._sorttedColumn()<column+count)){if(self._sorttedColumn()>=column){self._sorttedColumn(self._sorttedColumn()-count)}}else
{self._sorttedColumn(-1)}}var cs=self.range;var startColumn=cs.col;var columnCount=cs.colCount;if(startColumn<0){startColumn=0;columnCount=self.sheet.getColumnCount()+count}else
{columnCount=self.range.colCount}var removeEnd=column+count;for(var c=startColumn;c<startColumn+columnCount;c++){if(c>=column){if(c<removeEnd){self.removeFilterItems(c)}else
{var newColumn=c-count;var index=self.filteredColMap.indexOf(c);if(index>=0){self.filteredColMap[index]=newColumn}var conditions=self.filterItemMap[c];if(conditions&&conditions.length>0){self.filterItemMap.remove(c);self.filterItemMap[newColumn]=conditions}}}}if(cs.col>=0){if(column<cs.col){if(removeEnd<=cs.col){self._setRangeInternal(new spread.Range(cs.row,cs.col-count,cs.rowCount,cs.colCount))}else if(removeEnd<=cs.col+cs.colCount){self._setRangeInternal(new spread.Range(cs.row,column,cs.rowCount,(cs.col+cs.colCount)-removeEnd))}else
{self._setRangeInternal(keyword_null)}}else if(column<cs.col+cs.colCount){if(removeEnd<=cs.col+cs.colCount){self._setRangeInternal(new spread.Range(cs.row,cs.col,cs.rowCount,cs.colCount-count))}else
{self._setRangeInternal(new spread.Range(cs.row,cs.col,cs.rowCount,column-cs.col))}}}self.reFilter()};RowFilterBase.prototype._isSortted=function(){var self=this;if(self.sortInfo){return self.sortInfo.index>-1&&self.getSortState(self.sortInfo.index)!==0}return false};RowFilterBase.prototype._sorttedColumn=function(col){var self=this;if(arguments.length===0){if(self.sortInfo){return self.sortInfo.index}else
{return-1}}else
{if(!self.sortInfo){self.sortInfo={index:col,ascending:false}}else
{self.sortInfo.index=col}return self}};RowFilterBase.prototype._clear=function(row,column,rowCount,columnCount){var self=this;if(!self.range){return}var clearRange=new spread.Range(row,column,rowCount,columnCount);if(self.showFilterButton){var newRow=self.range.row-1;var newRowCount=self.range.rowCount+1;if(newRow<0){newRow=-1;newRowCount=-1}if(clearRange.containsRange(new spread.Range(newRow,self.range.col,newRowCount,self.range.colCount))){self.unfilter()}}else
{if(clearRange.containsRange(self.range)){self.unfilter()}}};RowFilterBase.prototype._getConditionTypeDictionary=function(){if(!this._ruleTypeDictionary){var dict={};dict[0]=spread.RelationCondition;dict[1]=spread.NumberCondition;dict[2]=spread.TextCondition;dict[3]=spread.ColorCondition;dict[4]=spread.FormulaCondition;dict[5]=spread.DateCondition;dict[6]=spread.DateExCondition;dict[7]=spread.TextLengthCondition;dict[8]=spread.Top10Condition;dict[9]=spread.UniqueCondition;dict[10]=spread.AverageCondition;dict[11]=spread.CellValueCondition;dict[12]=spread.AreaCondition;this._ruleTypeDictionary=dict}return this._ruleTypeDictionary};RowFilterBase.prototype.fromJSON=function(settings){if(!settings){return}var self=this;if(settings.range){var rg=settings.range;self.range=new spread.Range(rg.row,rg.col,rg.rowCount,rg.colCount)}if(spread.features.conditionalFormat&&settings.filterItemMap){for(var i=0;i<settings.filterItemMap.length;i++){var conditionArray=settings.filterItemMap[i].conditions;if(conditionArray){for(var k=0;k<conditionArray.length;k++){var conditionSettings=conditionArray[k];var condition=keyword_null;if(conditionSettings){var dict=self._getConditionTypeDictionary();var conditionClass=dict[conditionSettings.conType];if(conditionClass){condition=new conditionClass;condition.fromJSON(conditionSettings);self.addFilterItem(settings.filterItemMap[i].index,condition)}}}}}}if(settings.filteredColMap){for(var i=0;i<settings.filteredColMap.length;i++){var filteredCol=settings.filteredColMap[i];if(filteredCol!==keyword_undefined&&filteredCol!==keyword_null){self._filterColumn(filteredCol)}}}if(settings.sortInfo){self.sortColumn(settings.sortInfo.index,settings.sortInfo.ascending)}if(settings.showFilterButton!==keyword_null&&settings.showFilterButton!==keyword_undefined){self.showFilterButton=settings.showFilterButton}};RowFilterBase.prototype.toJSON=function(){var self=this;var filterItemMapData=[];for(var i=0,k=0;i<self.filterItemMap.length;i++){var filterItem=self.filterItemMap[i];if(filterItem){var conditions=[];for(var c=0;c<filterItem.length;c++){var condition=filterItem[c];conditions.push(condition?condition.toJSON():keyword_null)}filterItemMapData[k++]={index:i,conditions:conditions}}}var dictData={range:self.range,filterItemMap:filterItemMapData,filteredColMap:self.filteredColMap,sortInfo:self.sortInfo,showFilterButton:self.showFilterButton};var sdata={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){sdata[item]=value}}return sdata};RowFilterBase.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"filterItemMap":return value.length===0;case"filteredColMap":return value.length===0;case"sortInfo":return value===keyword_null;case"showFilterButton":return value===true;default:return false}};return RowFilterBase})();spread.RowFilterBase=RowFilterBase;var HideRowFilter=(function(_super){__extends(HideRowFilter,_super);function HideRowFilter(range){_super.call(this,range)}HideRowFilter.prototype.isHideRowFilter=function(){return true};return HideRowFilter})(RowFilterBase);spread.HideRowFilter=HideRowFilter;var _TableFilter=(function(_super){__extends(_TableFilter,_super);function _TableFilter(table){_super.call(this);this._table=table;if(table){this.sheet=table._getSheet()}}_TableFilter.prototype.table=function(table){if(arguments.length===0){return this._table}this._table=table;if(table){this.sheet=table._getSheet()}};_TableFilter.prototype._addRows=function(row,count){_super.prototype._addRows.call(this,row,count);if(this._table){this._setRangeInternal(this._table.dataRange())}};_TableFilter.prototype._removeRows=function(row,count){_super.prototype._removeRows.call(this,row,count);if(this._table){this._setRangeInternal(this._table.dataRange())}};return _TableFilter})(HideRowFilter);spread._TableFilter=_TableFilter})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var __extends=this.__extends||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __};var wijmo;(function(wijmo){(function(spread){spread.feature("filter_ui",["core.common","core.stringResource","filter","core.spreadpanelex"]);var keyword_null=null,const_undefined="undefined",sortAscID="sortASC",sortDesID="sortDES",okID="filterOK",cancelID="filterCancel",searchID="filterSearch",checkAllID="filterCheckAll",unCheckAllID="filterUnCheckAll",filterItemClass="filter-item",itemContainerClass="filter-item-container",filterUIClass="filter-ui",itemsWrapperClass="filter-item-wrapper",itemInputClass="filter-item-input",itemSpanClass="filter-item-text",filterButtonClass="filter-button",filterSortClass="filter-sort",filterCheckClass="filter-check",filterCheckStyleClass="filter-check-style",filterCheckContainerClass="filter-check-outerDiv",eventNamespace=".ui-filter-dialog",filterKeyDown="keydown"+eventNamespace,filterKeyUp="keyup"+eventNamespace,layoutTableClass="layout-table",filterDialogStyleClass="filter-dialog-style",wijmoHoverClass="ui-state-hover",notWijmoHoverClass="container-default-hover",noUserSelectClass="no-user-select";(function(_FilterButtonState){_FilterButtonState[_FilterButtonState["noSortFilter"]=0]="noSortFilter";_FilterButtonState[_FilterButtonState["ascend"]=1]="ascend";_FilterButtonState[_FilterButtonState["descend"]=2]="descend";_FilterButtonState[_FilterButtonState["filter"]=3]="filter";_FilterButtonState[_FilterButtonState["filterAscend"]=4]="filterAscend";_FilterButtonState[_FilterButtonState["filterDescend"]=5]="filterDescend";_FilterButtonState[_FilterButtonState["sortAscending"]=6]="sortAscending";_FilterButtonState[_FilterButtonState["sortDescending"]=7]="sortDescending";_FilterButtonState[_FilterButtonState["checkAll"]=8]="checkAll";_FilterButtonState[_FilterButtonState["unCheckAll"]=9]="unCheckAll"})(spread._FilterButtonState||(spread._FilterButtonState={}));var _FilterButtonState=spread._FilterButtonState;var _FilterButtonInfo=(function(){function _FilterButtonInfo(rowFilter,row,col,sheetArea,x,y,width,height){var self=this;self.rowFilter=rowFilter;self.row=row;self.col=col;self.sheetArea=sheetArea;self.x=x;self.y=y;self.width=width;self.height=height}_FilterButtonInfo.prototype.getState=function(){var filterButtonState=0;var filter=this.rowFilter;if(!filter){return filterButtonState}var state=filter.getSortState(this.col);if(filter.isColumnFiltered(this.col)){if(state===0){filterButtonState=3}else if(state===1){filterButtonState=4}else if(state===2){filterButtonState=5}}else
{if(state===0){filterButtonState=0}else if(state===1){filterButtonState=1}else if(state===2){filterButtonState=2}}return filterButtonState};return _FilterButtonInfo})();spread._FilterButtonInfo=_FilterButtonInfo;var _FilterButtonInfoModel=(function(_super){__extends(_FilterButtonInfoModel,_super);function _FilterButtonInfoModel(){_super.call(this)}_FilterButtonInfoModel.prototype.find=function(row,col,sheetArea){var count=this.length,btnInfo;for(var i=0;i<count;i++){btnInfo=this[i];if(btnInfo&&btnInfo.row===row&&btnInfo.col===col&&btnInfo.sheetArea===sheetArea){return btnInfo}}return keyword_null};return _FilterButtonInfoModel})(spread._XArray);spread._FilterButtonInfoModel=_FilterButtonInfoModel;var _GcFilterDialog=(function(_super){__extends(_GcFilterDialog,_super);function _GcFilterDialog(sheet,filterButtonInfo){_super.call(this);var self=this;self._useWijmoTheme=false;self.sheet=sheet;self.filterButtonInfo=filterButtonInfo;self.init()}_GcFilterDialog.prototype.init=function(){var self=this;self.defaultItemWidth=185;self._touchContainerWidth=257;self._touchContainerHeight=355;self.rEscape="/[\-\[\]{}()*+?.,\\\^$|#\s]/g";self._itemValueCache=[];self._firstOpenCache=[];self.elementList=[];self.allItemsLength=-1;self.activeItemIndex=0;self.container=self.getContainer();self._createTableLayout();self._initFilterPanel()};_GcFilterDialog.prototype.open=function(){var self=this;var sheet=self.sheet,tempSpread=sheet.parent;if(!sheet){return}var useTouchLayout=(tempSpread&&tempSpread.useTouchLayout)?tempSpread.useTouchLayout():false,useWijmoTheme=(tempSpread&&typeof(tempSpread.useWijmoTheme)!=const_undefined)?tempSpread.useWijmoTheme:false;self._initData(self.filterButtonInfo.col);self.container.appendTo(document.body);self.container.hide();self.show("normal","fade",function(){$("#"+sortAscID).focus()});if(useTouchLayout){self._updateFilterPanel(self._touchContainerWidth,self._touchContainerHeight)}var t=$(sheet._getCanvas()).offset();var dialogWidth=self.container.width();var dialogHeight=self.container.height();var x=self.filterButtonInfo.x+self.filterButtonInfo.width-dialogWidth;var y=self.filterButtonInfo.y+self.filterButtonInfo.height;x+=t.left-6;y+=t.top;self.container.css({left:x,top:y});self.resetDialogPosition();self._initFirstOpenCache();self._setItemWidth();if(!self.filterScrollPanel){self.filterScrollPanel=new spread.ScrollablePanel(self.itemList[0],self.itemsWrapper[0])}self.filterScrollPanel.refreshLayout();self._updateItemWidth();self._updateItemCache();self._attachEvent();self.useWijmoTheme(useWijmoTheme);self.filterScrollPanel.useWijmoTheme(useWijmoTheme)};_GcFilterDialog.prototype._updateFilterPanel=function(width,height){var self=this;var widthInc=width-parseFloat(self.container.css("width"));var heightInc=height-parseFloat(self.container.css("height"));if(widthInc<=0||heightInc<=0){return}self.container.css({width:width+"px",height:height+"px"});var newSortPaddingV=parseFloat($("."+filterSortClass).css("padding-top"))+heightInc/30;$("."+filterSortClass).css("padding",newSortPaddingV+"px"+" 6px");var filterItem=$("."+filterItemClass);var newItemHeight=parseFloat(filterItem.css("height"))+heightInc/4;filterItem.css("height",newItemHeight+"px");var itemInput=$("."+itemInputClass);var itemSpan=$("."+itemSpanClass);var itemInputHeight=parseFloat(itemInput.css("height"));var oldInputItemMarginTop=parseFloat(itemInput.css("margin-top"));var newInputItemMarginTop=(newItemHeight-itemInputHeight)/2;itemInput.css("margin-top",newInputItemMarginTop+"px");var newSpanTop=parseFloat(itemSpan.css("top"))+newInputItemMarginTop-oldInputItemMarginTop;itemSpan.css("top",newSpanTop+"px");var oldHeight=parseFloat($("."+itemContainerClass).css("height"));var oldWidth=parseFloat($("."+itemContainerClass).css("width"));var newItemContainerHeight=oldHeight+widthInc;var newItemContainerWidth=oldWidth+heightInc/2;$("."+itemContainerClass).css({width:newItemContainerWidth+"px",height:newItemContainerHeight+"px"});self.defaultItemWidth=newItemContainerWidth-5;var filterButtons=$("."+filterButtonClass);var newButtonWidth=parseFloat(filterButtons.css("width"))+widthInc/4;var newButtonHeight=parseFloat(filterButtons.css("height"))+heightInc/8;filterButtons.css({width:newButtonWidth+"px",height:newButtonHeight+"px"});var okButton=$("#"+okID);var newButtonMarginLeft=parseFloat(okButton.css("margin-left"))+widthInc/2;okButton.css("margin-left",newButtonMarginLeft+"px");var searchBox=$("#"+searchID);var newSearchWidth=parseFloat(searchBox.css("width"))+widthInc;var newSearchHeight=parseFloat(searchBox.css("height"))+heightInc/8;searchBox.css({height:newSearchHeight+"px",width:newSearchWidth+"px"});var filterCheck=$("."+filterCheckContainerClass);var newCheckMarginTop=parseFloat(filterCheck.css("margin-top"))+heightInc/10;filterCheck.css("margin-top",newCheckMarginTop+"px");var unCheckAll=$("#"+unCheckAllID);var newCheckMarginLeft=parseFloat(unCheckAll.css("margin-left"))+widthInc;$("#"+unCheckAllID).css("margin-left",newCheckMarginLeft+"px")};_GcFilterDialog.prototype.close=function(){_super.prototype.close.call(this);if(this.sheet){this.sheet.setFocus()}};_GcFilterDialog.prototype.useWijmoTheme=function(value){var self=this;if(typeof value===const_undefined){return self._useWijmoTheme}if(typeof value==='boolean'&&self._useWijmoTheme!==value){_super.prototype.useWijmoTheme.call(this,value);var filterCheck=$("."+filterCheckClass);var filterButton=$("."+filterButtonClass);var filterSort=$("."+filterSortClass);var filterItems=$("."+filterItemClass);var checkAll=$("#"+checkAllID);var uncheckAll=$("#"+unCheckAllID);var sortContainer=$(".sort-container");var layoutTable=$("."+layoutTableClass);if(value){self.container.removeClass(filterDialogStyleClass);self.searchOuterDiv.removeClass("container-default-header");filterButton.removeClass("container-default-state");filterCheck.removeClass(filterCheckStyleClass);self.searchOuterDiv.addClass("ui-widget-header ui-corner-all ui-multiselect-header ui-helper-clearfix");filterSort.addClass("ui-corner-all");filterItems.addClass("ui-corner-all");filterButton.addClass("ui-button ui-state-default ui-corner-all");checkAll.find("span:eq(0)").addClass("ui-icon ui-icon-check");uncheckAll.find("span:eq(0)").addClass("ui-icon ui-icon-closethick");layoutTable.addClass("ui-menu");sortContainer.addClass("ui-menu-item")}else
{self.searchOuterDiv.remove("ui-widget-header ui-corner-all ui-multiselect-header ui-helper-clearfix");filterSort.removeClass("ui-corner-all");filterItems.removeClass("ui-corner-all");filterButton.removeClass("ui-button ui-state-default ui-corner-all");checkAll.find("span:eq(0)").removeClass("ui-icon ui-icon-check");uncheckAll.find("span:eq(0)").removeClass("ui-icon ui-icon-closethick");layoutTable.removeClass("ui-menu");sortContainer.removeClass("ui-menu-item");self.container.addClass(filterDialogStyleClass);filterCheck.addClass(filterCheckStyleClass);self.searchOuterDiv.addClass("container-default-header");filterButton.addClass("container-default-state")}return self}return keyword_null};_GcFilterDialog.prototype._initFilterPanel=function(){var self=this;var ascLink=self._getSortLink(sortAscID,spread.SR.SortAscending).css("margin-top","6px");var desLink=self._getSortLink(sortDesID,spread.SR.SortDescending);self.table.find("tr:eq(0) td:eq(0)").append($("<img>").attr("src",_GcFilterDialog.getImageSrc(6)));self.table.find("tr:eq(1) td:eq(0)").append($("<img>").attr("src",_GcFilterDialog.getImageSrc(7)));self.table.find("tr:eq(0) td:eq(1)").append(ascLink);self.table.find("tr:eq(1) td:eq(1)").append(desLink);self.elementList.push(ascLink[0]);self.elementList.push(desLink[0]);self.searchOuterDiv=$("<div>").addClass("search-outer-div container-default-header");var searchDiv=$("<div>").appendTo(self.searchOuterDiv);var searchInput=$("<input>").attr({type:"search",placeholder:spread.SR.Search,id:searchID}).appendTo(searchDiv);self.elementList.push(searchInput[0]);var checkDiv=$("<div>").appendTo(self.searchOuterDiv).addClass("filter-check-outerDiv");var checkAllLink=self._getCheckLink(checkAllID,spread.SR.CheckAll,"check-image");var unCheckAllLink=self._getCheckLink(unCheckAllID,spread.SR.UncheckAll,"uncheck-image");checkDiv.append(checkAllLink).append(unCheckAllLink);self.table.find("tr:eq(2) td:eq(1)").append(self.searchOuterDiv);self.itemList=$("<div>").addClass(itemContainerClass);self.table.find("tr:eq(3) td:eq(1)").append(self.itemList);var okButton=$("<button>").text(spread.SR.OK).addClass(filterButtonClass+" container-default-state").attr({id:okID});var cancelButton=$("<button>").text(spread.SR.Cancel).addClass(filterButtonClass+" container-default-state").attr({id:cancelID});self.table.find("tr:eq(4) td:eq(1)").append(okButton);self.table.find("tr:eq(4) td:eq(1)").append(cancelButton);self.elementList.push(okButton[0]);self.elementList.push(cancelButton[0])};_GcFilterDialog.prototype._createTableLayout=function(){var self=this;var rowCount=5;var colCount=3;self.table=$("<table>").css({padding:0,display:"table"}).attr({cellspacing:0,cellpadding:0}).addClass(layoutTableClass);for(var row=0;row<rowCount;row++){var tr=$("<tr>");for(var col=0;col<colCount;col++){var td=$("<td>").appendTo(tr)}tr.appendTo(self.table)}self.table.appendTo(self.container);$(self.table).find("tr").each(function(){$("td:eq(0)",this).addClass("layout-table-first-column");$("td:eq(2)",this).addClass("layout-table-last-column")});$(self.table).find("tr:eq(1) td:eq(1)").addClass("filter-sort-desc-container sort-container");$(self.table).find("tr:eq(0) td:eq(1)").addClass("filter-sort-asc-container sort-container");self.container.css({"box-shadow":"rgba(0, 0, 0, 0.4) 2px 4px 5px",padding:"2px"}).addClass(filterDialogStyleClass+" "+filterUIClass+" "+noUserSelectClass)};_GcFilterDialog.prototype._updateItemCache=function(){var itemContainer=$("."+itemContainerClass);var inputs=itemContainer.find("input");this._itemValueCache=[];var self=this;inputs.each(function(index){self._itemValueCache.push($(this).val().toLowerCase())})};_GcFilterDialog.prototype._stopBubble=function(e){if(e&&e.stopPropagation){e.stopPropagation()}else
{window.event.cancelBubble=true}return false};_GcFilterDialog.prototype._attachEvent=function(){var self=this;$("#"+sortAscID).bind({mouseup:function(event){self._sortByUser(true);self.close();spread.util.cancelDefault(event)},mousedown:function(event){spread.util.cancelDefault(event)}});$("#"+sortDesID).bind({mouseup:function(event){self._sortByUser(false);self.close();spread.util.cancelDefault(event)},mousedown:function(event){spread.util.cancelDefault(event)}});$("."+filterSortClass).hover(function(){var hoverClassName="filter-hover "+(self._useWijmoTheme?wijmoHoverClass:notWijmoHoverClass);var hoverItem=$(".filter-hover");hoverItem.removeClass(wijmoHoverClass+" "+notWijmoHoverClass);$(this).addClass(hoverClassName)},function(){var hoverClassName="filter-hover "+(self._useWijmoTheme?wijmoHoverClass:notWijmoHoverClass);$(this).removeClass(hoverClassName)});$("#"+checkAllID).bind({mousedown:function(event){spread.util.cancelDefault(event)},mouseup:function(event){var visibleItems=$("."+filterItemClass).find("input:visible");visibleItems.prop("checked",true);self._setButtonState();spread.util.cancelDefault(event)}});$("#"+unCheckAllID).bind({mousedown:function(event){spread.util.cancelDefault(event)},mouseup:function(event){var visibleItems=$("."+filterItemClass).find("input:visible");visibleItems.prop("checked",false);self._setButtonState();spread.util.cancelDefault(event)}});$("."+filterItemClass).bind({mouseenter:function(){var hoverClassName="filter-hover "+(self._useWijmoTheme?wijmoHoverClass:notWijmoHoverClass);var hoverItem=$(".filter-hover");hoverItem.removeClass(wijmoHoverClass+" "+notWijmoHoverClass);$(this).addClass(hoverClassName)},mouseleave:function(){var hoverClassName="filter-hover "+(self._useWijmoTheme?wijmoHoverClass:notWijmoHoverClass);$(this).removeClass(hoverClassName)},click:function(e){$(this).find("input").trigger("click")}});$("."+filterItemClass).find("input").bind("click",function(e){self._stopBubble(e);self._setButtonState();var item=$(this).parents("div."+filterItemClass).get(0);self._updateActiveItemIndex(item)});$("#"+searchID).bind({keydown:function(e){var key=e.which||e.keyCode;if(key===13){e.preventDefault()}},keyup:function(e){switch(e.keyCode){case 9:case 37:case 38:case 39:case 40:return;default:self._handler.call(self,e);self._setItemWidth();self.filterScrollPanel.refreshLayout();self._updateItemWidth();self._setButtonState()}},search:function(e){self._handler.call(self,e);self._setItemWidth();self.filterScrollPanel.refreshLayout();self._updateItemWidth();self._setButtonState()}});$("."+filterButtonClass).hover(function(){var hoverItem=$(".filter-button-hover");var filterButtonHoverClassName="filter-button-hover "+(self._useWijmoTheme?wijmoHoverClass:notWijmoHoverClass);hoverItem.removeClass(wijmoHoverClass+" "+notWijmoHoverClass);$(this).addClass(filterButtonHoverClassName)},function(){var filterButtonHoverClassName="filter-button-hover "+(self._useWijmoTheme?wijmoHoverClass:notWijmoHoverClass);$(this).removeClass(filterButtonHoverClassName)});$("#"+okID).bind("click",function(){var checkedValues=self._getCheckedValuesByUser();self._updateData(checkedValues);self._filter(checkedValues);self.close()});$("#"+cancelID).bind("click",function(){self.close()});$(self.container).bind("mousewheel",function(event){spread.util.cancelDefault(event)});$(self.container).bind(filterKeyDown,function(event){var key=event.which||event.keyCode;if(key!==27&&key!==13&&key!==38&&key!==40&&key!==9){return}var hoverItem=keyword_null;if(self._useWijmoTheme){hoverItem=$("."+wijmoHoverClass)}else
{hoverItem=$("."+notWijmoHoverClass)}if(key===27){self.close();spread.util.cancelDefault(event);return false}if(key===13){if(hoverItem.length!==1){return}var itemID=hoverItem.attr("id");if(itemID===sortAscID){self._sortByUser(true);self.close()}else if(itemID===sortDesID){self._sortByUser(false);self.close()}else if(itemID===okID){var checkedValues=self._getCheckedValuesByUser();self._updateData(checkedValues);self._filter(checkedValues);self.close()}else if(itemID===cancelID){self.close()}else
{var inputList=$(hoverItem).find("input");if(inputList.length>0){inputList.trigger("click")}self._updateActiveItemIndex(hoverItem[0])}}if(key===38||key===40||key===9){var targetItem;var filterItemList=self.itemList.find("div."+filterItemClass);if(hoverItem.length===0){targetItem=self.elementList[0]}else
{hoverItem.removeClass(wijmoHoverClass+" "+notWijmoHoverClass);var navList=self.elementList.concat([]);for(var i=0;i<filterItemList.length;i++){navList.splice(-2,0,filterItemList[i])}var isForward=true;if(key===9){if(event.shiftKey){isForward=false}var tabList=self.elementList.concat([]);tabList.splice(-2,0,filterItemList[self.activeItemIndex]);var tabItemIndex=$.inArray(hoverItem[0],filterItemList);if(isForward){if(tabItemIndex>=0){var $okButton=$(self.elementList[3]);if(!self._ignoreElement($okButton)){targetItem=self.elementList[3]}else
{targetItem=self.elementList[4]}}else
{tabItemIndex=$.inArray(hoverItem[0],tabList);if(tabItemIndex>=0){var len=tabList.length;targetItem=tabList[tabItemIndex+1];while(self._ignoreElement($(targetItem))&&tabItemIndex<len){targetItem=tabList[tabItemIndex+1];tabItemIndex++}}}}else
{if(tabItemIndex>=0){targetItem=self.elementList[2]}else
{tabItemIndex=$.inArray(hoverItem[0],tabList);if(tabItemIndex>=0){targetItem=tabList[tabItemIndex-1];while(tabItemIndex>0&&self._ignoreElement($(targetItem))){targetItem=tabList[tabItemIndex-1];tabItemIndex--}}}if(typeof targetItem===const_undefined){targetItem=tabList[tabList.length-1]}}if(typeof targetItem===const_undefined){targetItem=tabList[0]}}else
{var downItemIndex=$.inArray(hoverItem[0],navList);var navLen=navList.length;if(downItemIndex>=0){if(key===40){targetItem=navList[downItemIndex+1];if($.inArray(targetItem,filterItemList)!==-1&&$.inArray(hoverItem[0],filterItemList)===-1){downItemIndex=downItemIndex+self.activeItemIndex;targetItem=navList[downItemIndex+1]}while(downItemIndex<navLen&&self._ignoreElement($(targetItem))){targetItem=navList[downItemIndex+1];downItemIndex++}}else
{targetItem=navList[downItemIndex-1];if($.inArray(targetItem,filterItemList)!==-1&&$.inArray(hoverItem[0],filterItemList)===-1){downItemIndex=self.activeItemIndex+3;targetItem=navList[downItemIndex]}while(downItemIndex>0&&self._ignoreElement($(targetItem))){targetItem=navList[downItemIndex-1];downItemIndex--}if(typeof targetItem===const_undefined){targetItem=navList[navList.length-1]}}if(typeof targetItem===const_undefined){targetItem=navList[0]}}}}hoverItem=$(targetItem);var activeIndex=$.inArray(targetItem,filterItemList);if(activeIndex>=0){self.activeItemIndex=activeIndex;self.filterScrollPanel.scrollChildIntoView(targetItem);hoverItem.find("input").focus()}else
{hoverItem.focus()}if(self._useWijmoTheme){hoverItem.addClass("filter-hover "+wijmoHoverClass)}else
{hoverItem.addClass("filter-hover "+notWijmoHoverClass)}spread.util.cancelDefault(event)}});$(self.container).bind(filterKeyUp,function(event){spread.util.cancelDefault(event)})};_GcFilterDialog.prototype._updateActiveItemIndex=function(item){var filterItemList=this.itemList.find("div."+filterItemClass);if(filterItemList.length===0){return}var activeIndex=$.inArray(item,filterItemList);if(activeIndex>=0){this.activeItemIndex=activeIndex}};_GcFilterDialog.prototype._setFocusBack=function(){if(this.sheet){this.sheet.setFocus()}};_GcFilterDialog.prototype._ignoreElement=function(ele){if(ele.length===0){return false}if(ele.hasClass("ui-button-disabled")||ele.hasClass(" ui-state-disabled")||ele.hasClass("filter-button-disable")){return true}if(!ele.is(":visible")){return true}return false};_GcFilterDialog.prototype._updateItemPanel=function(){var items=$("."+filterItemClass);var inputs=items.find("input");inputs.prop("checked",false);items.show()};_GcFilterDialog.prototype._filter=function(filterValues){var self=this;var sheet=self.sheet;if(!sheet){return}var supended=sheet.isPaintSuspended();try
{sheet.isPaintSuspended(true);var drf=self.filterButtonInfo.rowFilter;if(!drf){return}if(filterValues&&filterValues.length>0)sheet._trigger(spread.Events.RangeFiltering,{sheet:sheet,sheetName:sheet._name,col:self.filterButtonInfo.col,filterValues:filterValues});drf.filter(self.filterButtonInfo.col);if(filterValues&&filterValues.length>0)sheet._trigger(spread.Events.RangeFiltered,{sheet:sheet,sheetName:sheet._name,col:self.filterButtonInfo.col,filterValues:filterValues})}finally
{sheet.isPaintSuspended(supended)}};_GcFilterDialog.prototype._updateData=function(checkedValues){var colIndex=this.filterButtonInfo.col;var drf=this.filterButtonInfo.rowFilter;if(!drf||!spread.features.conditionalFormat){return}drf.unfilter(colIndex);drf.removeFilterItems(colIndex);for(var i=0;i<checkedValues.length;i++){var value=checkedValues[i];if(value===spread.SR.Blanks){value=""}var tc=new spread.TextCondition(0,value,keyword_null);drf.addFilterItem(colIndex,tc)}};_GcFilterDialog.prototype._getCheckedValuesByUser=function(){var checkValues=[];var itemContainer=$("."+itemContainerClass);var inputs=itemContainer.find("input");inputs.each(function(index){if($(this).prop("checked")){checkValues.push($(this).val())}});if(this.allItemsLength===checkValues.length){checkValues=[]}return checkValues};_GcFilterDialog.prototype._handler=function(e){var searchInput=$("#"+searchID);var value=$.trim(searchInput.val().toLowerCase());var itemContainer=$("."+itemContainerClass);var inputs=itemContainer.find("input");var items=inputs.parent();if(!value){items.show();if(!this._firstOpenCache||this._firstOpenCache.length===0){this._initFirstOpenCache()}else
{inputs.prop("checked",false);var self=this;$.each(inputs,function(i,v){var cur=v;if($.inArray(cur.value,self._firstOpenCache)!==-1){$(cur).prop("checked",true)}})}}else
{items.hide();inputs.prop("checked",false);var regex=new RegExp(value.replace(this.rEscape,"\\$&"),'gi');$.map(this._itemValueCache,function(v,i){if(v.search(regex)!==-1){items.eq(i).show();var currentInput=inputs.get(i);$(currentInput).prop("checked",true);return currentInput}})}};_GcFilterDialog.prototype._getSortLink=function(id,text,callback){var link=$("<a>");link.attr({id:id,href:"javascript:void(0)"}).text(text).addClass(filterSortClass).css({display:"block",padding:"5px 6px",cursor:"default",margin:"2px 0px 1px 2px","text-decoration":"none",outline:"none"});if(callback){link.click=callback}return link};_GcFilterDialog.prototype._getCheckLink=function(id,text,imageClass,callback){var imgSpan=$("<span>").addClass("check-uncheck-all "+imageClass);var textSpan=$("<span>").text(text);var link=$("<a>");link.attr({href:"javascript:void(0)",id:id}).css({float:"left","margin-left":"7px"}).addClass(filterCheckClass+" "+filterCheckStyleClass).append(imgSpan).append(textSpan);if(callback){link.click=callback}return link};_GcFilterDialog.prototype._initData=function(colIndex){var self=this;var drf=self.filterButtonInfo.rowFilter;if(!drf){return}var allValues=self._getAllData(colIndex);allValues.sort(function(a,b){if(a>b){return 1}else if(a<b){return-1}else
{return 0}});self._bindData(allValues);var checkedValues=[];if(drf.isColumnFiltered(colIndex)){checkedValues=self._getCheckedData(colIndex)}else
{checkedValues=allValues}var checkedActualValues=self._getActualValues(allValues,checkedValues);self._setCheckedValues(checkedActualValues)};_GcFilterDialog.prototype._getAllData=function(colIndex){var textArray=[];var drf=this.filterButtonInfo.rowFilter;if(!drf){return textArray}var range;var sheet=this.sheet;if(sheet){range=sheet._getActualRange(drf.range)}if(colIndex<range.col||colIndex>range.col+range.colCount-1){return textArray}var outHasBlank={hasBlank:false};textArray=drf._getCandindateDataItems(colIndex,outHasBlank);if(outHasBlank.hasBlank){textArray.push(spread.SR.Blanks)}return textArray};_GcFilterDialog.prototype._bindData=function(textArray){var self=this;var itemsWrap=document.createElement("div");itemsWrap.className=itemsWrapperClass;var length=textArray.length;for(var i=0;i<length;i++){var text=textArray[i];var itemOuterDiv=document.createElement("div");itemOuterDiv.className=filterItemClass;itemsWrap.appendChild(itemOuterDiv);var inputEle=document.createElement("input");inputEle.className=itemInputClass;inputEle.setAttribute("type","checkbox");inputEle.setAttribute("value",text);inputEle.setAttribute("title",text);itemOuterDiv.appendChild(inputEle);var spanEle=document.createElement("span");spanEle.className=itemSpanClass;spanEle.innerHTML=text;itemOuterDiv.appendChild(spanEle)}self.itemList.empty();self.allItemsLength=length;self.itemsWrapper=$(itemsWrap);$(self.itemsWrapper).appendTo(self.itemList)};_GcFilterDialog.prototype._setItemWidth=function(){var itemSpans=$("."+itemSpanClass),filterItems=$("."+filterItemClass),itemInputs=$("."+itemInputClass),borderWidth=parseFloat(filterItems.css("border-width")),marginLeft=parseFloat(itemInputs.css("margin-left")),marginRight=parseFloat(itemInputs.css("margin-right")),maxSpanWidth=0,containerWidth=0;if(isNaN(borderWidth)){borderWidth=0}if(isNaN(marginLeft)){marginLeft=0}if(isNaN(marginRight)){marginRight=0}for(var i=0;i<itemSpans.length;i++){var width=$(itemSpans[i]).width();if(maxSpanWidth<width){maxSpanWidth=width}}var maxItemWidth=maxSpanWidth+itemInputs.width()+marginLeft+marginRight+2*borderWidth;filterItems.css("width",maxItemWidth)};_GcFilterDialog.prototype._updateItemWidth=function(){var self=this;var filterScrollPanel=self.filterScrollPanel;if(!filterScrollPanel){return}var showVertical=filterScrollPanel.showVerticalScrollbar(),showHorizontal=filterScrollPanel.showHorizontalScrollbar(),width;if(showHorizontal){width=$(self.itemsWrapper).width()}else
{if(showVertical){width=self.defaultItemWidth-filterScrollPanel._defaultScrollbarSize}else
{width=self.defaultItemWidth}}$("."+filterItemClass).css("width",width)};_GcFilterDialog.prototype._getCheckedData=function(colIndex){var sheet=this.sheet;var checkedValues=[];var dic={};var filter=this.filterButtonInfo.rowFilter;if(!filter){return checkedValues}if(!sheet){return checkedValues}if(filter.isColumnFiltered(colIndex)){var startRow=filter.range.row===-1?0:filter.range.row;var rowCount=filter.range.rowCount===-1?sheet.getRowCount():filter.range.rowCount;for(var row=startRow;row<startRow+rowCount;row++){if(!filter.isRowFilteredOut(row)){var cellValue=sheet.getValue(row,colIndex);var dataItem=keyword_null;if(cellValue instanceof Date){dataItem=cellValue}else
{dataItem=sheet.getText(row,colIndex)}if(!dic[dataItem]){checkedValues.push(dataItem);dic[dataItem]=true}}}}return checkedValues};_GcFilterDialog.prototype._ArrayToDic=function(array){var dic={};$.each(array,function(i,v){dic[v]=v});return dic};_GcFilterDialog.prototype._setCheckedValues=function(checkedActualValues){var dic=this._ArrayToDic(checkedActualValues);this.itemList.find("input").each(function(){var $element=$(this);var value=$element.val();if(dic[value]!==keyword_null&&typeof(dic[value])!=const_undefined){$element.prop("checked",true)}else
{$element.prop("checked",false)}})};_GcFilterDialog.prototype._getActualValues=function(allValues,checkedValues){var checkedActualValues=[];var allValuesDic=this._ArrayToDic(allValues);var checkedActualValuesDic={};for(var i=0;i<checkedValues.length;i++){var item=checkedValues[i];if(item===undefined||item===keyword_null||item===""){item=spread.SR.Blanks}if((allValuesDic[item]!==keyword_null&&typeof(allValuesDic[item])!=const_undefined)&&!checkedActualValuesDic[item]){checkedActualValues.push(item);checkedActualValuesDic[item]=true}}return checkedActualValues};_GcFilterDialog.prototype._sortByUser=function(isAsc){var drf=this.filterButtonInfo.rowFilter;if(!drf){return}var sheet=this.sheet,sheetName=sheet._name;if(!sheet){return}var colIndex=this.filterButtonInfo.col;sheet._trigger(spread.Events.RangeSorting,{sheet:sheet,sheetName:sheetName,col:colIndex,ascending:isAsc});var oldStatus=sheet.isPaintSuspended();sheet.isPaintSuspended(true);drf.sortColumn(colIndex,isAsc);sheet.isPaintSuspended(oldStatus);sheet._trigger(spread.Events.RangeSorted,{sheet:sheet,sheetName:sheetName,col:colIndex,ascending:isAsc})};_GcFilterDialog.prototype._setButtonState=function(){var itemContainer=$("."+itemContainerClass);var inputs=itemContainer.find("input");var checkedLength=0;var okButton=$("#"+okID);inputs.each(function(index){if($(this).prop("checked")){checkedLength++;return false}});var useWijmoTheme=this._useWijmoTheme,wijmoDiabledClassName="ui-button-disabled ui-state-disabled",notWijmoDiabledClassName="filter-button-disable";if(checkedLength>0){okButton.attr("disabled",false).removeClass(useWijmoTheme?wijmoDiabledClassName:notWijmoDiabledClassName)}else
{okButton.attr("disabled",true).addClass(useWijmoTheme?wijmoDiabledClassName:notWijmoDiabledClassName)}};_GcFilterDialog.prototype._initFirstOpenCache=function(){var inputs=$("."+itemInputClass);this._firstOpenCache=[];var self=this;$.each(inputs,function(i,v){if($(v).prop("checked")===true){self._firstOpenCache.push(v.value)}})};_GcFilterDialog.getImageSrc=function(state){if(state===0){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAKTWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQWaIQkgBhhBASQMWFiApWFBURnEhVxILVCkidiOKgKLhnQYqIWotVX"+"DjuH9yntX167+3t+9f7vOec5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28AAgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEIiAKoNAOz0ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4"+"EwK4BgFm2MkcCgL0FAHaOWJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDSv+CpX3CFuEgBAMDLlc2XS9IzFLiV0Bp38vDg4iHiwmyxQmEXKRBmCeQinJebIxNI5wNMzgwAABr50cH+OD+Q5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryMAgQAEE7P79pf5eXWA3DHAbB1v2upWwDaVgBo3/ldM9sJoFoK0Hr5i3k4/"+"EAenqFQyDwdHAoLC+0lYqG9MOOLPv8z4W/gi372/EAe/tt68ABxmkCZrcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHiNLFcLBWK8ViJuFAiTcd5uVKRRCHJleIS6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYAQH7zLYwaC5EAEGc0Mnn3AACTv/mPQCsBAM2XpOMAALzoGFyolBdMxggAAES"+"ggSqwQQcMwRSswA6cwR28wBcCYQZEQAwkwDwQQgbkgBwKoRiWQRlUwDrYBLWwAxqgEZrhELTBMTgN5+ASXIHrcBcGYBiewhi8hgkEQcgIE2EhOogRYo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1cQPqQ28ggMor8irxHMZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2At"+"qKn0UvodXQAfYqOY4DRMQ5mjNlhXIyHRWCJWBomxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQR1hMWEOoJewjtBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQOyZLkTgohJZAySQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDr"+"FiOJMCaIkUqSUEko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8ukLaPV0JppZ2n3aC/pdLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUymBdOXmchUMNcyG5lnmA+Yb1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgtUq1UPq15WfaZGVbNQ46kJ1Bar1"+"akdVbupNq7OUndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXxWELWclYD6yxrmE1iW7L57Ex2Bfsbdi97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57LQMtPy2x1mqtZq1+rTfaetq+2mLtcu0W7eva73VwnUCdLJ31Om0693UJuja6UbqFutt1z+o+02PreekJ9cr1Dund0Uf1bfSj9Rf"+"q79bv0R83MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEctoupHEaKPRSaMnuCbuh2fjNXgXPmasbxxirDTeZdxrPGFiaTLbpMSkxeS+Kc2Ua5pmutG003TMzMgs3KzYrMnsjjnVnGueYb7ZvNv8jYWlRZzFSos2i8eW2pZ8ywWWTZb3rJhWPlZ5VvVW16xJ1lzrLOtt1ldsUBtXmwybOpvLtqitm63Edptt3xTiF"+"I8p0in1U27aMez87ArsmuwG7Tn2YfYl9m32zx3MHBId1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd8zUXpkuQyxKXdpcXU22niqdun3rLleUa7rrStdP1o5u7m9yt2W3U3cw9xX2r+00umxvJXcM970H08PdY4nHM452nm6fC85DnL152Xlle+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgK"+"fep+Hvqa+It89viN+1n6Zfgf8nvs7+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQWNBbsGLww+FUIMCQ1ZH3KTb8AX8hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjgR2yIuB9pGZkX+X0UKSoyqi7qUbRTdHF09yzWrORZ+2e9jvGPqYy5O9tqtnJ2Z6xqbFJsY+ybu"+"IC4qriBeIf4RfGXEnQTJAntieTE2MQ9ieNzAudsmjOc5JpUlnRjruXcorkX5unOy553PFk1WZB8OIWYEpeyP+WDIEJQLxhP5aduTR0T8oSbhU9FvqKNolGxt7hKPJLmnVaV9jjdO31D+miGT0Z1xjMJT1IreZEZkrkj801WRNberM/ZcdktOZSclJyjUg1plrQr1zC3KLdPZisrkw3keeZtyhuTh8r35CP5c/P"+"bFWyFTNGjtFKuUA4WTC+oK3hbGFt4uEi9SFrUM99m/ur5IwuCFny9kLBQuLCz2Lh4WfHgIr9FuxYji1MXdy4xXVK6ZHhp8NJ9y2jLspb9UOJYUlXyannc8o5Sg9KlpUMrglc0lamUycturvRauWMVYZVkVe9ql9VbVn8qF5VfrHCsqK74sEa45uJXTl/VfPV5bdra3kq3yu3rSOuk626s91m/r0q9akHV0IbwD"+"a0b8Y3lG19tSt50oXpq9Y7NtM3KzQM1YTXtW8y2rNvyoTaj9nqdf13LVv2tq7e+2Sba1r/dd3vzDoMdFTve75TsvLUreFdrvUV99W7S7oLdjxpiG7q/5n7duEd3T8Wej3ulewf2Re/ranRvbNyvv7+yCW1SNo0eSDpw5ZuAb9qb7Zp3tXBaKg7CQeXBJ9+mfHvjUOihzsPcw83fmX+39QjrSHkr0jq/dawto22"+"gPaG97+iMo50dXh1Hvrf/fu8x42N1xzWPV56gnSg98fnkgpPjp2Snnp1OPz3Umdx590z8mWtdUV29Z0PPnj8XdO5Mt1/3yfPe549d8Lxw9CL3Ytslt0utPa49R35w/eFIr1tv62X3y+1XPK509E3rO9Hv03/6asDVc9f41y5dn3m978bsG7duJt0cuCW69fh29u0XdwruTNxdeo94r/y+2v3qB/oP6n+0/rFlw"+"G3g+GDAYM/DWQ/vDgmHnv6U/9OH4dJHzEfVI0YjjY+dHx8bDRq98mTOk+GnsqcTz8p+Vv9563Or59/94vtLz1j82PAL+YvPv655qfNy76uprzrHI8cfvM55PfGm/K3O233vuO+638e9H5ko/ED+UPPR+mPHp9BP9z7nfP78L/eE8/sl0p8zAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAA"+"Xb5JfxUYAAAMOSURBVHjaXJNdaJRHFIbfM7PfGremUTfkpxgpiheiBOmFtYUgRXNRqNnd75sEhBoIKhrwQpFUUSsihhIQ41+FNrUGqYhRY43STZqgARNRTIzRaFqz6xJTtals3K8xRQ3x7UV215+LB2bOxTNn3jMDs+mEIgmS+LwQiqSQ9JG03FHX54666pn7TLmJEZVIjCCRGMkYGxvNiI9FvaENZzLw/Pmqt"+"CDFV/4WkERw8TI03K6XqqrNWLBgPoafDmNwMCbd3TestpMDHpJAuIcWSZjSUrnS0SFOWamXJLpuDYAkAiYAkioYDCIej0+Lx12QrervFxOemjWfCvIyIcmTVeLVC1986OkUklhRtlgutLYrkpnOKlt1dl0BSfTHmnCnm5oTm0AS6I0xLaDLrK1PusTp/cb7/rUAyH8kSL+Vqt0ebpuGP699LCRROAdqf/suGfo"+"rCpLi4DMpAOQQLAEgfE2sRDZIv5cknGxi74HDFnZ/32olk9f//vOTPIj05ZnKZpp14QlnfZgpTOXvNGsvjrvuH9MnOwAOYlhQ/UPYmxRkJVvzPHw8JF8EdrKoZEeapSt2cHDo4Sxn7R0hiV8/hEQe3Ad21jZNJQnbDklSBBas0ddvRj2Fi4qZIhaL+Q3ni8N0ZohGe4Dv6sKZfFP0kvkSWLZdGvLpiUTuTS9cV"+"MxI5H5+fz+UfXyOto/Ns5bUL7dyjsBjTsKDbbVnM0iqYNHXYi9ZLiSlaRbFn089zlzvwN1IzkDlmDhfdiin5KgOBY5qO9iojX1K9+VRcOCXnlySsFkOkjj/WGschtR0Kt/Ga9D2aYj5DWKaIeYSxTlFMS2T66udBDbXHS94Z97ZUB8Ayt7+iVVddlkzl5LCvrklvQ9dr1fnF0IQbng5O/VQsmAJSfnxSLuqCG3"+"Rxxpfz3xbXv0IEkzm5YR7lXOCGs6+PVNJYjaQnoKwSgBIDSqkjjPUuv3QLP9ImW+hG1/lKJtzp5jaCmW2nrNAUpOUkqrWrJUb23T5rhZf0eoWhbeEKX7O4eTPHe8DSTjF59T/AwCfnhbaDaIICgAAAABJRU5ErkJggg=="}else if(state===1){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAKTWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQWaIQkgBhhBASQMWFiApWFBURnEhVxILVCkidiOKgKLhnQYqIWotVX"+"DjuH9yntX167+3t+9f7vOec5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28AAgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEIiAKoNAOz0ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4"+"EwK4BgFm2MkcCgL0FAHaOWJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDSv+CpX3CFuEgBAMDLlc2XS9IzFLiV0Bp38vDg4iHiwmyxQmEXKRBmCeQinJebIxNI5wNMzgwAABr50cH+OD+Q5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryMAgQAEE7P79pf5eXWA3DHAbB1v2upWwDaVgBo3/ldM9sJoFoK0Hr5i3k4/"+"EAenqFQyDwdHAoLC+0lYqG9MOOLPv8z4W/gi372/EAe/tt68ABxmkCZrcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHiNLFcLBWK8ViJuFAiTcd5uVKRRCHJleIS6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYAQH7zLYwaC5EAEGc0Mnn3AACTv/mPQCsBAM2XpOMAALzoGFyolBdMxggAAES"+"ggSqwQQcMwRSswA6cwR28wBcCYQZEQAwkwDwQQgbkgBwKoRiWQRlUwDrYBLWwAxqgEZrhELTBMTgN5+ASXIHrcBcGYBiewhi8hgkEQcgIE2EhOogRYo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1cQPqQ28ggMor8irxHMZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2At"+"qKn0UvodXQAfYqOY4DRMQ5mjNlhXIyHRWCJWBomxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQR1hMWEOoJewjtBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQOyZLkTgohJZAySQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDr"+"FiOJMCaIkUqSUEko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8ukLaPV0JppZ2n3aC/pdLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUymBdOXmchUMNcyG5lnmA+Yb1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgtUq1UPq15WfaZGVbNQ46kJ1Bar1"+"akdVbupNq7OUndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXxWELWclYD6yxrmE1iW7L57Ex2Bfsbdi97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57LQMtPy2x1mqtZq1+rTfaetq+2mLtcu0W7eva73VwnUCdLJ31Om0693UJuja6UbqFutt"+"1z+o+02PreekJ9cr1Dund0Uf1bfSj9Rfq79bv0R83MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEctoupHEaKPRSaMnuCbuh2fjNXgXPmasbxxirDTeZdxrPGFiaTLbpMSkxeS+Kc2Ua5pmutG003TMzMgs3KzYrMnsjjnVnGueYb7ZvNv8jYWlRZzFSos2i8eW2pZ8y"+"wWWTZb3rJhWPlZ5VvVW16xJ1lzrLOtt1ldsUBtXmwybOpvLtqitm63Edptt3xTiFI8p0in1U27aMez87ArsmuwG7Tn2YfYl9m32zx3MHBId1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd8zUXpkuQyxKXdpcXU22niqdun3rLleUa7rrStdP1o5u7m9yt2W3"+"U3cw9xX2r+00umxvJXcM970H08PdY4nHM452nm6fC85DnL152Xlle+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgKfep+Hvqa+It89viN+1n6Zfgf8nvs7+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQWNBbsGLww+FUIMCQ1ZH3KTb8AX8"+"hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjgR2yIuB9pGZkX+X0UKSoyqi7qUbRTdHF09yzWrORZ+2e9jvGPqYy5O9tqtnJ2Z6xqbFJsY+ybuIC4qriBeIf4RfGXEnQTJAntieTE2MQ9ieNzAudsmjOc5JpUlnRjruXcorkX5unOy553PFk"+"1WZB8OIWYEpeyP+WDIEJQLxhP5aduTR0T8oSbhU9FvqKNolGxt7hKPJLmnVaV9jjdO31D+miGT0Z1xjMJT1IreZEZkrkj801WRNberM/ZcdktOZSclJyjUg1plrQr1zC3KLdPZisrkw3keeZtyhuTh8r35CP5c/PbFWyFTNGjtFKuUA4WTC+oK3hbGFt4uEi9SFrUM"+"99m/ur5IwuCFny9kLBQuLCz2Lh4WfHgIr9FuxYji1MXdy4xXVK6ZHhp8NJ9y2jLspb9UOJYUlXyannc8o5Sg9KlpUMrglc0lamUycturvRauWMVYZVkVe9ql9VbVn8qF5VfrHCsqK74sEa45uJXTl/VfPV5bdra3kq3yu3rSOuk626s91m/r0q9akHV0IbwDa0b8Y3"+"lG19tSt50oXpq9Y7NtM3KzQM1YTXtW8y2rNvyoTaj9nqdf13LVv2tq7e+2Sba1r/dd3vzDoMdFTve75TsvLUreFdrvUV99W7S7oLdjxpiG7q/5n7duEd3T8Wej3ulewf2Re/ranRvbNyvv7+yCW1SNo0eSDpw5ZuAb9qb7Zp3tXBaKg7CQeXBJ9+mfHvjUOihzsPcw"+"83fmX+39QjrSHkr0jq/dawto22gPaG97+iMo50dXh1Hvrf/fu8x42N1xzWPV56gnSg98fnkgpPjp2Snnp1OPz3Umdx590z8mWtdUV29Z0PPnj8XdO5Mt1/3yfPe549d8Lxw9CL3Ytslt0utPa49R35w/eFIr1tv62X3y+1XPK509E3rO9Hv03/6asDVc9f41y5dn3m"+"978bsG7duJt0cuCW69fh29u0XdwruTNxdeo94r/y+2v3qB/oP6n+0/rFlwG3g+GDAYM/DWQ/vDgmHnv6U/9OH4dJHzEfVI0YjjY+dHx8bDRq98mTOk+GnsqcTz8p+Vv9563Or59/94vtLz1j82PAL+YvPv655qfNy76uprzrHI8cfvM55PfGm/K3O233vuO+638e9H"+"5ko/ED+UPPR+mPHp9BP9z7nfP78L/eE8/sl0p8zAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAALLSURBVHjadJNtaNVlGMav+/kfjy3GTDfcsQW1CMrhWSZ6AsmXmflFDts5/0eYA52i02M6tdBIRQQJBLX8Yg4xYlMEJaHphzx"+"KzoiaZptN0MBtacyXoYIobUgT/fXhtOMS+vBw89wXXPfLdd0CLNxwyACF648YYH7tnuEYAeQbv3CA/EeHBcivazbAUo1fv6hwfYtJEjDy2XP//8vpGbA9ZiE7xQ6USs3S7sUx9YHNbMqYn1IerGmQ3pr8uYXsNUAqnZ+LvqHJAA2BeIoGT6DJbMqBbAwArR77vs4/u"+"hOje9BxlXEcww13pXDvtwaoes1MB6iz8xfxGkIIiLCUIEXaDTxiFJOmKp5YxDcciS6jVpRi8g1H87PVgLYslwO0GYzf+x377ubwXoLKafXEE/WUTfC9tBIhwNTJdAPkw4R1fdkkOmJW1/LAYNBV54iDJK8HH7NPd+/9MTqeWER//62YHxrrJvCDydd99Z/tpjLboz7"+"znQF2/vSfufwY9Ne1e9r9JtHKaUvxqWY3UgXX23dNbccOlhQUFxUN9GweVsaWIQNZRfkeByidrnDxRD19N29U5AnChkMO0BMYAwRA4GkPAKuZc/2F8JWTDlB716sCIm9PXcz1K9+/lCc4erstABQmP3U8LBvlV2VJr8yyIHMSv+LUk1QmCzADBjQnrB0dT9TT0/243"+"NfqXx8szwaAzq6Q1bDJnWnrmlKV3EZVchvvJbfQ2nqmDLDqD0/YXFqs8t0l/Haxu3j+vOPDO9ifu4P9jwPAeSk6RE/RpHc+4KefL8waYWEDrOPX9ol/cycA1KH7pvCTsxFAPxZGXQ1YmDhlgNIHsoWQd5wONw4JxgfhwmeKXSUjXbq0Oi/j80el28UjqpdqK1ivcCB"+"7KJwXTuHKcwWAPtPCoJkShy7kjKU3dIXLAvQyVdq1C3WVXNbE2RgUOphuqVXH3T8DAFTcPgRQEEuLAAAAAElFTkSuQmCC"}else if(state===2){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAKTWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQWaIQkgBhhBASQMWFiApWF"+"BURnEhVxILVCkidiOKgKLhnQYqIWotVXDjuH9yntX167+3t+9f7vOec5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28AAgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEI"+"iAKoNAOz0ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4EwK4BgFm2MkcCgL0FAHaOWJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDSv+CpX3CFuEgBAMDLlc2XS9IzFLiV0Bp38vDg4iHiwmyxQmEXKRBmCeQinJebIxNI5wNMzgwAABr50"+"cH+OD+Q5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryMAgQAEE7P79pf5eXWA3DHAbB1v2upWwDaVgBo3/ldM9sJoFoK0Hr5i3k4/EAenqFQyDwdHAoLC+0lYqG9MOOLPv8z4W/gi372/EAe/tt68ABxmkCZrcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHiNLFcLBW"+"K8ViJuFAiTcd5uVKRRCHJleIS6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYAQH7zLYwaC5EAEGc0Mnn3AACTv/mPQCsBAM2XpOMAALzoGFyolBdMxggAAESggSqwQQcMwRSswA6cwR28wBcCYQZEQAwkwDwQQgbkgBwKoRiWQRlUwDrYBLWwAxqgEZrhE"+"LTBMTgN5+ASXIHrcBcGYBiewhi8hgkEQcgIE2EhOogRYo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1cQPqQ28ggMor8irxHMZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2AtqKn0UvodXQAfYqOY4DRMQ5mjNlhXIyHRWCJWBo"+"mxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQR1hMWEOoJewjtBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQOyZLkTgohJZAySQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDrFiOJMC"+"aIkUqSUEko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8ukLaPV0JppZ2n3aC/pdLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUymBdOXmchUMNcyG5lnmA+Yb1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgt"+"Uq1UPq15WfaZGVbNQ46kJ1Bar1akdVbupNq7OUndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXxWELWclYD6yxrmE1iW7L57Ex2Bfsbdi97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57LQMtPy2x1mqtZq1+rTfaetq+2mLtcu0W7eva73Vwn"+"UCdLJ31Om0693UJuja6UbqFutt1z+o+02PreekJ9cr1Dund0Uf1bfSj9Rfq79bv0R83MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEctoupHEaKPRSaMnuCbuh2fjNXgXPmasbxxirDTeZdxrPGFiaTLbpMSkxeS+Kc2Ua5pmutG003TMzMgs3KzYrMnsjjnVnGueYb7"+"ZvNv8jYWlRZzFSos2i8eW2pZ8ywWWTZb3rJhWPlZ5VvVW16xJ1lzrLOtt1ldsUBtXmwybOpvLtqitm63Edptt3xTiFI8p0in1U27aMez87ArsmuwG7Tn2YfYl9m32zx3MHBId1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd8zUXpkuQyxKXdpcXU22niqdun"+"3rLleUa7rrStdP1o5u7m9yt2W3U3cw9xX2r+00umxvJXcM970H08PdY4nHM452nm6fC85DnL152Xlle+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgKfep+Hvqa+It89viN+1n6Zfgf8nvs7+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQW"+"NBbsGLww+FUIMCQ1ZH3KTb8AX8hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjgR2yIuB9pGZkX+X0UKSoyqi7qUbRTdHF09yzWrORZ+2e9jvGPqYy5O9tqtnJ2Z6xqbFJsY+ybuIC4qriBeIf4RfGXEnQTJAntieTE2MQ9ieNzAudsmjOc5"+"JpUlnRjruXcorkX5unOy553PFk1WZB8OIWYEpeyP+WDIEJQLxhP5aduTR0T8oSbhU9FvqKNolGxt7hKPJLmnVaV9jjdO31D+miGT0Z1xjMJT1IreZEZkrkj801WRNberM/ZcdktOZSclJyjUg1plrQr1zC3KLdPZisrkw3keeZtyhuTh8r35CP5c/PbFWyFTNGjtFK"+"uUA4WTC+oK3hbGFt4uEi9SFrUM99m/ur5IwuCFny9kLBQuLCz2Lh4WfHgIr9FuxYji1MXdy4xXVK6ZHhp8NJ9y2jLspb9UOJYUlXyannc8o5Sg9KlpUMrglc0lamUycturvRauWMVYZVkVe9ql9VbVn8qF5VfrHCsqK74sEa45uJXTl/VfPV5bdra3kq3yu3rSOuk6"+"26s91m/r0q9akHV0IbwDa0b8Y3lG19tSt50oXpq9Y7NtM3KzQM1YTXtW8y2rNvyoTaj9nqdf13LVv2tq7e+2Sba1r/dd3vzDoMdFTve75TsvLUreFdrvUV99W7S7oLdjxpiG7q/5n7duEd3T8Wej3ulewf2Re/ranRvbNyvv7+yCW1SNo0eSDpw5ZuAb9qb7Zp3tXB"+"aKg7CQeXBJ9+mfHvjUOihzsPcw83fmX+39QjrSHkr0jq/dawto22gPaG97+iMo50dXh1Hvrf/fu8x42N1xzWPV56gnSg98fnkgpPjp2Snnp1OPz3Umdx590z8mWtdUV29Z0PPnj8XdO5Mt1/3yfPe549d8Lxw9CL3Ytslt0utPa49R35w/eFIr1tv62X3y+1XPK509"+"E3rO9Hv03/6asDVc9f41y5dn3m978bsG7duJt0cuCW69fh29u0XdwruTNxdeo94r/y+2v3qB/oP6n+0/rFlwG3g+GDAYM/DWQ/vDgmHnv6U/9OH4dJHzEfVI0YjjY+dHx8bDRq98mTOk+GnsqcTz8p+Vv9563Or59/94vtLz1j82PAL+YvPv655qfNy76uprzrHI8c"+"fvM55PfGm/K3O233vuO+638e9H5ko/ED+UPPR+mPHp9BP9z7nfP78L/eE8/sl0p8zAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJKSURBVHjanJJfSJNhFMaf9/02R9MFCVZLUOgfpLMCmwrd7KIIm6X4fXoTY1oXltaN86oEi"+"4xodtNNeNMHJZQ0gpDQmUKEyUAiyKCFW4PNtSFMoyKJSp4uputbJIUX5+K855zfe85zDkhiza4u2+HXn4M64dcBvw5BTotLtyDJ49KvI2fapK/Q/8qkwAjYiEHj4rrBG+ft4p+AB51f8pKazxxDY/djhLYj95bJLKG5fR+w5whUVxNUtR6qOiHUrmABNH3AkgcoqsB"+"M11O56gvVUy2GV6CQNA/WjFdkMpnyhYV0NjZOAf6ksQMZCGQL3e526fUWm0kKrlAJRT7CUXeac+Gp3bRTaJpHXsReoLl3yGQAKPUtlaJh8yHxKI0s+C3xLHHXwjIqlbXtTKc/lKTScaRSFItMAWReB4WtdfdMJCVJTI18xihLNzFCyWXC4WxjMpksjiOK5BytjXIGU"+"H0XCowjkFsESeF27BQLSy9F/2FK0ip6wa2VtV7OxxNF8XgciUQCKpMCZFoaRdQ6PXIHshvQDtACUJDARA/tVTVe6rHrSs97mMPh16j3vQECvpKc4iSLWzrGqXWMrahnx6h1jP5oPRf8Ho1FLA5nG/c7vayq8TIajdoikRi0nqCEdn9gDaCQLNVOXZOuk310nbhCV0M"+"vhx+OWlbhykGnh+Hou20sy2rUdLtbAJxUfs9PwW9PQM4qjuqjfDEd6ssX+VP56kdZ/+s80H9nZJcBYDxT6x8b+vspDw4Fbf+TuC7gpn7ZtoFCSdJE0vxrAN8Jcr/DWZzEAAAAAElFTkSuQmCC"}else if(state===3){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAKTWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQWaIQkgBhhBASQMWFiApWF"+"BURnEhVxILVCkidiOKgKLhnQYqIWotVXDjuH9yntX167+3t+9f7vOec5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28AAgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEI"+"iAKoNAOz0ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4EwK4BgFm2MkcCgL0FAHaOWJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDSv+CpX3CFuEgBAMDLlc2XS9IzFLiV0Bp38vDg4iHiwmyxQmEXKRBmCeQinJebIxNI5wNMzgwAABr50"+"cH+OD+Q5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryMAgQAEE7P79pf5eXWA3DHAbB1v2upWwDaVgBo3/ldM9sJoFoK0Hr5i3k4/EAenqFQyDwdHAoLC+0lYqG9MOOLPv8z4W/gi372/EAe/tt68ABxmkCZrcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHiNLFcLBW"+"K8ViJuFAiTcd5uVKRRCHJleIS6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYAQH7zLYwaC5EAEGc0Mnn3AACTv/mPQCsBAM2XpOMAALzoGFyolBdMxggAAESggSqwQQcMwRSswA6cwR28wBcCYQZEQAwkwDwQQgbkgBwKoRiWQRlUwDrYBLWwAxqgEZrhE"+"LTBMTgN5+ASXIHrcBcGYBiewhi8hgkEQcgIE2EhOogRYo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1cQPqQ28ggMor8irxHMZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2AtqKn0UvodXQAfYqOY4DRMQ5mjNlhXIyHRWCJWBo"+"mxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQR1hMWEOoJewjtBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQOyZLkTgohJZAySQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDrFiOJMC"+"aIkUqSUEko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8ukLaPV0JppZ2n3aC/pdLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUymBdOXmchUMNcyG5lnmA+Yb1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgt"+"Uq1UPq15WfaZGVbNQ46kJ1Bar1akdVbupNq7OUndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXxWELWclYD6yxrmE1iW7L57Ex2Bfsbdi97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57LQMtPy2x1mqtZq1+rTfaetq+2mLtcu0W7eva73Vwn"+"UCdLJ31Om0693UJuja6UbqFutt1z+o+02PreekJ9cr1Dund0Uf1bfSj9Rfq79bv0R83MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEctoupHEaKPRSaMnuCbuh2fjNXgXPmasbxxirDTeZdxrPGFiaTLbpMSkxeS+Kc2Ua5pmutG003TMzMgs3KzYrMnsjjnVnGueYb7"+"ZvNv8jYWlRZzFSos2i8eW2pZ8ywWWTZb3rJhWPlZ5VvVW16xJ1lzrLOtt1ldsUBtXmwybOpvLtqitm63Edptt3xTiFI8p0in1U27aMez87ArsmuwG7Tn2YfYl9m32zx3MHBId1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd8zUXpkuQyxKXdpcXU22niqdun"+"3rLleUa7rrStdP1o5u7m9yt2W3U3cw9xX2r+00umxvJXcM970H08PdY4nHM452nm6fC85DnL152Xlle+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgKfep+Hvqa+It89viN+1n6Zfgf8nvs7+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQW"+"NBbsGLww+FUIMCQ1ZH3KTb8AX8hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjgR2yIuB9pGZkX+X0UKSoyqi7qUbRTdHF09yzWrORZ+2e9jvGPqYy5O9tqtnJ2Z6xqbFJsY+ybuIC4qriBeIf4RfGXEnQTJAntieTE2MQ9ieNzAudsmjOc5"+"JpUlnRjruXcorkX5unOy553PFk1WZB8OIWYEpeyP+WDIEJQLxhP5aduTR0T8oSbhU9FvqKNolGxt7hKPJLmnVaV9jjdO31D+miGT0Z1xjMJT1IreZEZkrkj801WRNberM/ZcdktOZSclJyjUg1plrQr1zC3KLdPZisrkw3keeZtyhuTh8r35CP5c/PbFWyFTNGjtFK"+"uUA4WTC+oK3hbGFt4uEi9SFrUM99m/ur5IwuCFny9kLBQuLCz2Lh4WfHgIr9FuxYji1MXdy4xXVK6ZHhp8NJ9y2jLspb9UOJYUlXyannc8o5Sg9KlpUMrglc0lamUycturvRauWMVYZVkVe9ql9VbVn8qF5VfrHCsqK74sEa45uJXTl/VfPV5bdra3kq3yu3rSOuk6"+"26s91m/r0q9akHV0IbwDa0b8Y3lG19tSt50oXpq9Y7NtM3KzQM1YTXtW8y2rNvyoTaj9nqdf13LVv2tq7e+2Sba1r/dd3vzDoMdFTve75TsvLUreFdrvUV99W7S7oLdjxpiG7q/5n7duEd3T8Wej3ulewf2Re/ranRvbNyvv7+yCW1SNo0eSDpw5ZuAb9qb7Zp3tXB"+"aKg7CQeXBJ9+mfHvjUOihzsPcw83fmX+39QjrSHkr0jq/dawto22gPaG97+iMo50dXh1Hvrf/fu8x42N1xzWPV56gnSg98fnkgpPjp2Snnp1OPz3Umdx590z8mWtdUV29Z0PPnj8XdO5Mt1/3yfPe549d8Lxw9CL3Ytslt0utPa49R35w/eFIr1tv62X3y+1XPK509"+"E3rO9Hv03/6asDVc9f41y5dn3m978bsG7duJt0cuCW69fh29u0XdwruTNxdeo94r/y+2v3qB/oP6n+0/rFlwG3g+GDAYM/DWQ/vDgmHnv6U/9OH4dJHzEfVI0YjjY+dHx8bDRq98mTOk+GnsqcTz8p+Vv9563Or59/94vtLz1j82PAL+YvPv655qfNy76uprzrHI8c"+"fvM55PfGm/K3O233vuO+638e9H5ko/ED+UPPR+mPHp9BP9z7nfP78L/eE8/sl0p8zAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAMuSURBVHjaZJN/aNR1GMefz+f7/d6P3aZGDGVKERLDbXdMJAQhlr+ujWo62g5DpUBiEyJjp"+"xi0ZRtyDSQvV0cDd2uw213b1EHiFjbGZq5bIbc5dTuyybRyK+ZCDrG0evWHdwfWHx8+PDwPz/vzeb2fR451DGvpQB2ODJvnP24zDkewD7Zct6h9qD1j4TzPWNgsip80isbCxuS7vzinGm5aZwcwbwVPGoAhgAIEsAAN2NKxSscmYKRvE1iRPrY3Vt7Ski4WQKaJOmb"+"jyF3WS//3jfr4hVXGEA55J5aXc+ZMdF0yOZWbFtCAKtx5zCUQLQBk32svPFJ8eHN16u+fCn6fv+MErKWlRWdvPzr9QpUVnIroxravlYz0tTvWdi9XRFGA6ugKOMPh7qHu7u5Ue3s7ra2tBIMnaG4+Sl1dHTU1NZSXl7P42x39zRxKYl82mYD8Q0wA8bjFmv855Xqzd"+"u/swsICDx78xfz8r0xMXKa+/iBer5fx8W+PDi22PjH43pKSoi2bzIS+reVlUYCVn18q11hl9vb2GIFAgFQqxczMDKFQCK/Xy8WLF4ozkN2e00o8O07YA1KpxCUCyKYSUX1fxDQgc3NzRjAY/DMej+Pz+ejpiTkzAAEpqfpEJHeP2PZJXO32VBsbKryydY3IPZB1a3I"+"VIH6/n1AoREVFBWmQjzknK7aLHm4bWXs5cel48uq0ziQGolE9e/uG8vsPceDttygrK8s2cBfkZ9zQ8syGbeaVyQmp3v8VNXWDvFo3SPX+8/hqzxEPjqiD9X5eqqoiN8fFjzeu5wHidh9xZTjIgZr1BqAaWi6Zm3e8z/OVDZS90kBv74AdUH7/IbZu3oJps0h8N7N62"+"IXpLt2VnVbZWfKc+jTx+aM/3bti85RuZ3RsvBjQxFgWO9VnTSebzB+SMyvhtMMTFsv9+l4r26Czq0sxcV9F+3eprnOJwumr14ozpMMfnLV/duQjPdeDmiTiaGrutLs3Nhjujc86sxD/uHs/DxCPjFrbXly0N7ZEbR9GcPb0jz4NS/q/1P/nwlOFlYpOrZ4UkeUiOt8"+"nRk6xyGNzT3YXTGBZeqEcgP53ACxeTBjELwuFAAAAAElFTkSuQmCC"}else if(state===4){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAKTWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQWaIQkgBhhBASQMWFiApWF"+"BURnEhVxILVCkidiOKgKLhnQYqIWotVXDjuH9yntX167+3t+9f7vOec5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28AAgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEI"+"iAKoNAOz0ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4EwK4BgFm2MkcCgL0FAHaOWJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDSv+CpX3CFuEgBAMDLlc2XS9IzFLiV0Bp38vDg4iHiwmyxQmEXKRBmCeQinJebIxNI5wNMzgwAABr50"+"cH+OD+Q5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryMAgQAEE7P79pf5eXWA3DHAbB1v2upWwDaVgBo3/ldM9sJoFoK0Hr5i3k4/EAenqFQyDwdHAoLC+0lYqG9MOOLPv8z4W/gi372/EAe/tt68ABxmkCZrcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHiNLFcLBW"+"K8ViJuFAiTcd5uVKRRCHJleIS6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYAQH7zLYwaC5EAEGc0Mnn3AACTv/mPQCsBAM2XpOMAALzoGFyolBdMxggAAESggSqwQQcMwRSswA6cwR28wBcCYQZEQAwkwDwQQgbkgBwKoRiWQRlUwDrYBLWwAxqgEZrhE"+"LTBMTgN5+ASXIHrcBcGYBiewhi8hgkEQcgIE2EhOogRYo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1cQPqQ28ggMor8irxHMZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2AtqKn0UvodXQAfYqOY4DRMQ5mjNlhXIyHRWCJWBo"+"mxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQR1hMWEOoJewjtBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQOyZLkTgohJZAySQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDrFiOJMC"+"aIkUqSUEko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8ukLaPV0JppZ2n3aC/pdLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUymBdOXmchUMNcyG5lnmA+Yb1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgt"+"Uq1UPq15WfaZGVbNQ46kJ1Bar1akdVbupNq7OUndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXxWELWclYD6yxrmE1iW7L57Ex2Bfsbdi97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57LQMtPy2x1mqtZq1+rTfaetq+2mLtcu0W7eva73Vwn"+"UCdLJ31Om0693UJuja6UbqFutt1z+o+02PreekJ9cr1Dund0Uf1bfSj9Rfq79bv0R83MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEctoupHEaKPRSaMnuCbuh2fjNXgXPmasbxxirDTeZdxrPGFiaTLbpMSkxeS+Kc2Ua5pmutG003TMzMgs3KzYrMnsjjnVnGueYb7"+"ZvNv8jYWlRZzFSos2i8eW2pZ8ywWWTZb3rJhWPlZ5VvVW16xJ1lzrLOtt1ldsUBtXmwybOpvLtqitm63Edptt3xTiFI8p0in1U27aMez87ArsmuwG7Tn2YfYl9m32zx3MHBId1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd8zUXpkuQyxKXdpcXU22niqdun"+"3rLleUa7rrStdP1o5u7m9yt2W3U3cw9xX2r+00umxvJXcM970H08PdY4nHM452nm6fC85DnL152Xlle+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgKfep+Hvqa+It89viN+1n6Zfgf8nvs7+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQW"+"NBbsGLww+FUIMCQ1ZH3KTb8AX8hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjgR2yIuB9pGZkX+X0UKSoyqi7qUbRTdHF09yzWrORZ+2e9jvGPqYy5O9tqtnJ2Z6xqbFJsY+ybuIC4qriBeIf4RfGXEnQTJAntieTE2MQ9ieNzAudsmjOc5"+"JpUlnRjruXcorkX5unOy553PFk1WZB8OIWYEpeyP+WDIEJQLxhP5aduTR0T8oSbhU9FvqKNolGxt7hKPJLmnVaV9jjdO31D+miGT0Z1xjMJT1IreZEZkrkj801WRNberM/ZcdktOZSclJyjUg1plrQr1zC3KLdPZisrkw3keeZtyhuTh8r35CP5c/PbFWyFTNGjtFK"+"uUA4WTC+oK3hbGFt4uEi9SFrUM99m/ur5IwuCFny9kLBQuLCz2Lh4WfHgIr9FuxYji1MXdy4xXVK6ZHhp8NJ9y2jLspb9UOJYUlXyannc8o5Sg9KlpUMrglc0lamUycturvRauWMVYZVkVe9ql9VbVn8qF5VfrHCsqK74sEa45uJXTl/VfPV5bdra3kq3yu3rSOuk6"+"26s91m/r0q9akHV0IbwDa0b8Y3lG19tSt50oXpq9Y7NtM3KzQM1YTXtW8y2rNvyoTaj9nqdf13LVv2tq7e+2Sba1r/dd3vzDoMdFTve75TsvLUreFdrvUV99W7S7oLdjxpiG7q/5n7duEd3T8Wej3ulewf2Re/ranRvbNyvv7+yCW1SNo0eSDpw5ZuAb9qb7Zp3tXB"+"aKg7CQeXBJ9+mfHvjUOihzsPcw83fmX+39QjrSHkr0jq/dawto22gPaG97+iMo50dXh1Hvrf/fu8x42N1xzWPV56gnSg98fnkgpPjp2Snnp1OPz3Umdx590z8mWtdUV29Z0PPnj8XdO5Mt1/3yfPe549d8Lxw9CL3Ytslt0utPa49R35w/eFIr1tv62X3y+1XPK509"+"E3rO9Hv03/6asDVc9f41y5dn3m978bsG7duJt0cuCW69fh29u0XdwruTNxdeo94r/y+2v3qB/oP6n+0/rFlwG3g+GDAYM/DWQ/vDgmHnv6U/9OH4dJHzEfVI0YjjY+dHx8bDRq98mTOk+GnsqcTz8p+Vv9563Or59/94vtLz1j82PAL+YvPv655qfNy76uprzrHI8c"+"fvM55PfGm/K3O233vuO+638e9H5ko/ED+UPPR+mPHp9BP9z7nfP78L/eE8/sl0p8zAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAMNSURBVHjalJNfaFt1FMfP796bm9hublCwa93AVd3W5d67ddisFFw1lovUl7r0jx2rWWW6p"+"rpCkzfrUwjVFx0LwSrYPtiO0YJPDsuwIOJKq1PL0q43iZ3OuUp04p8owmbl40PXMgaCPnzhcPjCOef7PV8BxD6WETrKjXcviUbjTlW870/ta9mqfiqv1kuRQePjk68pkj4FSfX66HRA8ujfDPapvveWN4n1xKAC5H9CB3SRo767m9uhvRxQUGXAEXOt3uCodViWpT4"+"Yi+tC1Rrhj99/luV8QQ43unrkxWaNVSqvXSNgHSeQSqU2A4Zt2xUdHR3bp6amwp8uTNU91jRgij2PAWg1da+sTwmeGTv768TExN8jIyOk0xlOnTpNMpkiFovR3t6O67rcuPHDJkCtr6U7zVH/gffPKrwravLzC75EIkGxWOTWrVWKxR+Zn79EPB7HdV3m5uYaAK12/"+"xfmxm0P1uwW62D36p77nzdXVr4Txwn5h4aGVkqlEp6XJ5PJ4LouMzMzDYAGiPXkGwGJLGIAyqmPYod6sEM9vziRF0xALMvS0+n0zdnZWTo7O5mcnNwHaNevi27bqN0v+w1pWyj5AOUEjygn1I3VeLzaund/xfj4uAASi8WWM5kMLS0tAAYgV69+K5cvvyq/zZ7TpG1"+"hzZaqbZbsDR3DPnSi2n6ka0uhUJB8Pt+QSCTo7++nqamJ204YXV1PG5aF2nFxUgn7PlGAWIefVXYoihVufcBWorLZrOTz+YMDAwN/tba2UlZWRi6Xq7itmQbb9JnU25qMvvmRAKrmoafEqY/edOqf2bljV/iebDYrgPT29q6Ew2FM06RQKFQMDw+L4ziabaP3nXwpI"+"By9oACVnBblHOh52N4Vqaxr7jYAFQwGty4uLm72PE/3PK8yt+QZuawnjgSN0TOiDj36nCmP9364pjiY1hJ67RX8F5dMBUjtW7Xav+Xh3PRnIiK6CF/qd/66886YHvW3Sfh8lQHfy11Z2MCegBgioknbCZQTPr1l71di/IcUqjsgLfHzvn8GACNDKumTxWELAAAAAEl"+"FTkSuQmCC"}else if(state===5){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAKTWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQWaIQkgBhhBASQMWFiApWF"+"BURnEhVxILVCkidiOKgKLhnQYqIWotVXDjuH9yntX167+3t+9f7vOec5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28AAgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEI"+"iAKoNAOz0ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4EwK4BgFm2MkcCgL0FAHaOWJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDSv+CpX3CFuEgBAMDLlc2XS9IzFLiV0Bp38vDg4iHiwmyxQmEXKRBmCeQinJebIxNI5wNMzgwAABr50"+"cH+OD+Q5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryMAgQAEE7P79pf5eXWA3DHAbB1v2upWwDaVgBo3/ldM9sJoFoK0Hr5i3k4/EAenqFQyDwdHAoLC+0lYqG9MOOLPv8z4W/gi372/EAe/tt68ABxmkCZrcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHiNLFcLBW"+"K8ViJuFAiTcd5uVKRRCHJleIS6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYAQH7zLYwaC5EAEGc0Mnn3AACTv/mPQCsBAM2XpOMAALzoGFyolBdMxggAAESggSqwQQcMwRSswA6cwR28wBcCYQZEQAwkwDwQQgbkgBwKoRiWQRlUwDrYBLWwAxqgEZrhE"+"LTBMTgN5+ASXIHrcBcGYBiewhi8hgkEQcgIE2EhOogRYo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1cQPqQ28ggMor8irxHMZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2AtqKn0UvodXQAfYqOY4DRMQ5mjNlhXIyHRWCJWBo"+"mxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQR1hMWEOoJewjtBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQOyZLkTgohJZAySQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDrFiOJMC"+"aIkUqSUEko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8ukLaPV0JppZ2n3aC/pdLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUymBdOXmchUMNcyG5lnmA+Yb1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgt"+"Uq1UPq15WfaZGVbNQ46kJ1Bar1akdVbupNq7OUndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXxWELWclYD6yxrmE1iW7L57Ex2Bfsbdi97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57LQMtPy2x1mqtZq1+rTfaetq+2mLtcu0W7eva73Vwn"+"UCdLJ31Om0693UJuja6UbqFutt1z+o+02PreekJ9cr1Dund0Uf1bfSj9Rfq79bv0R83MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEctoupHEaKPRSaMnuCbuh2fjNXgXPmasbxxirDTeZdxrPGFiaTLbpMSkxeS+Kc2Ua5pmutG003TMzMgs3KzYrMnsjjnVnGueYb7"+"ZvNv8jYWlRZzFSos2i8eW2pZ8ywWWTZb3rJhWPlZ5VvVW16xJ1lzrLOtt1ldsUBtXmwybOpvLtqitm63Edptt3xTiFI8p0in1U27aMez87ArsmuwG7Tn2YfYl9m32zx3MHBId1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd8zUXpkuQyxKXdpcXU22niqdun"+"3rLleUa7rrStdP1o5u7m9yt2W3U3cw9xX2r+00umxvJXcM970H08PdY4nHM452nm6fC85DnL152Xlle+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgKfep+Hvqa+It89viN+1n6Zfgf8nvs7+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQW"+"NBbsGLww+FUIMCQ1ZH3KTb8AX8hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjgR2yIuB9pGZkX+X0UKSoyqi7qUbRTdHF09yzWrORZ+2e9jvGPqYy5O9tqtnJ2Z6xqbFJsY+ybuIC4qriBeIf4RfGXEnQTJAntieTE2MQ9ieNzAudsmjOc5"+"JpUlnRjruXcorkX5unOy553PFk1WZB8OIWYEpeyP+WDIEJQLxhP5aduTR0T8oSbhU9FvqKNolGxt7hKPJLmnVaV9jjdO31D+miGT0Z1xjMJT1IreZEZkrkj801WRNberM/ZcdktOZSclJyjUg1plrQr1zC3KLdPZisrkw3keeZtyhuTh8r35CP5c/PbFWyFTNGjtFK"+"uUA4WTC+oK3hbGFt4uEi9SFrUM99m/ur5IwuCFny9kLBQuLCz2Lh4WfHgIr9FuxYji1MXdy4xXVK6ZHhp8NJ9y2jLspb9UOJYUlXyannc8o5Sg9KlpUMrglc0lamUycturvRauWMVYZVkVe9ql9VbVn8qF5VfrHCsqK74sEa45uJXTl/VfPV5bdra3kq3yu3rSOuk6"+"26s91m/r0q9akHV0IbwDa0b8Y3lG19tSt50oXpq9Y7NtM3KzQM1YTXtW8y2rNvyoTaj9nqdf13LVv2tq7e+2Sba1r/dd3vzDoMdFTve75TsvLUreFdrvUV99W7S7oLdjxpiG7q/5n7duEd3T8Wej3ulewf2Re/ranRvbNyvv7+yCW1SNo0eSDpw5ZuAb9qb7Zp3tXB"+"aKg7CQeXBJ9+mfHvjUOihzsPcw83fmX+39QjrSHkr0jq/dawto22gPaG97+iMo50dXh1Hvrf/fu8x42N1xzWPV56gnSg98fnkgpPjp2Snnp1OPz3Umdx590z8mWtdUV29Z0PPnj8XdO5Mt1/3yfPe549d8Lxw9CL3Ytslt0utPa49R35w/eFIr1tv62X3y+1XPK509"+"E3rO9Hv03/6asDVc9f41y5dn3m978bsG7duJt0cuCW69fh29u0XdwruTNxdeo94r/y+2v3qB/oP6n+0/rFlwG3g+GDAYM/DWQ/vDgmHnv6U/9OH4dJHzEfVI0YjjY+dHx8bDRq98mTOk+GnsqcTz8p+Vv9563Or59/94vtLz1j82PAL+YvPv655qfNy76uprzrHI8c"+"fvM55PfGm/K3O233vuO+638e9H5ko/ED+UPPR+mPHp9BP9z7nfP78L/eE8/sl0p8zAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAANBSURBVHjaXJNfSGR1HMXP73fvdcYdo7Vy1KRlZ9DdnOvv5uTODK0s1mxDyKIYSRYoUwQik"+"kgzPUS0RuW6QRCEuIiM/XuxNdiH6m17WnZFCMSHtjuOszONf0ZnGgW1iLbw9DBl0sPhy3k5HDjfD0h6w/VvSJJC8a5sOPeUYQ1TIjAuPOc+kN6Kae2JthodGBCVrSEdpmXAd8pJUrb2julgiWgJ9MMXABIXYADApQA0ACLc8Jjg9bAkKbhbD5LimDTgNQn15sc6SZD"+"1onyPZIAUSyQOSS124oLzDxL7hwRJjaTIFbYcUJ5xB0lYp29oZ8+OypZnPhfvkXiHdGz8nHHs7++6e+vede6UiiiVio69vR2v1+2S5slqQRJ4XvdXkBS7O+uuUv43bO79UvPZp4nfr8/N/Tk7O8urVz9cu3x5zH6x76Xvuru7f+zq6joIhUKFYrHYSBJA4yVBUm5sb"+"WPm15nqH1bvOpRScnBwcL1QKPD+/b+4vV3k0tIy4/E4I5EIFxcXu0nKckDwWUlSV6peqGCUW/mvJUmoNr82MTHBg4MD2rbNqakpRiIR3r59a5ykzOc3QBJob5txkZSbuQ00h/q5ub7htZSJ9NYmlDLF5OQkFxYW2NfXx/n5+YskhWk2G0p9IV5BXgDBAZ1k5Z07tx6"+"wAlHmcjlHjrUim13D8vIaYrEYr12bZmdnJ0k6ygvVHi0GOD2SpHGPhApGmclkKjKZ15HJpHHzJrV4PM6RkRF2dHQwm83WeTweMTw8cCwA1YKkUwWjVMEofaFXeS99w1CksKwWIxaLsaenh1VVVUyn0yf8fmBoKCpIoqeBAr3n50DywdXVlWorEGUqufp0imnpM8eEa"+"ZpaPB5nOBymrutMpVKuM2dGdQvjGh+icfFxCCA0YJB0tKC9Mpn8qTKZhLSS0BOJUWmaprBtu8K2bW1lZeVR27alUq3SwpDBh2t1fAUN/eepkYfCOvW26/grWxNB6XukvYJJwgKE+c1zUs270TQdkmq4WeKtTwS+hETiCgUJafrb/89CWTU9/8JT9k2UnP7HN1Ag+OQ"+"V8Ps6Yb78vigj/a08ahGCaGzql/zIrbmhy/9IzAmSztMvzJz8ewAvdf7cUVI5hQAAAABJRU5ErkJggg=="}else if(state===6){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAABy0lEQVR42pyST2gTQ"+"RTGv9nEpCnqTasHES8VLCioiFDIYYum+I/ebFXQm1BbsdSDhKgoXhS8tLQSqAhexIInETwJIqJiexJEZXupwRJNbRsy2Z3dzHxesjGEChs/eMx7A+837817giQAYCD3cZuScqG8Wtj19tG5n/iHhBAkKcLYCh3fdSd04HXCq5xHG2oAdOAdNIG3qAJ5tW1A/9hrm8Z"+"sV+7vDLTe2nsmP9AWwATuXe27330lLwvLkloHY5EBR0dexkB0xxKp9Ieno8MbOjYP1ZRMHz77YE8kAMk35V/fkpWSc6L3dL7Tl6uPAaAm155EAYhwjFHVOsY4AEwPXXkG7W+0EqmCodlRW17oCkrO5Pjc55lon7i2mBqenc7ETTmLFWdvaenLpijJDUBcywsAYFRwu"+"/jja1dMWNfWKf2WEOJ43T8ihLgHACAJkpgZvNQ3kTnJG/u6Z8O7ZgNwAACbzCb5dxNVLPnQW3aKyY7EKABM2XZPcwUk5wG8qIfvSL5qtJAfHLnvF+Z2GsPr2fefipPH0luq5aXsOi3frJ+5xhSm+k/1VErOxRWlqgkrfujO/t191ZqxLeB5azbJeSFELnz9v/agVX8"+"GAIjG5r9I9yjkAAAAAElFTkSuQmCC"}else if(state===7){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsSAAALEgHS3X78AAAAGXRFWHRTb2Z0d2FyZ"+"QBQYWludC5ORVQgVjMuNS41Tib51gAAAXlJREFUOE9jYACCqRH5a6eGZu6cHl00d2pUwa6J7r4Xe4w1U0ByWMB/DLHJnoHbQIKzI1PEp3r6vKjVU72HQzNIGNOA6W5uYiCZmUHxM+v0Vf836KuHkWQASPGciGznSe6+/+v01Vbh0YzdBeBwiC560GWi+aLVXEccxJ/"+"i6KhNdBjMCM/u7be3+99hpJEK0jTJ01a0y1hjKVEGTHH31e4w1vxSrqP0tVZPbXazodqKSl2VV9W6KnOJMoCAf4mLRpAq/+pTEh4F+79aJSwGxwjJseBZdHCVa/b2/1YR00vJMsAtd+c957T1D42De17iMKARKO4NTUiuQLoLrs694IAT0PbvNrFzNYwDOv9bRc4Iw"+"GKIMVQzKCWCsBNcDVDzaafUdbfMwiZNMwnq/mIeNvkgDldsgWo+hqyZ2TVr+0egIRIgQcuomb7G/h3/zaOmaeFxBcJ2l6xtx8xDJ/6wDJ+cYhU2g8vYv/M9yABj//aLOFxRTUbU49YCALt6h216b0oVAAAAAElFTkSuQmCC"}else if(state===8){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjExR/NCNwAAAKBJREFUOE+l0cENwjAMBdCM0BEYhZG6AjdvwQhMUvXQI0KcKo6IY2/9v0qQnVilFoenJF+2q6RJRP7ihhFuGOGGO851Zg4/9PCGi8oOD+iAzQM8c7bRRTX9pStMmbnGd1Nhwz2vbOD+ATcwteagjPBSZuAVTmBqzUHhnTnkA2wkPmJT2wRKGbLk1avZHUAcwldv/n/hhhFuGOGGEW54nKQVV2qyDejeW7YAAAAASUVORK5CYII="}else if(state===9){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjExR/NCNwAAAHpJREFUOE+lz8ENgDAMA8COxEiMkxWYgkmYhCGgllpkUz8aeJyQrVQJJSJ+sWWGLTNsmWHLaq22amkZX2T0MiuB7ASPOMusBIKNh9Evekh4weaTDOfDUDTYdBnTF/AjbOYssxJIf9Q39ouG35DwhS0zbJlhywxbzotyAztMtZGgPPrJAAAAAElFTkSuQmCC"}return""};return _GcFilterDialog})(spread.BaseDialog);spread._GcFilterDialog=_GcFilterDialog})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("fill",["core.common","core.globalize","core.stringResource"]);var keyword_null=null,keyword_undefined=undefined,Math_abs=Math.abs,Math_min=Math.min,Math_floor=Math.floor;(function(FillType){FillType[FillType["Direction"]=0]="Direction";FillType[FillType["Linear"]=1]="Linear";FillType[FillType["Growth"]=2]="Growth";FillType[FillType["Date"]=3]="Date";FillType[FillType["Auto"]=4]="Auto"})(spread.FillType||(spread.FillType={}));var FillType=spread.FillType;(function(FillDateUnit){FillDateUnit[FillDateUnit["Day"]=0]="Day";FillDateUnit[FillDateUnit["Weekday"]=1]="Weekday";FillDateUnit[FillDateUnit["Month"]=2]="Month";FillDateUnit[FillDateUnit["Year"]=3]="Year"})(spread.FillDateUnit||(spread.FillDateUnit={}));var FillDateUnit=spread.FillDateUnit;function __createRange(row,column,rowCount,columnCount){return new spread.Range(row,column,rowCount,columnCount)}function __createDateTimeHelper(date){return new spread._DateTimeHelper(date)}function __isNumber(value){if(typeof(value)==="string"){return false}return spread.FormatConverter.IsNumber(value)}function __fromOADate(value){return spread._DateTimeHelper.fromOADate(value)}var FillCachePool=(function(){function FillCachePool(sheet){this._sheet=sheet}return FillCachePool})();var NumberSource=(function(){function NumberSource(startIndex){this._indexes=[];this._innerValues=[];this._type=keyword_null;if(startIndex===keyword_undefined||startIndex===keyword_null){this._startIndex=-1}else
{this._startIndex=startIndex}}NumberSource.prototype.dataCount=function(){return this._innerValues.length};NumberSource.prototype.values=function(){var self=this;if(self._innerValues.length>0){var values=[];for(var i=0;i<self._innerValues.length;i++){var value=self._innerValues[i];var ret;if(self._type==="object"){ret=self.toDateTime(value)}else
{ret=value}values.push(ret)}return values}return[]};NumberSource.prototype.indexes2=function(){var self=this;var count=self._indexes.length;if(count>0&&spread.util.hasCalc()){var startIndex=self._startIndex;if(startIndex===-1){startIndex=self._indexes[0]}var value=new Array(1);value[0]=new Array(count);for(var i=0;i<count;i++){value[0][i]=self._indexes[i]-startIndex+1}return new spread.Calc._ConcreteArray(value,count)}return keyword_null};NumberSource.prototype.values2=function(){var count=this._innerValues.length;if(count>0&&spread.util.hasCalc()){var value=[this._innerValues];return new spread.Calc._ConcreteArray(value,count)}return keyword_null};NumberSource.prototype.insert=function(insertIndex,index,value){if(!__isNumber(value)){throw new Error(spread.SR.Exp_NumberOnly);}var self=this;if(self._type===keyword_undefined||self._type===keyword_null){if(value instanceof Date){self._type="date"}else
{self._type="number"}}new spread._ArrayHelper(self._indexes).insert(insertIndex,index);new spread._ArrayHelper(self._innerValues).insert(insertIndex,self.toDouble(value))};NumberSource.prototype.add=function(index,value){var self=this;if(self._type===keyword_undefined||self._type===keyword_null){if(value instanceof Date){self._type="date"}else
{self._type="number"}}self._indexes.push(index);self._innerValues.push(self.toDouble(value))};NumberSource.prototype.toActualValue=function(value){var ret;if(this._type==="date"){ret=this.toDateTime(value)}else
{ret=value}return ret};NumberSource.prototype.toDouble=function(value){return spread.FormatConverter.ToDouble(value)};NumberSource.prototype.toDateTime=function(value){var ret=keyword_null;if(value instanceof Date){ret=value}else if(spread.util.hasCalc()){try
{ret=spread.Calc.Convert.toDateTime(value)}catch(err){ret=value}}return ret};return NumberSource})();function bindStandardFunction(e,name,evaluator,values,indexes,dest){return(function evalateStandardFunction(evaluator,values,indexes,dest){if(!spread.util.hasCalc()){return keyword_null}var fn=spread.Calc.Functions.findGlobalFunction(name);var result=fn.evaluate([values,indexes,dest]);return result[0][0]})(evaluator,values,indexes,dest)}var FormulaEvaluator=(function(){function FormulaEvaluator(){}FormulaEvaluator.TREND=function(evaluator,values,indexes,dest){return bindStandardFunction(this,"Trend",evaluator,values,indexes,dest)};FormulaEvaluator.GROWTH=function(evaluator,values,indexes,dest){return bindStandardFunction(this,"Growth",evaluator,values,indexes,dest)};FormulaEvaluator.FORECAST=function(evaluator,values,indexes,dest){return bindStandardFunction(this,"Forecast",evaluator,values,indexes,dest)};return FormulaEvaluator})();var FillImp=(function(){function FillImp(sheet){this._worksheet=sheet;this._fillCache=new FillCachePool(sheet)}FillImp.prototype.fillLinear=function(range,series,step,stop){if((step===keyword_undefined||step===keyword_null)&&(stop===keyword_undefined||stop===keyword_null)){this.seriesTrendFillRange(range,series,1)}else
{this.seriesFillRange(range,series,1,step,stop,keyword_null)}};FillImp.prototype.fillGrowth=function(range,series,step,stop){if((step===keyword_undefined||step===keyword_null)&&(stop===keyword_undefined||stop===keyword_null)){this.seriesTrendFillRange(range,series,2)}else
{this.seriesFillRange(range,series,2,step,stop,keyword_null)}};FillImp.prototype.fillDate=function(range,series,unit,step,stop){this.seriesFillRange(range,series,3,step,stop,unit)};FillImp.prototype.seriesTrendFillRange=function(range,fillSeries,fillType,justGetTooltipContent){var self=this;var newRange=self.fixRange(range);var row=newRange.row;var column=newRange.col;var rowCount=newRange.rowCount;var columnCount=newRange.colCount;if(self.hasSpans(row,column,rowCount,columnCount)){throw new Error(spread.SR.Exp_RangeContainsMergedCell);}var sourceData,targetData,i;if(fillSeries===1){for(var r=row;r<row+rowCount;r++){sourceData=self.getSeriesSource(r,column,1,columnCount,fillSeries);if(sourceData&&sourceData.dataCount()>0){targetData=self.calcSeriesTrendData(sourceData,columnCount,fillType);if(targetData&&targetData.length>0){for(i=0;i<targetData.length;i++){if(justGetTooltipContent){return sourceData.toActualValue(targetData[i])}else
{self.copyCell(self._worksheet,r,sourceData._indexes[0],r,column+i,sourceData.toActualValue(targetData[i]),fillType)}}}}}}else if(fillSeries===0){for(var c=column;c<column+columnCount;c++){sourceData=self.getSeriesSource(row,c,rowCount,1,fillSeries);if(sourceData&&sourceData.dataCount()>0){targetData=self.calcSeriesTrendData(sourceData,rowCount,fillType);if(targetData&&targetData.length>0){for(i=0;i<targetData.length;i++){if(justGetTooltipContent){return sourceData.toActualValue(targetData[i])}else
{self.copyCell(self._worksheet,sourceData._indexes[0],c,row+i,c,sourceData.toActualValue(targetData[i]),fillType)}}}}}}};FillImp.prototype.getSeriesSource=function(row,column,rowCount,columnCount,fillSeries){var numberSource=keyword_null,value;if(fillSeries===1){var c=column+columnCount-1;while(c>=column){value=this._worksheet.getValue(row,c);if(__isNumber(value)){if(!numberSource){numberSource=new NumberSource(column)}numberSource.insert(0,c,value)}c--}}else if(fillSeries===0){var r=row+rowCount-1;while(r>=row){value=this._worksheet.getValue(r,column);if(__isNumber(value)){if(!numberSource){numberSource=new NumberSource(row)}numberSource.insert(0,r,value)}r--}}return numberSource};FillImp.prototype.calcSeriesTrendData=function(sourceData,count,type){if(sourceData&&sourceData.dataCount()>0&&spread.util.hasCalc()){if(type===1||type===2){var newValues=[];if(sourceData.dataCount()===1){if(type===1){sourceData.add(sourceData._indexes[0]+1,sourceData.toActualValue(sourceData._innerValues[0]+1))}else if(type===2){sourceData.add(sourceData._indexes[0]+1,sourceData.values()[0])}}for(var i=0;i<count;i++){if(type===1){newValues.push(FormulaEvaluator.TREND(this._worksheet,sourceData.values2(),sourceData.indexes2(),i+1))}else if(type===2){newValues.push(FormulaEvaluator.GROWTH(this._worksheet,sourceData.values2(),sourceData.indexes2(),i+1))}}return newValues}}return keyword_null};FillImp.prototype.fillAuto=function(range,series,justGetToolTipContent){var self=this;var sheet=self._worksheet;var newRange=self.fixRange(range);var row=newRange.row;var column=newRange.col;var rowCount=newRange.rowCount;var columnCount=newRange.colCount;var sourceRange=self.fixRange(sheet._eventHandler._dragFillStartRange);if(sourceRange){if(self.hasPartSpans(sourceRange.row,sourceRange.col,sourceRange.rowCount,sourceRange.colCount)||self.hasPartSpans(row,column,rowCount,columnCount)){throw new Error(spread.SR.Exp_ChangeMergedCell);}var isIncrease=true;if(row<sourceRange.row||column<sourceRange.col){isIncrease=false}return self.autoFillRange(sourceRange,rowCount,columnCount,series,justGetToolTipContent,isIncrease)}};FillImp.prototype.fixRange=function(range){var row=range.row;var column=range.col;var rowCount=range.rowCount;var columnCount=range.colCount;if(row===-1){row=0;rowCount=this._worksheet.getRowCount()}if(column===-1){column=0;columnCount=this._worksheet.getColumnCount()}return __createRange(row,column,rowCount,columnCount)};FillImp.prototype.autoFillRange=function(sourceRange,rowCount,columnCount,fillSeries,justGetTooltipContent,isIncrease){var self=this;var nWhole,nPartial,targetRange,i;var directionNum=isIncrease?1:-1;if(fillSeries===1){nWhole=Math_floor(columnCount/sourceRange.colCount);nPartial=columnCount%sourceRange.colCount;if(nWhole>1&&!justGetTooltipContent){for(i=1;i<nWhole;i++){targetRange=__createRange(sourceRange.row,sourceRange.col+i*directionNum*sourceRange.colCount,sourceRange.rowCount,sourceRange.colCount);self.copyRange(sourceRange,targetRange,fillSeries,4,justGetTooltipContent)}}if(justGetTooltipContent&&nWhole>1&&nPartial===0){nWhole=nWhole-1;nPartial=sourceRange.colCount}if(nWhole>0&&nPartial>0){if(isIncrease){targetRange=__createRange(sourceRange.row,sourceRange.col+nWhole*sourceRange.colCount,sourceRange.rowCount,nPartial)}else
{targetRange=__createRange(sourceRange.row,sourceRange.col-nWhole*sourceRange.colCount+sourceRange.colCount-nPartial,sourceRange.rowCount,nPartial)}return self.copyRange(sourceRange,targetRange,fillSeries,4,justGetTooltipContent,isIncrease,keyword_null,isIncrease?0:sourceRange.colCount-nPartial)}}else if(fillSeries===0){nWhole=Math_floor(rowCount/sourceRange.rowCount);nPartial=rowCount%sourceRange.rowCount;if(nWhole>1&&!justGetTooltipContent){for(i=1;i<nWhole;i++){targetRange=__createRange(sourceRange.row+i*directionNum*sourceRange.rowCount,sourceRange.col,sourceRange.rowCount,sourceRange.colCount);self.copyRange(sourceRange,targetRange,fillSeries,4,justGetTooltipContent,keyword_null,keyword_null,keyword_null,true)}}if(justGetTooltipContent&&nWhole>1&&nPartial===0){nWhole=nWhole-1;nPartial=sourceRange.rowCount}if(nWhole>0&&nPartial>0){if(isIncrease){targetRange=__createRange(sourceRange.row+nWhole*sourceRange.rowCount,sourceRange.col,nPartial,sourceRange.colCount)}else
{targetRange=__createRange(sourceRange.row-nWhole*sourceRange.rowCount+sourceRange.rowCount-nPartial,sourceRange.col,nPartial,sourceRange.colCount)}return self.copyRange(sourceRange,targetRange,fillSeries,4,justGetTooltipContent,isIncrease,isIncrease?0:sourceRange.rowCount-nPartial,keyword_null,true)}}};FillImp.prototype.copyRange=function(sourceRange,targetRange,fillSeries,fillType,justGetTooltipContent,isIncrease,rowOffset,colOffset,ignoreFilteredOutRow){var self=this;var sheet=self._worksheet;var r,c,sourceColumn,sourceRow,targetRow,targetColumn,sourceValue,formula,valueType,sourceSpan,trendData=keyword_null,trendDataType=keyword_null;if(fillSeries===1){for(r=0;r<sourceRange.rowCount;r++){trendData=keyword_null;trendDataType=keyword_null;sourceRow=sourceRange.row+r;targetRow=targetRange.row+r;colOffset=colOffset?colOffset:0;c=0;while(c<sourceRange.colCount){sourceColumn=sourceRange.col+c;targetColumn=targetRange.col+c-colOffset;sourceValue=keyword_null;formula=sheet.getFormula(sourceRow,sourceColumn);if(!formula||formula===""){sourceValue=sheet.getValue(sourceRow,sourceColumn)}if(fillType===4){if(__isNumber(sourceValue)){if(!trendData){trendData=new NumberSource}valueType=keyword_null;if(sourceValue instanceof Date){valueType="date"}else
{valueType="number"}if(!trendDataType){trendDataType=valueType}if(trendDataType===valueType){trendData.add(sourceColumn,sourceValue);c++;continue}}}if(sourceValue&&trendData&&trendData.dataCount()>0){var result=self.autoFillRowTrendValues(sourceRange,targetRange,sourceRow,targetRow,trendData,justGetTooltipContent,isIncrease,colOffset);if(justGetTooltipContent&&result!==keyword_null){return result}trendData=keyword_null;trendDataType=keyword_null;continue}sourceSpan=sheet._spanModel.find(sourceRow,sourceColumn);if(sourceSpan){if(sourceSpan.row===sourceRow){if(justGetTooltipContent){if(targetColumn===targetRange.col+targetRange.colCount-1){return sourceValue}}else if(targetColumn<targetRange.col+targetRange.colCount&&targetColumn>=targetRange.col){self.copyCell(sheet,sourceRow,sourceColumn,targetRow,targetColumn,sourceValue,fillType)}}c+=sourceSpan.colCount}else
{if(justGetTooltipContent){if(isIncrease&&targetColumn===targetRange.col+targetRange.colCount-1){return sourceValue}else if(!isIncrease&&targetColumn===targetRange.col){return sourceValue}}else if(targetColumn<targetRange.col+targetRange.colCount&&targetColumn>=targetRange.col){self.copyCell(sheet,sourceRow,sourceColumn,targetRow,targetColumn,sourceValue,fillType)}c++}}if(trendData&&trendData.dataCount()>0){var result=self.autoFillRowTrendValues(sourceRange,targetRange,sourceRow,targetRow,trendData,justGetTooltipContent,isIncrease,colOffset);if(justGetTooltipContent&&result!==keyword_null){return result}}}}else if(fillSeries===0){for(c=0;c<sourceRange.colCount;c++){trendData=keyword_null;trendDataType=keyword_null;sourceColumn=sourceRange.col+c;targetColumn=targetRange.col+c;rowOffset=rowOffset?rowOffset:0;r=0;while(r<sourceRange.rowCount){sourceRow=sourceRange.row+r;targetRow=targetRange.row+r-rowOffset;sourceValue=keyword_null;formula=sheet.getFormula(sourceRow,sourceColumn);if(!formula||formula===""){sourceValue=sheet.getValue(sourceRow,sourceColumn)}if(fillType===4){if(__isNumber(sourceValue)){if(!trendData){trendData=new NumberSource}valueType=keyword_null;if(sourceValue instanceof Date){valueType="date"}else
{valueType="number"}if(!trendDataType){trendDataType=valueType}if(trendDataType===valueType){trendData.add(sourceRow,sourceValue);r++;continue}}}if(sourceValue&&trendData&&trendData.dataCount()>0){var result=self.autoFillColumnTrendValues(sourceRange,targetRange,sourceColumn,targetColumn,trendData,justGetTooltipContent,isIncrease,rowOffset,ignoreFilteredOutRow);if(justGetTooltipContent&&result!==keyword_null){return result}trendData=keyword_null;trendDataType=keyword_null;continue}sourceSpan=sheet._spanModel.find(sourceRow,sourceColumn);if(sourceSpan){if(sourceSpan.col===sourceColumn){if(justGetTooltipContent){if(targetRow===targetRange.row+targetRange.rowCount-1){return sourceValue}}else if(targetRow<targetRange.row+targetRange.rowCount&&targetRow>=targetRange.row){if(!(ignoreFilteredOutRow&&sheet.isRowFilterOut(targetRow))){self.copyCell(sheet,sourceRow,sourceColumn,targetRow,targetColumn,sourceValue,fillType)}}}r+=sourceSpan.rowCount}else
{if(justGetTooltipContent){if(isIncrease&&targetRow===targetRange.row+targetRange.rowCount-1){return sourceValue}else if(!isIncrease&&targetRow===targetRange.row){return sourceValue}}else if(targetRow<targetRange.row+targetRange.rowCount&&targetRow>=targetRange.row){if(!(ignoreFilteredOutRow&&sheet.isRowFilterOut(targetRow))){self.copyCell(sheet,sourceRow,sourceColumn,targetRow,targetColumn,sourceValue,fillType)}}r++}}if(trendData&&trendData.dataCount()>0){var result=self.autoFillColumnTrendValues(sourceRange,targetRange,sourceColumn,targetColumn,trendData,justGetTooltipContent,isIncrease,rowOffset,ignoreFilteredOutRow);if(justGetTooltipContent&&result!==keyword_null){return result}}}}return keyword_null};FillImp.prototype.autoFillRowTrendValues=function(sourceRange,targetRange,sourceRow,targetRow,trendData,justGetTooltipContent,isIncrease,colOffset){var self=this;var sheet=self._worksheet;var count,i,newV,sourceColumn,targetColumn;if(trendData&&trendData.dataCount()>0&&spread.util.hasCalc()){var multiplier=(targetRange.col-sourceRange.col)/sourceRange.colCount;if(self.isArithmeticProgression(trendData._indexes,trendData._innerValues)){var trendValues=trendData.values2();var value=new Array(1);count=trendData.dataCount();value[0]=new Array(count);for(i=0;i<count;i++){value[0][i]=i+1}var trendIndexes=new spread.Calc._ConcreteArray(value,count);for(i=0;i<count;i++){newV=FormulaEvaluator.TREND(sheet,trendValues,trendIndexes,count*multiplier+i+1);sourceColumn=trendData._indexes[i];targetColumn=sourceColumn+multiplier*sourceRange.colCount;if(justGetTooltipContent){if(isIncrease&&targetColumn===targetRange.col+targetRange.colCount-1){return trendData.toActualValue(newV)}else if(!isIncrease&&targetColumn===targetRange.col){return trendData.toActualValue(newV)}}else if(targetColumn<targetRange.col+targetRange.colCount&&targetColumn>=targetRange.col){self.copyCell(sheet,sourceRow,sourceColumn,targetRow,targetColumn,trendData.toActualValue(newV),4)}}}else
{var startColumn=trendData._indexes[0];count=trendData._indexes[trendData.dataCount()-1]-startColumn+1;if(trendData.dataCount()===1){trendData.add(trendData._indexes[0]+1,trendData.toActualValue(trendData._innerValues[0]+1))}for(i=0;i<count;i++){newV=FormulaEvaluator.TREND(sheet,trendData.values2(),trendData.indexes2(),count*multiplier+i+1);sourceColumn=startColumn+i;targetColumn=sourceColumn+multiplier*sourceRange.colCount;if(justGetTooltipContent){if(targetColumn===targetRange.col+targetRange.colCount-1){return trendData.toActualValue(newV)}}else if(targetColumn<targetRange.col+targetRange.colCount&&targetColumn>=targetRange.col){self.copyCell(sheet,sourceRow,sourceColumn,targetRow,targetColumn,trendData.toActualValue(newV),4)}}}}return keyword_null};FillImp.prototype.copyCell=function(sheet,fromRow,fromColumn,toRow,toColumn,newValue,type){if(sheet.hasFormula(fromRow,fromColumn)||sheet.hasFormula(toRow,toColumn)){sheet.setFormula(toRow,toColumn,keyword_null);if(type===0||type===4){var formula=sheet.getFormula(fromRow,fromColumn);if(formula){sheet._copyFormula(fromRow,fromColumn,toRow,toColumn,1,1)}}}sheet.setValue(toRow,toColumn,newValue);var style=sheet.getCompositeStyle(fromRow,fromColumn);if(!style){sheet.setStyle(toRow,toColumn,keyword_null,3)}else
{var clonedStyle=new spread.Style;clonedStyle.copyFrom(style);sheet.setStyle(toRow,toColumn,clonedStyle,3)}if(!sheet._spanModel.isEmpty()){sheet.removeSpan(toRow,toColumn,3);var span=sheet._spanModel.find(fromRow,fromColumn);if(span){sheet._addSpanImp(toRow,toColumn,span.rowCount,span.colCount,3)}}};FillImp.prototype.autoFillColumnTrendValues=function(sourceRange,targetRange,sourceColumn,targetColumn,trendData,justGetTooltipContent,isIncrease,rowOffset,ignoreFilteredOutRow){var self=this;var sheet=self._worksheet;var count,i,newV,sourceRow,targetRow;if(trendData&&trendData.dataCount()>0&&spread.util.hasCalc()){var multiplier=(targetRange.row-sourceRange.row-rowOffset)/sourceRange.rowCount;if(self.isArithmeticProgression(trendData._indexes,trendData._innerValues)){var trendValues=trendData.values2();var value=new Array(1);count=trendData.dataCount();value[0]=new Array(count);for(i=0;i<count;i++){value[0][i]=i+1}var trendIndexes=new spread.Calc._ConcreteArray(value,count);for(i=0;i<count;i++){newV=FormulaEvaluator.TREND(sheet,trendValues,trendIndexes,count*multiplier+i+1);sourceRow=trendData._indexes[i];targetRow=sourceRow+multiplier*sourceRange.rowCount;if(justGetTooltipContent){if(isIncrease&&targetRow===targetRange.row+targetRange.rowCount-1){return trendData.toActualValue(newV)}if(!isIncrease&&targetRow===targetRange.row){return trendData.toActualValue(newV)}}else if(targetRow<targetRange.row+targetRange.rowCount&&targetRow>=targetRange.row){if(!(ignoreFilteredOutRow&&sheet.isRowFilterOut(targetRow))){self.copyCell(sheet,sourceRow,sourceColumn,targetRow,targetColumn,trendData.toActualValue(newV),4)}}}}else
{var startRow=trendData._indexes[0];count=trendData._indexes[trendData.dataCount()-1]-startRow+1;if(trendData.dataCount()===1){trendData.add(trendData._indexes[0]+1,trendData.toActualValue(trendData._innerValues[0]+1))}for(i=0;i<count;i++){newV=FormulaEvaluator.TREND(sheet,trendData.values2(),trendData.indexes2(),count*multiplier+i+1);sourceRow=startRow+i;targetRow=sourceRow+multiplier*sourceRange.rowCount;if(justGetTooltipContent){if(targetRow+rowOffset===targetRange.row+targetRange.rowCount-1){return trendData.toActualValue(newV)}}else if(targetRow<targetRange.row+targetRange.rowCount&&targetRow>=targetRange.row){if(!(ignoreFilteredOutRow&&sheet.isRowFilterOut(targetRow))){self.copyCell(sheet,startRow,sourceColumn,targetRow,targetColumn,trendData.toActualValue(newV),4)}}}}}return keyword_null};FillImp.prototype.isArithmeticProgression=function(indexes,values){if(indexes.length!==values.length){return false}var count=values.length;if(count<=1){return false}else if(count===2){return true}else
{var indexDiff=indexes[1]-indexes[0];var valueDiff=values[1]-values[0];for(var i=2;i<count;i++){if(indexes[i]-indexes[i-1]!==indexDiff){return false}if(values[i]-values[i-1]!==valueDiff){return false}}return true}};FillImp.prototype.fillAutobyDirection=function(range,direction){var newRange=this.fixRange(range);var row=newRange.row;var column=newRange.col;var rowCount=newRange.rowCount;var columnCount=newRange.colCount;var sourceRange=this.getDirectionFillSourceRange(row,column,rowCount,columnCount,direction);if(sourceRange){this.directionFillRange(sourceRange,row,column,rowCount,columnCount,direction)}};FillImp.prototype.directionFillRange=function(sourceRange,row,column,rowCount,columnCount,direction){var self=this;var _fillRangeHasMergedCellErrorMessage=spread.SR.Exp_TargetContainsMergedCells;var _fillRangeHaveDifferentSizeErrorMessage=spread.SR.Exp_MergedCellsIdentical;var nWhole,nPartial,targetRange,i;if(direction===0){if(self.hasSpans(row,column,rowCount,columnCount-sourceRange.colCount)){throw new Error(_fillRangeHasMergedCellErrorMessage);}nWhole=Math_floor(columnCount/sourceRange.colCount);nPartial=columnCount%sourceRange.colCount;if(nPartial!==0){throw new Error(_fillRangeHaveDifferentSizeErrorMessage);}if(nWhole>1){for(i=1;i<nWhole;i++){targetRange=__createRange(sourceRange.row,sourceRange.col-i*sourceRange.colCount,sourceRange.rowCount,sourceRange.colCount);self.copyRange(sourceRange,targetRange,1,0)}}}else if(direction===1){if(self.hasSpans(row,column+sourceRange.colCount,rowCount,columnCount-sourceRange.colCount)){throw new Error(_fillRangeHasMergedCellErrorMessage);}nWhole=Math_floor(columnCount/sourceRange.colCount);nPartial=columnCount%sourceRange.colCount;if(nPartial!==0){throw new Error(_fillRangeHaveDifferentSizeErrorMessage);}if(nWhole>1){for(i=1;i<nWhole;i++){targetRange=__createRange(sourceRange.row,sourceRange.col+i*sourceRange.colCount,sourceRange.rowCount,sourceRange.colCount);self.copyRange(sourceRange,targetRange,1,0)}}}else if(direction===2){if(self.hasSpans(row,column,rowCount-sourceRange.rowCount,columnCount)){throw new Error(_fillRangeHasMergedCellErrorMessage);}nWhole=Math_floor(rowCount/sourceRange.rowCount);nPartial=rowCount%sourceRange.rowCount;if(nPartial!==0){throw new Error(_fillRangeHaveDifferentSizeErrorMessage);}if(nWhole>1){for(i=1;i<nWhole;i++){targetRange=__createRange(sourceRange.row-i*sourceRange.rowCount,sourceRange.col,sourceRange.rowCount,sourceRange.colCount);self.copyRange(sourceRange,targetRange,0,0)}}}else if(direction===3){if(self.hasSpans(row+sourceRange.rowCount,column,rowCount-sourceRange.rowCount,columnCount)){throw new Error(_fillRangeHasMergedCellErrorMessage);}nWhole=Math_floor(rowCount/sourceRange.rowCount);nPartial=rowCount%sourceRange.rowCount;if(nPartial!==0){throw new Error(_fillRangeHaveDifferentSizeErrorMessage);}if(nWhole>1){for(i=1;i<nWhole;i++){targetRange=__createRange(sourceRange.row+i*sourceRange.rowCount,sourceRange.col,sourceRange.rowCount,sourceRange.colCount);self.copyRange(sourceRange,targetRange,0,0)}}}};FillImp.prototype.getDirectionFillSourceRange=function(row,column,rowCount,columnCount,direction){var sourceRange=keyword_null;if(direction===0){sourceRange=__createRange(row,column+columnCount-1,rowCount,1)}else if(direction===1){sourceRange=__createRange(row,column,rowCount,1)}else if(direction===2){sourceRange=__createRange(row+rowCount-1,column,1,columnCount)}else if(direction===3){sourceRange=__createRange(row,column,1,columnCount)}return this.inflateCellRange(sourceRange)};FillImp.prototype.inflateCellRange=function(range){var spans=this._worksheet.getSpans();if(spans&&range){range=this._worksheet._cellRangeInflate(spans,range)}return range};FillImp.prototype.hasPartSpans=function(row,column,rowCount,columnCount){var spans=this._worksheet._spanModel.getEnumerator(row,column,rowCount,columnCount);while(spans.moveNext()){var cs=spans.current();if(cs.row<row||cs.row+cs.rowCount>row+rowCount){return true}if(cs.col<column||cs.col+cs.colCount>column+columnCount){return true}}return false};FillImp.prototype.hasSpans=function(row,column,rowCount,columnCount){var spans=this._worksheet._spanModel.getEnumerator(row,column,rowCount,columnCount);return spans.moveNext()};FillImp.prototype.seriesFillRange=function(range,fillSeries,type,stepValue,stopValue,dateUnit){var self=this;var newRange=self.fixRange(range);var row=newRange.row,column=newRange.col,rowCount=newRange.rowCount,columnCount=newRange.colCount,sourceData,targetData,i;if(self.hasSpans(row,column,rowCount,columnCount)){throw new Error(spread.SR.Exp_RangeContainsMergedCell);}if(fillSeries===1){for(var r=row;r<row+rowCount;r++){sourceData=self.getSeriesSource(r,column,1,1,fillSeries);if(sourceData&&sourceData.dataCount()>0){targetData=self.calcSeriesData(sourceData,columnCount,type,stepValue,stopValue,dateUnit);if(targetData&&targetData.length>0){for(i=0;i<targetData.length;i++){self.copyCell(self._worksheet,r,sourceData._indexes[0],r,column+i,sourceData.toActualValue(targetData[i]),type)}}}}}else if(fillSeries===0){for(var c=column;c<column+columnCount;c++){sourceData=self.getSeriesSource(row,c,1,1,fillSeries);if(sourceData&&sourceData.dataCount()>0){targetData=self.calcSeriesData(sourceData,rowCount,type,stepValue,stopValue,dateUnit);if(targetData&&targetData.length>0){for(i=0;i<targetData.length;i++){self.copyCell(self._worksheet,sourceData._indexes[0],c,row+i,c,sourceData.toActualValue(targetData[i]),type)}}}}}};FillImp.prototype.calcSeriesData=function(sourceData,count,type,stepValue,stopValue,dateUnit){if(sourceData&&sourceData.dataCount()>0){var newValues=[];var initValue=sourceData._innerValues[0];var currentValue=initValue;for(var i=0;i<count;i++){if(stopValue===keyword_undefined||stopValue===keyword_null||currentValue<=stopValue){newValues.push(currentValue);if(type===1){currentValue+=stepValue}else if(type===2){currentValue*=stepValue}else if(type===3&&dateUnit!==keyword_undefined&&dateUnit!==keyword_null){currentValue=this.getNextDateValue(dateUnit,initValue,currentValue,stepValue,i+1)}}}return newValues}return keyword_null};FillImp.prototype.getNextDateValue=function(dateUnit,initValue,currentValue,stepValue,nextIndex){var nextValue=currentValue,date;if(dateUnit===0){date=__fromOADate(currentValue);nextValue=__createDateTimeHelper(date.setDate(date.getDate()+stepValue)).toOADate()}else if(dateUnit===1){date=__fromOADate(currentValue);var addValue=Math_abs(stepValue);while(addValue>0){if(stepValue>0){date.setDate(date.getDate()+Math_min(1,addValue))}else
{date.setDate(date.getDate()-Math_min(1,addValue))}if(date.getDay()!==6&&date.getDay()!==0){addValue-=1}}nextValue=__createDateTimeHelper(date).toOADate()}else if(dateUnit===2){date=__fromOADate(initValue);nextValue=__createDateTimeHelper(date.setMonth(date.getMonth()+Math_floor(nextIndex*stepValue))).toOADate()}else if(dateUnit===3){date=__fromOADate(initValue);nextValue=__createDateTimeHelper(date.setFullYear(date.getFullYear()+Math_floor(nextIndex*stepValue))).toOADate()}return nextValue};return FillImp})();spread.FillImp=FillImp})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var __extends=this.__extends||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __};var wijmo;(function(wijmo){(function(spread){spread.feature("fill_ui",["core.common","core.sheet_action","core.stringResource"]);(function(_FillSmartTag){_FillSmartTag[_FillSmartTag["Tag"]=0]="Tag";_FillSmartTag[_FillSmartTag["Down"]=1]="Down"})(spread._FillSmartTag||(spread._FillSmartTag={}));var _FillSmartTag=spread._FillSmartTag;var _GcFillDialog=(function(_super){__extends(_GcFillDialog,_super);function _GcFillDialog(sheet,fillInfo){_super.call(this);var self=this;self._useWijmoTheme=false;self.eventNameSpace=".ui-fill";self.fillKeyDown="keydown"+self.eventNameSpace;self.sheet=sheet;self.fillInfo=fillInfo;self._initTagDialog()}_GcFillDialog.prototype._initTagDialog=function(){var self=this;self.tagContainer=self.getContainer().addClass("container-default-header tag-container no-user-select");self.smartTag=$("<img>").attr("src",_GcFillDialog.getImageSrc(0)).css("float","left").appendTo(self.tagContainer);self.smartTagDown=$("<img>").attr("src",_GcFillDialog.getImageSrc(1)).css({float:"left",display:"none"}).appendTo(self.tagContainer)};_GcFillDialog.prototype.useWijmoTheme=function(value){var self=this;if(typeof value==="undefined"){return self._useWijmoTheme}if(typeof value==='boolean'&&self._useWijmoTheme!==value){_super.prototype.useWijmoTheme.call(this,value);var tagContainer=self.tagContainer,wijmoClassName="ui-widget-header",notWijmoClassName="container-default-header";tagContainer.removeClass(value?notWijmoClassName:wijmoClassName);tagContainer.addClass(value?wijmoClassName:notWijmoClassName);return self}return null};_GcFillDialog.prototype._registerEvent=function(){var self=this,device=spread.util.device(),isSafariOnIpad=$.browser.safari&&(device.ipad||device.iphone);self.tagContainer.hover(function(){var hoverClassName=self._useWijmoTheme?"ui-state-hover":"container-default-hover",isTouchMode=self.sheet._isTouchMode,hoverInWidth=isTouchMode?"38px":"32px",hoverInHeight=isTouchMode?"24px":"18px";if(self.menuDialog){var isOpen=self.menuDialog.isOpen();if(isOpen){return}}$(this).addClass(hoverClassName);$(this).css({width:hoverInWidth,height:hoverInHeight});if(!isSafariOnIpad){self.smartTagDown.show()}},function(){var hoverClassName=self._useWijmoTheme?"ui-state-hover":"container-default-hover",isTouchMode=self.sheet._isTouchMode,hoverOutWidth=isTouchMode?"24px":"18px",hoverOutHeight=isTouchMode?"24px":"18px";if(self.menuDialog){var isOpen=self.menuDialog.isOpen();if(isOpen){return}}$(this).removeClass(hoverClassName);$(this).css({width:hoverOutWidth,height:hoverOutHeight});if(!isSafariOnIpad){self.smartTagDown.hide()}});self.tagContainer.toggle(function(){var toggleClassName=self._useWijmoTheme?"ui-state-active":"container-default-active";if(isSafariOnIpad){self.smartTagDown.show()}$(this).addClass(toggleClassName);self._openMenu();self._initData()},function(){var toggleClassName=self._useWijmoTheme?"ui-state-active":"container-default-active";if(isSafariOnIpad){self.smartTagDown.hide()}$(this).removeClass(toggleClassName);self._closeMenu()});$(document).bind(self.fillKeyDown,function(event){if(event.keyCode===27){if(self.menuDialog&&self.menuDialog.isOpen()){self._closeMenu()}else
{self.close()}spread.util.cancelDefault(event)}})};_GcFillDialog.prototype.open=function(){var self=this,sheet=self.sheet;if(self.tagContainer){var t=$(sheet._getCanvas()).offset();var x=self.fillInfo.x;var y=self.fillInfo.y;x+=t.left;y+=t.top;self.tagContainer.css({left:x,top:y});self.show();self._registerEvent();var isTouchMode=sheet._isTouchMode,margin=isTouchMode?"3px":"0px",height=isTouchMode?"24px":"18px";self.smartTag.css("margin",margin);self.smartTagDown.css("height",height);self._reset();var tempSpread=sheet.parent,useTheme=(tempSpread&&typeof(tempSpread.useWijmoTheme)!="undefined")?tempSpread.useWijmoTheme:false;self.useWijmoTheme(useTheme)}};_GcFillDialog.prototype._initData=function(){var fillType=this.fillInfo.fillType;if(this.menuContainer){var radio=this.menuContainer.find(":radio")[fillType];if(radio&&radio.checked===false){radio.checked=true;$(radio).change()}}};_GcFillDialog.prototype._openMenu=function(){var self=this;if(!self.menuDialog){self.menuDialog=new _GcFillMenuDialog(self.sheet);self.menuContainer=self.menuDialog.getContainer();self.menuDialog.useWijmoTheme(self._useWijmoTheme)}var t=$(self.tagContainer).offset();var x=t.left;var y=t.top+self.tagContainer.height()+2;self.menuContainer.css({left:x,top:y});self.menuDialog.show("normal");self.menuDialog._attachEvent();$(self.menuDialog).unbind("fillTypeChanged");$(self.menuDialog).bind("fillTypeChanged",function(e,args){self.fillInfo.fillType=args})};_GcFillDialog.prototype._closeMenu=function(){if(this.menuDialog){this.menuDialog.close()}};_GcFillDialog.prototype._reset=function(){var self=this;if(self.menuDialog){var isOpen=self.menuDialog.isOpen();if(isOpen){self.tagContainer.click()}self.tagContainer.mouseleave()}};_GcFillDialog.prototype.close=function(){var self=this;self._reset();$(document).unbind(self.fillKeyDown);_super.prototype.close.call(this);if(self.sheet){self.sheet.setFocus()}};_GcFillDialog.getImageSrc=function(state){if(state===0){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg"+"6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABR"+"mS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOna"+"V/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCA"+"AARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQa"+"PYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8l"+"sKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnU"+"lqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6"+"UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rut"+"u6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH"+"5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+"+"qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7"+"OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aX"+"Dm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRp"+"tTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+"+"3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOp"+"gAABdvkl/FRgAAAFJJREFUeNrclEEKACAIBOfp/Xy7i4WSRnRYBIVRVhFJVIhyEAxllQa5E/wBSnsU6Rza2nugqNmASi57C/KKNg/Iqn+iVWzx6M4bOdUEAAD//wMAAYRMfiNaiqEAAAAASUVORK5CYII="}else if(state===1){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAASCAYAAACXScT7AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAKTWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQWaIQkgBhhBASQMWFiApWFBURnEhVxILVCkidiOKgKLhnQYqIWotVX"+"DjuH9yntX167+3t+9f7vOec5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28AAgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEIiAKoNAOz0ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4"+"EwK4BgFm2MkcCgL0FAHaOWJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDSv+CpX3CFuEgBAMDLlc2XS9IzFLiV0Bp38vDg4iHiwmyxQmEXKRBmCeQinJebIxNI5wNMzgwAABr50cH+OD+Q5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryMAgQAEE7P79pf5eXWA3DHAbB1v2upWwDaVgBo3/ldM9sJoFoK0Hr5i3k4/"+"EAenqFQyDwdHAoLC+0lYqG9MOOLPv8z4W/gi372/EAe/tt68ABxmkCZrcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHiNLFcLBWK8ViJuFAiTcd5uVKRRCHJleIS6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYAQH7zLYwaC5EAEGc0Mnn3AACTv/mPQCsBAM2XpOMAALzoGFyolBdMxggAAES"+"ggSqwQQcMwRSswA6cwR28wBcCYQZEQAwkwDwQQgbkgBwKoRiWQRlUwDrYBLWwAxqgEZrhELTBMTgN5+ASXIHrcBcGYBiewhi8hgkEQcgIE2EhOogRYo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1cQPqQ28ggMor8irxHMZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2At"+"qKn0UvodXQAfYqOY4DRMQ5mjNlhXIyHRWCJWBomxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQR1hMWEOoJewjtBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQOyZLkTgohJZAySQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDr"+"FiOJMCaIkUqSUEko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8ukLaPV0JppZ2n3aC/pdLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUymBdOXmchUMNcyG5lnmA+Yb1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgtUq1UPq15WfaZGVbNQ46kJ1Bar1"+"akdVbupNq7OUndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXxWELWclYD6yxrmE1iW7L57Ex2Bfsbdi97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57LQMtPy2x1mqtZq1+rTfaetq+2mLtcu0W7eva73VwnUCdLJ31Om0693UJuja6UbqFutt1z+o+02PreekJ9cr1Dund0Uf1bfSj9Rf"+"q79bv0R83MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEctoupHEaKPRSaMnuCbuh2fjNXgXPmasbxxirDTeZdxrPGFiaTLbpMSkxeS+Kc2Ua5pmutG003TMzMgs3KzYrMnsjjnVnGueYb7ZvNv8jYWlRZzFSos2i8eW2pZ8ywWWTZb3rJhWPlZ5VvVW16xJ1lzrLOtt1ldsUBtXmwybOpvLtqitm63Edptt3xTiF"+"I8p0in1U27aMez87ArsmuwG7Tn2YfYl9m32zx3MHBId1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd8zUXpkuQyxKXdpcXU22niqdun3rLleUa7rrStdP1o5u7m9yt2W3U3cw9xX2r+00umxvJXcM970H08PdY4nHM452nm6fC85DnL152Xlle+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgK"+"fep+Hvqa+It89viN+1n6Zfgf8nvs7+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQWNBbsGLww+FUIMCQ1ZH3KTb8AX8hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjgR2yIuB9pGZkX+X0UKSoyqi7qUbRTdHF09yzWrORZ+2e9jvGPqYy5O9tqtnJ2Z6xqbFJsY+ybu"+"IC4qriBeIf4RfGXEnQTJAntieTE2MQ9ieNzAudsmjOc5JpUlnRjruXcorkX5unOy553PFk1WZB8OIWYEpeyP+WDIEJQLxhP5aduTR0T8oSbhU9FvqKNolGxt7hKPJLmnVaV9jjdO31D+miGT0Z1xjMJT1IreZEZkrkj801WRNberM/ZcdktOZSclJyjUg1plrQr1zC3KLdPZisrkw3keeZtyhuTh8r35CP5c/P"+"bFWyFTNGjtFKuUA4WTC+oK3hbGFt4uEi9SFrUM99m/ur5IwuCFny9kLBQuLCz2Lh4WfHgIr9FuxYji1MXdy4xXVK6ZHhp8NJ9y2jLspb9UOJYUlXyannc8o5Sg9KlpUMrglc0lamUycturvRauWMVYZVkVe9ql9VbVn8qF5VfrHCsqK74sEa45uJXTl/VfPV5bdra3kq3yu3rSOuk626s91m/r0q9akHV0IbwD"+"a0b8Y3lG19tSt50oXpq9Y7NtM3KzQM1YTXtW8y2rNvyoTaj9nqdf13LVv2tq7e+2Sba1r/dd3vzDoMdFTve75TsvLUreFdrvUV99W7S7oLdjxpiG7q/5n7duEd3T8Wej3ulewf2Re/ranRvbNyvv7+yCW1SNo0eSDpw5ZuAb9qb7Zp3tXBaKg7CQeXBJ9+mfHvjUOihzsPcw83fmX+39QjrSHkr0jq/dawto22"+"gPaG97+iMo50dXh1Hvrf/fu8x42N1xzWPV56gnSg98fnkgpPjp2Snnp1OPz3Umdx590z8mWtdUV29Z0PPnj8XdO5Mt1/3yfPe549d8Lxw9CL3Ytslt0utPa49R35w/eFIr1tv62X3y+1XPK509E3rO9Hv03/6asDVc9f41y5dn3m978bsG7duJt0cuCW69fh29u0XdwruTNxdeo94r/y+2v3qB/oP6n+0/rFlw"+"G3g+GDAYM/DWQ/vDgmHnv6U/9OH4dJHzEfVI0YjjY+dHx8bDRq98mTOk+GnsqcTz8p+Vv9563Or59/94vtLz1j82PAL+YvPv655qfNy76uprzrHI8cfvM55PfGm/K3O233vuO+638e9H5ko/ED+UPPR+mPHp9BP9z7nfP78L/eE8/sl0p8zAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAA"+"Xb5JfxUYAAAGCSURBVHjafNFPKKRxHAbw5/v7GYdBYUQjLm5SkoNykCQHtcx431/KgdKumJvSrAO7Nwc3RQ5kd3OkHJC/hUJREluonVcToqRh3sRFPA6M1Mbhc3z6Pj1fkMRHQNJL0uPeul731lU37o1y49cqHr8GvvgWQRLBsmpM/P0j4XAXiooKcXl1CZDEzl4EJBEwAZBUwWAQsVgsFSRR11gmM8trimSa3"+"WypzZ31l5v2/vfk/4oAcv9aSGyUSz4gg/AIAOET0YQswIQWaNrnH+2OeSaY0BJN2+wDTi/OpCrwkxX1vW8q63p5cnaaB+Z/09u7x0nFJTVMiEajPsNCQaC6Ryb8THKcw/Tikho6zj//0RGUNV6gMZ1H8fmpH5iTHDlwsiOhO7FrN5RdP6aBIUj/pvJ2bkFbkxAzBzELELNCQQqgrJ5ST1/jqmYOJcHa7dYYGV5"+"TrQ3d+vfUU+b7IfrOIRCGBYD0o1VGmaHaB6DZkqvMD2hUfF1UAISkvE/+yqbCZ89+HgBtwgFOrBUzJgAAAABJRU5ErkJggg=="}return""};return _GcFillDialog})(spread.BaseDialog);spread._GcFillDialog=_GcFillDialog;var _GcFillMenuDialog=(function(_super){__extends(_GcFillMenuDialog,_super);function _GcFillMenuDialog(sheet){_super.call(this);this.sheet=sheet;this.init()}_GcFillMenuDialog.prototype.init=function(){var self=this;self.itemClass="fill-type-item";self.menuClass="wijspread-fill-menu-container";self._useWijmoTheme=false;self.smartTagContainer=$(".tag-container");self._initMenuDialog()};_GcFillMenuDialog.prototype.show=function(speed){if(arguments.length===0){return}_super.prototype.show.call(this,speed)};_GcFillMenuDialog.prototype._initMenuDialog=function(){var self=this;self.menuContainer=self.getContainer();self.menuContainer.addClass(self.menuClass);self.copyCells=self._createMenuItem("smartMenuCopyCells",self.itemClass,spread.SR.CopyCells,"0",true).appendTo(self.menuContainer);self.fillSeries=self._createMenuItem("smartMenuFillSeries",self.itemClass,spread.SR.FillSeries,"1").appendTo(self.menuContainer);self.fillFormattingOnly=self._createMenuItem("smartMenuFillFormattingOnly",self.itemClass,spread.SR.FillFormattingOnly,"2").appendTo(self.menuContainer);self.fillWithoutFormatting=self._createMenuItem("smartMenuFillWithoutFormatting",self.itemClass,spread.SR.FillWithoutFormatting,"3").appendTo(self.menuContainer)};_GcFillMenuDialog.prototype._createMenuItem=function(id,itemClass,text,inputValue,checked){var isTouchMode=this.sheet._isTouchMode;var width=isTouchMode?"160px":"150px";var height=isTouchMode?"25px":"20px";var outerDiv=$("<div>").css({width:width,height:height}).addClass("container-default-state "+itemClass);var inputDiv=$("<div>").addClass("menu-item-input").appendTo(outerDiv);var spanDiv=$("<div>").addClass("menu-item-text").appendTo(outerDiv);var itemInput=$("<input>").attr({id:id,value:inputValue,type:"radio",name:"fill-group",style:"display:none"}).appendTo(inputDiv);var itemSpan=$("<span>").text(text).appendTo(spanDiv);if(checked){inputDiv.addClass("check-image");itemInput.prop("checked","checked")}else
{itemInput.prop("checked","")}return outerDiv};_GcFillMenuDialog.prototype.useWijmoTheme=function(value){var self=this;if(typeof value==='undefined'){return self._useWijmoTheme}if(typeof value==="boolean"&&self._useWijmoTheme!==value){_super.prototype.useWijmoTheme.call(this,value);var itemOuterDiv=self.menuContainer.find("div"+'.'+self.itemClass),checkedItemOuterDiv=itemOuterDiv.find("input:checked").parent(),itemOuterDivWijmoClass="ui-state-default",itemOuterDivNotWijmoClass="container-default-state",checkedItemWijmoClass="ui-icon ui-icon-check",checkedItemNotWijmoClass="check-image";itemOuterDiv.removeClass(value?itemOuterDivNotWijmoClass:itemOuterDivWijmoClass);itemOuterDiv.addClass(value?itemOuterDivWijmoClass:itemOuterDivNotWijmoClass);checkedItemOuterDiv.removeClass(value?checkedItemNotWijmoClass:checkedItemWijmoClass);checkedItemOuterDiv.addClass(value?checkedItemWijmoClass:checkedItemNotWijmoClass);return self}return null};_GcFillMenuDialog.prototype._attachEvent=function(){var self=this;var $smartMenuItem=$("."+self.itemClass);$smartMenuItem.hover(function(){var className=self._useWijmoTheme?"ui-state-hover":"container-default-hover";$(this).addClass(className)},function(){var className=self._useWijmoTheme?"ui-state-hover":"container-default-hover";$(this).removeClass(className)});$smartMenuItem.click(function(){var className=self._useWijmoTheme?"ui-state-hover":"container-default-hover";var radioArray=$(this).find(":radio");var radio=radioArray[0];radio.checked=true;radioArray.change();self.smartTagContainer.click();self.smartTagContainer.mouseleave();$(this).removeClass(className);var fillType=parseInt(radio.value,10);self._changeFill(fillType)});var smartMenuRadio=self.menuContainer.find(":radio");$(smartMenuRadio).change(function(){var smartMenuRadioClassName=self._useWijmoTheme?"ui-icon ui-icon-check":"check-image";$(".menu-item-input").removeClass(smartMenuRadioClassName);$(this).parent().addClass(smartMenuRadioClassName)})};_GcFillMenuDialog.prototype._changeFill=function(fillType){var sheet=this.sheet,eventHandler=sheet._eventHandler;sheet._skipCloseDragFillSmartTag=true;sheet.suspendEvent();try
{spread.SpreadActions.undo.call(sheet)}finally
{sheet.resumeEvent()}sheet._skipCloseDragFillSmartTag=false;eventHandler.executeDragFillAction(eventHandler._currentFillRange,fillType);$(this).trigger("fillTypeChanged",fillType)};_GcFillMenuDialog.prototype.isOpen=function(){if($("."+this.menuClass).length>0){return true}return false};return _GcFillMenuDialog})(spread.BaseDialog)})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("search",["core.common","core.sheet_ui","core.stringResource"]);var keyword_null=null,Math_max=Math.max,Math_min=Math.min;(function(EnumeratorOption){EnumeratorOption[EnumeratorOption["All"]=0]="All";EnumeratorOption[EnumeratorOption["HasValue"]=1]="HasValue";EnumeratorOption[EnumeratorOption["HasStyle"]=2]="HasStyle"})(spread.EnumeratorOption||(spread.EnumeratorOption={}));var EnumeratorOption=spread.EnumeratorOption;var CellsEnumerator=(function(){function CellsEnumerator(sheet,searchCondition){this.actualEndRow=-1;this.isActualEndRowSet=false;this.isBlockRange=false;this.options=1;if(!sheet){throw new Error(wijmo.spread.SR.Exp_SheetIsNull);}var self=this;self.worksheet=sheet;self.sheetArea=searchCondition.sheetArea;self.searchOrder=searchCondition.searchOrder;self.rowStart=searchCondition.rowStart;self.columnStart=searchCondition.columnStart;self.rowEnd=searchCondition.rowEnd;self.columnEnd=searchCondition.columnEnd;self.findBeginRow=searchCondition.findBeginRow;self.findBeginColumn=searchCondition.findBeginColumn;self.init();self.block=self.worksheet}CellsEnumerator.prototype.init=function(){this.currentRow=-1;this.currentColumn=-1};CellsEnumerator.prototype.moveNext=function(){var self=this;if(self.currentRow===-1&&self.currentColumn===-1){if(self.rowStart<=self.rowEnd&&self.columnStart<=self.columnEnd){self.currentRow=self.findBeginRow;self.currentColumn=self.findBeginColumn;if(self.isIndexAcceptable(self.currentRow,self.currentColumn)){if(!self.skipCurrent()){return true}}}}if(self.rowStart<=self.rowEnd&&self.columnStart<=self.columnEnd){while(self.tryMoveNext()){if(!self.skipCurrent()){return true}}}self.currentRow=-1;self.currentColumn=-1;return false};CellsEnumerator.prototype.isIndexAcceptable=function(row,column){var self=this;if((self.options&1)>0){if(self.block){if(self.block.getValue(row,column,self.sheetArea)!==keyword_null||self.block.getFormula(row,column,self.sheetArea)!==keyword_null){return true}}}return self.options===0};CellsEnumerator.prototype.skipCurrent=function(){return false};CellsEnumerator.prototype.tryMoveNext=function(){var self=this;var r1=self.currentRow;var c1=self.currentColumn;var isValueFound=false;if((self.options&1)>0){var r1Temp={value:r1};var c1Temp={value:c1};if(self.nextValue(r1Temp,c1Temp)){r1=r1Temp.value;c1=c1Temp.value;isValueFound=true}}if(self.options===1){if(isValueFound){self.currentRow=r1;self.currentColumn=c1}else
{self.currentRow=-1;self.currentColumn=-1}}return!(self.currentRow===-1&&self.currentColumn===-1)};CellsEnumerator.prototype.nextValue=function(refRow,refColumn){while(this.next(refRow,refColumn)){if(this.isIndexAcceptable(refRow.value,refColumn.value)){return true}}return false};CellsEnumerator.prototype.nextZOrder=function(model,refRow,refColumn){var self=this;if(model){var c0=self.getNextNonEmptyColumnInRow(model,refRow.value,refColumn.value+1);if(c0!==-1){refColumn.value=c0;if(self.isZOrderOver(refRow.value,refColumn.value)){return true}}do
{var r1=model.nextNonNullRow(refRow.value);if(r1===-1||r1>self.rowEnd){refRow.value=-1}else
{if(r1!==-1){refRow.value=r1}if(r1!==-1&&r1<refRow.value){refRow.value=r1}}if(refRow.value!==-1){if(refRow.value===self.rowStart||self.isBlockRange){refColumn.value=self.columnStart-1}else
{refColumn.value=-1}do
{var c1=self.getNextNonEmptyColumnInRow(model,refRow.value,refColumn.value+1);if(c1===-1||c1>self.columnEnd){refColumn.value=-1}else
{if(c1!==-1){refColumn.value=c1}if(c1!==-1&&c1<refColumn.value){refColumn.value=c1}}if(refColumn.value!==-1){return self.isZOrderOver(refRow.value,refColumn.value)}}while(refColumn.value!==-1)}}while(refRow.value!==-1)}return false};CellsEnumerator.prototype.getNextNonEmptyColumnInRow=function(model,row,column){for(var i=column;i<=this.columnEnd;i++){if(model.getValue(row,i)!==keyword_null){return i}}return-1};CellsEnumerator.prototype.isZOrderOver=function(row,column){var self=this;if(self.isBlockRange){return(row>=self.rowStart&&row<=self.getActualEndRow()&&column>=self.columnStart&&column<=self.actualEndColumn())}else
{if(row>self.getActualEndRow()){return false}if(row===self.getActualEndRow()){if(column<0||column>self.actualEndColumn()){return false}}if(row<self.rowStart){return false}if(row===self.rowStart){if(column<self.columnStart){return false}}}return true};CellsEnumerator.prototype.getActualEndRow=function(){var self=this;if(self.isActualEndRowSet){return self.actualEndRow}else
{var endRowTemp=-1;var isSet=false;if((self.options&1)>0){if(self.block){var index=self.block.getRowCount(self.sheetArea)-1;endRowTemp=Math_max(endRowTemp,index);isSet=true}}endRowTemp=isSet?Math_min(endRowTemp,self.rowEnd):self.rowEnd;self.actualEndRow=endRowTemp;self.isActualEndRowSet=true;return self.actualEndRow}};CellsEnumerator.prototype.actualEndColumn=function(){return this.columnEnd};CellsEnumerator.prototype.next=function(refRow,refColumn){var self=this;if(self.searchOrder===0){var endColumnCurrenRow=self.getActualEndColumnZOrder(refRow.value);if(refColumn.value+1<=endColumnCurrenRow){refColumn.value+=1;return self.isZOrderOver(refRow.value,refColumn.value)}else
{if(refRow.value+1<=self.getActualEndRow()){refRow.value+=1;if(self.isBlockRange){refColumn.value=self.columnStart}else
{refColumn.value=0}return self.isZOrderOver(refRow.value,refColumn.value)}else
{return false}}}else if(self.searchOrder===1){var endRowCurrenColumn=self.getActualEndRowNOrder(refColumn.value);if(refRow.value+1<=endRowCurrenColumn){refRow.value+=1;return self.isNOrderOver(refRow.value,refColumn.value)}else
{if(refColumn.value+1<=self.actualEndColumn()){refColumn.value+=1;if(self.isBlockRange){refRow.value=self.rowStart}else
{refRow.value=0}return self.isNOrderOver(refRow.value,refColumn.value)}else
{return false}}}return false};CellsEnumerator.prototype.getActualEndColumnZOrder=function(row){var self=this;if(row>=self.rowStart&&row<=self.rowEnd){var endColumnTemp=-1;var isSet=false;if((self.options&1)>0){if(self.block){endColumnTemp=Math_max(endColumnTemp,self.block.getColumnCount(self.sheetArea)-1);isSet=true}}if(row===self.rowEnd||self.isBlockRange){endColumnTemp=isSet?Math_min(endColumnTemp,self.columnEnd):self.columnEnd}else
{endColumnTemp=isSet?Math_max(endColumnTemp,self.worksheet.getColumnCount(self.sheetArea)-1):self.worksheet.getColumnCount(self.sheetArea)-1}return endColumnTemp}else
{return-1}};CellsEnumerator.prototype.getActualEndRowNOrder=function(column){var self=this;if(column>=self.columnStart&&column<=self.columnEnd){var endRowTemp=-1;var isSet=false;if((self.options&1)>0){if(self.block){endRowTemp=Math_max(endRowTemp,self.rowEnd);isSet=true}}if(column===self.columnEnd||self.isBlockRange){endRowTemp=isSet?Math_min(endRowTemp,self.rowEnd):self.rowEnd}else
{endRowTemp=isSet?Math_max(endRowTemp,self.worksheet.getRowCount(self.sheetArea)-1):self.worksheet.getRowCount(self.sheetArea)-1}return endRowTemp}else
{return-1}};CellsEnumerator.prototype.isNOrderOver=function(row,column){var self=this;if(self.isBlockRange){return(row>=self.rowStart&&row<=self.getActualEndRow()&&column>=self.columnStart&&column<=self.actualEndColumn())}else
{if(column>self.actualEndColumn()){return false}if(column===self.actualEndColumn()){if(row<0||row>self.getActualEndRow()){return false}}if(column<self.columnStart){return false}if(column===self.columnStart){if(row<self.rowStart){return false}}}return true};CellsEnumerator.prototype.current=function(){var self=this;if(0<=self.currentRow&&self.currentRow<self.worksheet.getRowCount(self.sheetArea)&&0<=self.currentColumn&&self.currentColumn<self.worksheet.getColumnCount(self.sheetArea)){return new spread.Cell(self.worksheet,self.currentRow,self.currentColumn,self.sheetArea)}return keyword_null};return CellsEnumerator})();spread.CellsEnumerator=CellsEnumerator;var SearchCondition=(function(){function SearchCondition(){var self=this;self.startSheetIndex=-1;self.endSheetIndex=-1;self.searchString=keyword_null;self.searchFlags=0;self.searchOrder=0;self.searchTarget=1;self.sheetArea=3;self.rowStart=-1;self.columnStart=-1;self.rowEnd=-1;self.columnEnd=-1;self.findBeginRow=-1;self.findBeginColumn=-1}return SearchCondition})();spread.SearchCondition=SearchCondition;var SearchResult=(function(){function SearchResult(){var self=this;self.searchFoundFlag=0;self.foundSheetIndex=-1;self.foundRowIndex=-1;self.foundColumnIndex=-1;self.foundString=keyword_null}return SearchResult})();spread.SearchResult=SearchResult;(function(SearchFlags){SearchFlags[SearchFlags["None"]=0]="None";SearchFlags[SearchFlags["IgnoreCase"]=1]="IgnoreCase";SearchFlags[SearchFlags["ExactMatch"]=2]="ExactMatch";SearchFlags[SearchFlags["UseWildCards"]=4]="UseWildCards";SearchFlags[SearchFlags["BlockRange"]=8]="BlockRange"})(spread.SearchFlags||(spread.SearchFlags={}));var SearchFlags=spread.SearchFlags;(function(SearchOrder){SearchOrder[SearchOrder["ZOrder"]=0]="ZOrder";SearchOrder[SearchOrder["NOrder"]=1]="NOrder"})(spread.SearchOrder||(spread.SearchOrder={}));var SearchOrder=spread.SearchOrder;(function(SearchFoundFlags){SearchFoundFlags[SearchFoundFlags["None"]=0]="None";SearchFoundFlags[SearchFoundFlags["CellText"]=1]="CellText";SearchFoundFlags[SearchFoundFlags["CellFormula"]=8]="CellFormula"})(spread.SearchFoundFlags||(spread.SearchFoundFlags={}));var SearchFoundFlags=spread.SearchFoundFlags})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("binding",["core.common"]);var keyword_null=null,const_undefined="undefined";var CellBindingSource=(function(){function CellBindingSource(source){this._source=source;this.__cellBindingSource__=true}CellBindingSource.prototype.setValue=function(path,value){if(this._source&&path){_BindingHelper.setValueByPath(this._source,path,value)}};CellBindingSource.prototype.getValue=function(path){if(this._source&&path){return _BindingHelper.getValueByPath(this._source,path)}return keyword_null};CellBindingSource.prototype.getSource=function(){return this._source};return CellBindingSource})();spread.CellBindingSource=CellBindingSource;var _BindingManager=(function(){function _BindingManager(sheet){this._init();this._sheet=sheet}_BindingManager.prototype.bind=function(ds){var self=this;var oldDataSource=self._dataSource;if(oldDataSource&&$.isFunction(oldDataSource.dispose)){oldDataSource.dispose()}self._unSubscribeHandlers(self._dataSourceSubscriptions);self._unSubscribeHandlers(self._dataItemSubscriptions);self._init();self._dataSource=ds;if(ds){self._dataSourceType=self._getDataSourceType(ds);self.getDataItemType();if(self._sheet){if(ds.subscribe){self._dataSourceSubscriptions.push(ds.subscribe(self._dataChangedhandler,self))}if(ds.currentPosition&&ds.currentPosition.subscribe){self._dataSourceSubscriptions.push(ds.currentPosition.subscribe(self._currentPositionChangedhandler,self))}self.doDataItemChanged()}self._fields=self._getFieldsInfo()}};_BindingManager.prototype.doDataItemChanged=function(){var self=this;if(!self._sheet||!self._dataSource){return}var sheet=self._sheet;var dataItems=self._dataSource,dsType=self._dataSourceType;if(dataItems&&$.type(window.ko)!==const_undefined){self._unSubscribeHandlers(self._dataItemSubscriptions);var item=keyword_null;if(dsType===3){if(dataItems.currentPosition){var activeIndex=sheet.getActiveRowIndex();if(-1<=activeIndex&&activeIndex<dataItems.count()){dataItems.currentPosition(activeIndex)}}item=dataItems.currentItem()}else if(dsType===4){}else
{item=dataItems[sheet.getActiveColumnIndex()]}if(item){for(var x in item){if(item[x]&&$.isFunction(item[x].subscribe)){self._dataItemSubscriptions.push(item[x].subscribe(self._activeDataItemChangedhandler,keyword_null,keyword_null))}}}}};_BindingManager.prototype._activeDataItemChangedhandler=function(){if(this._sheet){this._sheet.repaint()}};_BindingManager.prototype._unSubscribeHandlers=function(subscriptions){if(subscriptions){for(var i in subscriptions){var s=subscriptions[i];if(s&&$.isFunction(s.dispose)){s.dispose()}}}};_BindingManager.prototype.getRowCount=function(){return this._getDataLength()};_BindingManager.prototype.getColumnCount=function(){if(this._fields){return this._fields.length}var ds=this._dataSource;if(ds){var drow=ds[0],drowType=$.type(drow);if(drowType==='null'||drowType==='string'||drowType==='number'){return 1}}return 0};_BindingManager.prototype.getSource=function(){return this._dataSource};_BindingManager.prototype.getFields=function(){return this._fields};_BindingManager.prototype.getDataItem=function(row){if(!this._dataSource){return keyword_null}var ds=this._dataSource,dsType=this._dataSourceType;if(dsType===1){return ds[row]}else if(dsType===4){return keyword_null}else if(dsType===2){return ds()[row]}else if(dsType===3){return ds.item(row)}return keyword_null};_BindingManager.prototype.getDataItemType=function(){if(!this._dataItemType){var rowCount=this.getRowCount();for(var i=0;i<rowCount;i++){var dataItem=this.getDataItem(i);if(dataItem){if(dataItem.entityAspect&&dataItem.entityType){this._dataItemType=dataItem.entityType}this._dataItemType=dataItem.constructor;break}}}return this._dataItemType};_BindingManager.prototype.getValue=function(row,col){var self=this;if(!self._dataSource){return keyword_null}var sheet=self._sheet,const_function='function',const_string='string';var ds=self._dataSource,dsType=self._dataSourceType;var colInfo,field;if(dsType!==4){if(row<0||self.getRowCount()<=row){return keyword_null}var colCount=sheet?sheet.getColumnCount():self.getColumnCount();if(col<0||colCount<=col){return keyword_null}if(sheet&&sheet._colInfos){colInfo=sheet._colInfos[col];if(colInfo){field=colInfo.name}}else if(self._fields){field=self._fields[col]}}if(dsType===1){var drow=ds[row];if(typeof(drow)===const_undefined||drow===keyword_null){return keyword_null}if(colInfo&&typeof(colInfo.value)===const_function){return colInfo.value(drow)}else if(field){return _BindingHelper.getValueByPath(drow,field)}else if($.type(drow)===const_string||$.isNumeric(drow)){if(col===0){return drow}}}else if(dsType===2){var drow=ds()[row];if(typeof(drow)===const_undefined||drow===keyword_null){return keyword_null}if(colInfo&&typeof(colInfo.value)===const_function){return colInfo.value(drow)}else if(field){return _BindingHelper.getValueByPath(drow,field)}else if($.type(drow)===const_string||$.isNumeric(drow)){if(col===0){return drow}}}else if(dsType===4){var path=sheet?sheet.getBindingPath(row,col):keyword_null;if(path){return ds.getValue(path)}}else if(dsType===3){var drow=ds.item(row);if(typeof(drow)===const_undefined||drow===keyword_null){return keyword_null}if(colInfo&&typeof(colInfo.value)===const_function){return colInfo.value(drow)}else if(field){return ds.getProperty(drow,field)}}return keyword_null};_BindingManager.prototype.setValue=function(row,col,value){var self=this;if(!self._dataSource){return false}var sheet=self._sheet,const_function='function',const_string='string';var ds=self._dataSource,dsType=self._dataSourceType;var colInfo,field;if(dsType!==4){if(row<0||self.getRowCount()<=row){return false}var colCount=sheet?sheet.getColumnCount():self.getColumnCount();if(col<0||colCount<=col){return false}if(sheet&&sheet._colInfos){colInfo=sheet._colInfos[col];if(colInfo){field=colInfo.name}}else if(self._fields){field=self._fields[col]}}var valueSet=false;if(dsType===1){var drow=ds[row];if(drow!==keyword_null&&typeof(drow)!==const_undefined){if(colInfo&&typeof(colInfo.value)===const_function){colInfo.value(drow,value);valueSet=true}else if(field){_BindingHelper.setValueByPath(drow,field,value);valueSet=true}else if($.type(drow)===const_string||$.isNumeric(drow)){if(col===0){ds[row]=value;valueSet=true}}}}else if(dsType===2){var drow=ds()[row];if(drow!==keyword_null&&typeof(drow)!==const_undefined){if(colInfo&&typeof(colInfo.value)===const_function){colInfo.value(drow,value);valueSet=true}else if(field){_BindingHelper.setValueByPath(drow,field,value);valueSet=true}else if($.type(drow)===const_string||$.isNumeric(drow)){if(col===0){ds()[row]=value;valueSet=true}}}}else if(dsType===4){var path=sheet?sheet.getBindingPath(row,col):keyword_null;if(path){ds.setValue(path,value);valueSet=true}}else if(dsType===3){var drow=ds.item(row);if(drow!==keyword_null&&typeof(drow)!==const_undefined){if(colInfo&&typeof(colInfo.value)===const_function){colInfo.value(drow,value);valueSet=true}else if(field){ds.setProperty(drow,field,value);valueSet=true}}}return valueSet};_BindingManager.prototype.addItems=function(row,count){var self=this;if(!self._dataSource||row>self.getRowCount()){return}var ds=self._dataSource,dsType=self._dataSourceType;var itemType=self.getDataItemType();if(dsType===3){if(!self._dataViewUpdating){self._updatingDataView=true;if(itemType){for(var i=0;i<count;i++){var newItem=itemType.createEntity?itemType.createEntity():new itemType;ds.add(newItem)}ds.commitEdit()}self._updatingDataView=false}}else if(dsType===4){}else
{for(var i=0;i<count;i++){if(itemType){var newItem=itemType.createEntity?itemType.createEntity():new itemType;ds.splice(row,0,newItem)}else
{ds.splice(row,0,keyword_null)}}}};_BindingManager.prototype.removeItems=function(row,count){var self=this;var rowCount=self.getRowCount();if(!self._dataSource||row>=rowCount){return}var ds=self._dataSource,dsType=self._dataSourceType;var removeCount=Math.min(count,rowCount-row);if(dsType===3){if(!self._dataViewUpdating){self._updatingDataView=true;for(var r=0;r<removeCount;r++){ds.remove(ds.item(row))}self._updatingDataView=false}}else if(dsType===4){}else
{if(row<rowCount){ds.splice(row,removeCount)}}};_BindingManager.isDataViewSource=function(ds){var wijmoTmp=window.wijmo;return(wijmoTmp&&wijmoTmp.data&&wijmoTmp.data.isDataView(ds))};_BindingManager.isCellBindingSource=function(ds){return((CellBindingSource&&ds instanceof CellBindingSource)||(ds&&ds.hasOwnProperty("__cellBindingSource__")))};_BindingManager.prototype._init=function(){var self=this;self._dataSource=keyword_null;self._dataSourceType=0;self._dataItemType=keyword_null;self._fields=keyword_null;self._dataSourceSubscriptions=[];self._dataItemSubscriptions=[]};_BindingManager.prototype._getDataSourceType=function(ds){if(ds){var ko=window.ko;if(_BindingManager.isDataViewSource(ds)){return 3}else if(ko&&ko.isObservable(ds)){return 2}else if(_BindingManager.isCellBindingSource(ds)){return 4}else if(ds&&!isNaN(ds.length)){return 1}}return 0};_BindingManager.prototype._getDataLength=function(){var ds=this._dataSource,dsType=this._dataSourceType;if(!ds){return 0}var rc=0;if(dsType===1){rc=ds.length}else if(dsType===2){rc=ds().length}else if(dsType===4){}else if(dsType===3){rc=ds.count()}return rc};_BindingManager.prototype._getFieldsInfo=function(){var self=this;var ds=self._dataSource,dsType=self._dataSourceType;var rc=0,cc=0,fields=keyword_null;if(dsType===1){rc=ds.length;if(rc>0){var ps=self._getProperties(ds[0]);if(ps&&ps.length>0){cc=ps.length;fields=[];for(var i=0;i<cc;i++){fields.push(ps[i])}}}}else if(dsType===2){rc=ds().length;if(rc>0){var ps=self._getProperties(ds()[0]);if(ps&&ps.length>0){cc=ps.length;fields=[];for(var i=0;i<cc;i++){fields.push(ps[i])}}}}else if(dsType===4){}else if(dsType===3){rc=ds.count();var ps=ds.getProperties();if(ps&&ps.length>0){cc=ps.length;fields=[];for(var i=0;i<cc;i++){fields.push(ps[i].name)}}}return fields};_BindingManager.prototype._getProperties=function(t){var ko=window.ko;var r=[];for(var n in t){if(!$.isFunction(t[n])){r.push(n)}else if(typeof(ko)!==const_undefined&&ko.isObservable(t[n])){r.push(n)}}return r};_BindingManager.prototype._dataChangedhandler=function(context){var self=this;if(self._updatingDataView){return}if(!self._sheet){return}var sheet=self._sheet;sheet._bindToAutoRefresh(function(context){if(context){self._dataViewUpdating=true;if(!isNaN(context.length)){sheet.setRowCount(context.length);if((self._fields===keyword_null||self._fields===undefined)&&$.isEmptyObject(sheet._colInfos)){self._fields=self._getFieldsInfo();sheet.setColumnCount(self.getColumnCount());sheet._colInfos={};var fields=self.getFields();if(fields){for(var i in fields){sheet._colInfos[i]={name:fields[i]}}}}}self._dataViewUpdating=false}})(context)};_BindingManager.prototype._currentPositionChangedhandler=function(context){var self=this;if(!self._dataSource||!self._sheet){return}var sheet=self._sheet,ds=self._dataSource;sheet._bindToAutoRefresh(function(context){if(ds.currentPosition){var pos=ds.currentPosition();if(sheet._activeRowIndex!==pos){sheet.setActiveCell(pos,sheet._activeColIndex)}}})(context)};_BindingManager.prototype.toJSON=function(){var ds=this._dataSource;if(!ds){return keyword_null}var type=this._dataSourceType;if(type===2){ds=ds()}else if(type===4){ds=ds.getSource()}else if(type===3){ds=ds.local}return{type:type,source:ds}};_BindingManager.prototype.fromJSON=function(jsData){var ds=(jsData&&jsData.source);if(!ds){return}var type=jsData.type;if(type===2){var ko=window.ko;if(ko&&ko.observableArray){this.bind(ko.observableArray(ds))}}else if(type===4){this.bind(new CellBindingSource(ds))}else
{this.bind(ds)}};return _BindingManager})();spread._BindingManager=_BindingManager;var _BindingHelper=(function(){function _BindingHelper(){}_BindingHelper.setValueByPath=function(obj,path,value){if(!obj||!path){return}var ko=window.ko,const_function='function';var subpaths=path.split("."),subpathCount=subpaths.length;for(var i=0;i<subpathCount;i++){var p=subpaths[i];if(!obj){break}if(i===subpathCount-1){if(typeof(obj[p])===const_function){if(typeof(ko)===const_undefined||!ko.isObservable(obj[p])||ko.isWriteableObservable(obj[p])){obj[p](value)}}else
{obj[p]=value}}else
{if(typeof(obj[p])===const_function){obj=obj[p]()}else
{obj=obj[p]}}}};_BindingHelper.getValueByPath=function(obj,path){if(!obj||!path){return keyword_null}var subpaths=path.split("."),subpathCount=subpaths.length;var i=0;do
{var p=subpaths[i];if(typeof(obj[p])==='function'){obj=obj[p]()}else
{obj=obj[p]}if(obj===keyword_null||typeof(obj)===const_undefined){return keyword_null}}while(++i<subpathCount);return obj};return _BindingHelper})();spread._BindingHelper=_BindingHelper;(function(_DataSourceType){_DataSourceType[_DataSourceType["None"]=0]="None";_DataSourceType[_DataSourceType["Normal"]=1]="Normal";_DataSourceType[_DataSourceType["Knockout"]=2]="Knockout";_DataSourceType[_DataSourceType["DataView"]=3]="DataView";_DataSourceType[_DataSourceType["CellBinding"]=4]="CellBinding"})(spread._DataSourceType||(spread._DataSourceType={}));var _DataSourceType=spread._DataSourceType})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("table",["core.common","core.stringResource"]);var keyword_null=null,keyword_undefined=undefined,Math_min=Math.min,Math_floor=Math.floor,const_function="function",const_undefined="undefined",const_column="Column";var SheetTable=(function(){function SheetTable(name,row,col,rowCount,colCount,style){var self=this;self._init();self._name=name;self._row=row;self._col=col;self._rowCount=rowCount;self._colCount=colCount;self._style=style;self._columns=[];for(var i=0;i<self._colCount;i++){var tc=new _TableColumn(i+1);self._columns.push(tc)}}SheetTable.prototype.range=function(){var self=this;return new spread.Range(self._row,self._col,self._rowCount,self._colCount)};SheetTable.prototype.dataRange=function(){var self=this;var r=(self._showHeader?self._row+1:self._row);var rc=(self._showHeader?self._rowCount-1:self._rowCount);if(self._showFooter){rc--}return new spread.Range(r,self._col,rc,self._colCount)};SheetTable.prototype.name=function(value){if(arguments.length===0){return this._name}this._name=value;return this};SheetTable.prototype.headerIndex=function(){return(this._showHeader?this._row:-1)};SheetTable.prototype.footerIndex=function(){return(this._showFooter?this._row+this._rowCount-1:-1)};SheetTable.prototype.showHeader=function(value){var self=this;if(arguments.length===0){return self._showHeader}if(self._showHeader===value){return self}var show=self._showHeader=value;if(show){if(self._row>0){self._row=self._row-1;self._rowCount=self._rowCount+1}self._syncHeader()}else
{var oldRow=self._row;self._row=self._row+1;self._rowCount=self._rowCount-1;self._clearSheetRow(oldRow);var rowFilter=self._rowFilter;if(rowFilter){rowFilter.unfilter();rowFilter.reset()}}return self};SheetTable.prototype.showFooter=function(value){var self=this;if(arguments.length===0){return self._showFooter}if(self._showFooter===value){return self}var show=self._showFooter=value;if(show){var sheet=self._getSheet();if(!sheet||self._row+self._rowCount<sheet.getRowCount()){self._rowCount=self._rowCount+1}self._syncFooter()}else
{var oldRow=self._row+self._rowCount-1;self._rowCount=self._rowCount-1;self._clearSheetRow(oldRow)}return self};SheetTable.prototype.bandRows=function(value){if(arguments.length===0){return this._bandRows}this._bandRows=value;return this};SheetTable.prototype.bandColumns=function(value){if(arguments.length===0){return this._bandColumns}this._bandColumns=value;return this};SheetTable.prototype.highlightFirstColumn=function(value){if(arguments.length===0){return this._highlightFirstColumn}this._highlightFirstColumn=value;return this};SheetTable.prototype.highlightLastColumn=function(value){if(arguments.length===0){return this._highlightLastColumn}this._highlightLastColumn=value;return this};SheetTable.prototype.style=function(value){if(arguments.length===0){return this._style}this._style=value;return this};SheetTable.prototype.rowFilter=function(){var self=this;if(!self._rowFilter&&spread.features.filter){self._rowFilter=new spread._TableFilter(self);self._rowFilter._updateRange(self.dataRange())}return self._rowFilter};SheetTable.prototype.refresh=function(){if(this._bindingManager){this._loadData()}};SheetTable.prototype.getColumnName=function(tableColumnIndex){var tcs=this._columns;if(tcs){if(0<=tableColumnIndex&&tableColumnIndex<tcs.length){var tc=tcs[tableColumnIndex];if(tc){var name=tc.name();if(name!==keyword_null){name=spread.util.toString(name)}return name}}}return keyword_null};SheetTable.prototype.setColumnName=function(tableColumnIndex,name){var self=this;if(self._hasColumnName(name)){return self}var tcs=self._columns;if(tcs&&0<=tableColumnIndex&&tableColumnIndex<tcs.length){var tc=tcs[tableColumnIndex];if(!tc){tc=self._columns[tableColumnIndex]=new _TableColumn;tc.id(self._newAutoId())}tc.name(name);if(self._showHeader){var sheet=self._getSheet();if(sheet){sheet.setText(self.headerIndex(),self._col+tableColumnIndex,name)}}}return self};SheetTable.prototype.getColumnFormula=function(tableColumnIndex){var tcs=this._columns;if(tcs&&0<=tableColumnIndex&&tableColumnIndex<tcs.length){var tc=tcs[tableColumnIndex];if(tc){var formula=tc.formula();return(formula?formula.toUpperCase():formula)}}return keyword_null};SheetTable.prototype.setColumnFormula=function(tableColumnIndex,formula){var self=this;var tcs=self._columns;if(tcs&&0<=tableColumnIndex&&tableColumnIndex<tcs.length){if(formula&&formula[0]==="="){formula=formula.substring(1)}var tc=tcs[tableColumnIndex];if(tc){tc.formula(formula)}if(self._showFooter){var sheet=self._getSheet();if(sheet){sheet.setFormula(self.footerIndex(),self._col+tableColumnIndex,formula)}}}return self};SheetTable.prototype.setColumnDataFormula=function(tableColumnIndex,formula){var tcs=this._columns;if(tcs&&0<=tableColumnIndex&&tableColumnIndex<tcs.length){if(formula&&formula[0]==="="){formula=formula.substring(1)}var tc=tcs[tableColumnIndex];if(tc){this._setColumnDataAreaFormulaCore(tc,formula)}}return this};SheetTable.prototype.getColumnValue=function(tableColumnIndex){var self=this;var tcs=self._columns;if(tcs&&0<=tableColumnIndex&&tableColumnIndex<tcs.length){var tc=tcs[tableColumnIndex];if(tc){if(self._showFooter&&tc.formula()){var sheet=self._getSheet();if(sheet){return sheet.getValue(self.footerIndex(),self._col+tableColumnIndex)}}return tc.value()}}return keyword_null};SheetTable.prototype.setColumnValue=function(tableColumnIndex,value){var self=this;var tcs=self._columns;if(tcs&&0<=tableColumnIndex&&tableColumnIndex<tcs.length){var tc=tcs[tableColumnIndex];if(tc){tc.value(value)}if(self._showFooter){var sheet=self._getSheet();if(sheet){sheet.setValue(self.footerIndex(),self._col+tableColumnIndex,value)}}}return self};SheetTable.prototype._setColumnDataAreaFormulaCore=function(column,formula,forceUpdate){if(typeof forceUpdate==="undefined"){forceUpdate=false}if(!forceUpdate&&column.dataAreaFormula()===formula){return}var self=this;column.dataAreaFormula(formula);var sheet=self._owner.getSheet();var suspendCalcServiceByThis=false;sheet.suspendCalcService();var columnIndexInSheet=self._getColumnIndex(column)+self._col;var row=self._row;var rowCount=self._rowCount;if(self.showHeader()){row++;rowCount--}if(self.showFooter()){rowCount--}for(var rowIndex=row;rowIndex<row+rowCount;rowIndex++){sheet.setFormula(rowIndex,columnIndexInSheet,formula)}sheet.resumeCalcService()};SheetTable.prototype._getColumnIndex=function(column){for(var i=0;i<this._columns.length;i++){if(this._columns[i]===column){return i}}return-1};SheetTable.prototype._setOwner=function(value){this._owner=value};SheetTable.prototype._getSheet=function(){if(this._owner){return this._owner.getSheet()}return keyword_null};SheetTable.prototype._init=function(){var self=this;self._name=keyword_null;self._row=-1;self._col=-1;self._rowCount=-1;self._colCount=-1;self._style=keyword_null;self._showHeader=true;self._showFooter=false;self._highlightFirstColumn=false;self._highlightLastColumn=false;self._bandRows=true;self._bandColumns=false;self._bindingManager=keyword_null;self._columns=keyword_null;self._rowFilter=keyword_null;self._owner=keyword_null};SheetTable.prototype._bind=function(bindingSource){var self=this;if(self._bindingManager){var sheet=self._getSheet();if(sheet){var drg=self.dataRange();sheet.clear(drg.row,drg.col,drg.rowCount,drg.colCount,3,1|16)}var cr=self.range();self._clear(cr.row,cr.col,cr.rowCount,cr.colCount)}self._bindingManager=bindingSource;if(bindingSource){var bs=self._bindingManager,rc=bs.getRowCount(),cc=bs.getColumnCount();if(self._showHeader){rc++}if(self._showFooter){rc++}self._rowCount=rc;self._colCount=cc;self._columns=[];var names=bs.getFields();for(var i=0;i<self._colCount;i++){var tc=new _TableColumn(i+1);self._columns.push(tc);if(names){tc.name(names[i])}}self._loadData()}};SheetTable.prototype._loadData=function(){var self=this;if(!self._bindingManager){return}var sheet=self._getSheet();if(!sheet){return}var bs=self._bindingManager,cr=self.dataRange();var row=cr.row,col=cr.col,rowCount=cr.rowCount,colCount=cr.colCount;for(var r=0;r<rowCount;r++){for(var c=0;c<colCount;c++){sheet.setValue(row+r,col+c,bs.getValue(r,c))}}};SheetTable.prototype._compose=function(row,col,dest){var self=this,style=self._style;if(!style){return}var sheet=self._getSheet();if(sheet&&sheet.getRowHeight(row)<=0){return}var headerRowIndex=self.headerIndex(),footerRowIndex=self.footerIndex(),isFirstRow=(self._showHeader?(row===self._row+1):(row===self._row)),isLastRow=(self._showFooter?(row===self._row+self._rowCount-2):(row===self._row+self._rowCount-1)),isFirstCol=(col===self._col),isLastCol=(col===self._col+self._colCount-1),firstTableRow=(self._showHeader?(row===headerRowIndex):(row===self._row)),lastTableRow=(self._showFooter?(row===footerRowIndex):(row===self._row+self._rowCount-1)),highlightLastColumnStyle=style.highlightLastColumnStyle(),highlightFirstColumnStyle=style.highlightFirstColumnStyle();if(headerRowIndex===row){var lastHeaderCellStyle=style.lastHeaderCellStyle();if(isLastCol&&self._highlightLastColumn&&lastHeaderCellStyle){lastHeaderCellStyle._compose(dest,true,true,true,true)}var firstHeaderCellStyle=style.firstHeaderCellStyle();if(isFirstCol&&self._highlightFirstColumn&&firstHeaderCellStyle){firstHeaderCellStyle._compose(dest,true,true,true,true)}var headerRowStyle=style.headerRowStyle();if(headerRowStyle){headerRowStyle._compose(dest,true,isFirstCol,true,isLastCol)}if(isLastCol&&self._highlightLastColumn&&highlightLastColumnStyle){highlightLastColumnStyle._compose(dest,true,true,false,true)}if(isFirstCol&&self._highlightFirstColumn&&highlightFirstColumnStyle){highlightFirstColumnStyle._compose(dest,true,true,false,true)}}else if(footerRowIndex===row){var lastFooterCellStyle=style.lastFooterCellStyle();if(isLastCol&&self._highlightLastColumn&&lastFooterCellStyle){lastFooterCellStyle._compose(dest,true,true,true,true)}var firstFooterCellStyle=style.firstFooterCellStyle();if(isFirstCol&&self._highlightFirstColumn&&firstFooterCellStyle){firstFooterCellStyle._compose(dest,true,true,true,true)}var footerRowStyle=style.footerRowStyle();if(footerRowStyle){footerRowStyle._compose(dest,true,isFirstCol,true,isLastCol)}if(isLastCol&&self._highlightLastColumn&&highlightLastColumnStyle){highlightLastColumnStyle._compose(dest,false,true,true,true)}if(isFirstCol&&self._highlightFirstColumn&&highlightFirstColumnStyle){highlightFirstColumnStyle._compose(dest,false,true,true,true)}}else
{if(isLastCol&&self._highlightLastColumn&&highlightLastColumnStyle){highlightLastColumnStyle._compose(dest,firstTableRow,true,lastTableRow,true)}if(isFirstCol&&self._highlightFirstColumn&&highlightFirstColumnStyle){highlightFirstColumnStyle._compose(dest,firstTableRow,true,lastTableRow,true)}var relativeRow=(self._showHeader?row-self._row-1:row-self._row),relativeCol=col-self._col;if(spread._CatchMgr._catched&&spread._CatchMgr._visibleRowIndexCatch){var relativeRowCatch=spread._CatchMgr._visibleRowIndexCatch;var r=self.dataRange().row;while(relativeRowCatch[r]===-1){r++}if(r>row){return}relativeRow=relativeRowCatch[row]-relativeRowCatch[r]}else if(sheet){var rCount=0,cCount=0;for(var r=self.dataRange().row;r<row;r++){if(sheet.getRowHeight(r)>0){rCount++}}for(var c=self._col;c<col;c++){if(sheet.getColumnWidth(c)>0){cCount++}}relativeRow=rCount;relativeCol=cCount}if(self.bandRows()){var firstRowStripSize=style.firstRowStripSize(),stripSize=firstRowStripSize+style.secondRowStripSize();if(stripSize>0){var alter=relativeRow%stripSize,firstRowStripStyle=style.firstRowStripStyle(),secondRowStripStyle=style.secondRowStripStyle();if(alter<firstRowStripSize&&firstRowStripStyle){var bandFirstRow=(alter===0);var bandLastRow=(isLastRow||alter===firstRowStripSize-1);firstRowStripStyle._compose(dest,bandFirstRow,isFirstCol,bandLastRow,isLastCol)}else if(alter>=firstRowStripSize&&secondRowStripStyle){var bandFirstRow=(alter===firstRowStripSize);var bandLastRow=(isLastRow||alter===stripSize-1);secondRowStripStyle._compose(dest,bandFirstRow,isFirstCol,bandLastRow,isLastCol)}}}if(self.bandColumns()){var firstColumnStripSize=style.firstColumnStripSize(),stripSize=firstColumnStripSize+style.secondColumnStripSize();if(stripSize>0){var alter=relativeCol%stripSize,firstColumnStripStyle=style.firstColumnStripStyle(),secondColumnStripStyle=style.secondColumnStripStyle();if(alter<firstColumnStripSize&&firstColumnStripStyle){var bandFirstCol=(alter===0);var bandLastCol=(isLastCol||alter===firstColumnStripSize-1);firstColumnStripStyle._compose(dest,isFirstRow,bandFirstCol,isLastRow,bandLastCol)}else if(alter>=firstColumnStripSize&&secondColumnStripStyle){var bandFirstCol=(alter===firstColumnStripSize);var bandLastCol=(isLastCol||alter===stripSize-1);secondColumnStripStyle._compose(dest,isFirstRow,bandFirstCol,isLastRow,bandLastCol)}}}}var wholeTableStyle=style.wholeTableStyle();if(wholeTableStyle){wholeTableStyle._compose(dest,firstTableRow,isFirstCol,lastTableRow,isLastCol)}};SheetTable.prototype._moveTo=function(row,col){var self=this;if(row===self._row&&col===self._col){return}var sheet=self._getSheet();if(sheet){if(row<0||sheet.getRowCount()<row+self._rowCount){throw new Error(spread.SR.Exp_TableMoveOutOfRange);}if(col<0||sheet.getColumnCount()<col+self._colCount){throw new Error(spread.SR.Exp_TableMoveOutOfRange);}sheet.moveTo(self._row,self._col,row,col,self._rowCount,self._colCount,1)}self._row=row;self._col=col;self._updateFilter()};SheetTable.prototype._resize=function(rowCount,colCount){var self=this;if(rowCount===self._rowCount&&colCount===self._colCount){return}var minRowCount=0,minColCount=1;if(self._showHeader){minRowCount=minRowCount+1}if(self._showFooter){minRowCount=minRowCount+1}if(rowCount<minRowCount||colCount<minColCount){throw new Error(spread.SR.Exp_TableResizeOutOfRange);}var sheet=self._getSheet();if(sheet){if(self._row+rowCount>sheet.getRowCount()||self._col+colCount>sheet.getColumnCount()){throw new Error(spread.SR.Exp_TableResizeOutOfRange);}}var tcs=self._columns;var oldColCount=self._colCount;self._colCount=colCount;if(colCount>oldColCount){var addedCount=colCount-oldColCount;for(var i=0;i<addedCount;i++){var tc=new _TableColumn;tcs.push(tc);tc.id(self._newAutoId())}if(self._showHeader){self._syncHeader(oldColCount,addedCount)}if(self._showFooter){self._syncFooter(oldColCount,addedCount)}}else if(colCount<oldColCount){var removedCount=oldColCount-colCount;tcs.splice(colCount,removedCount)}if(rowCount!==self._rowCount){var showFooter=self._showFooter,oldFooterIndex;if(showFooter){self._syncFooter();oldFooterIndex=self.footerIndex()}self._rowCount=rowCount;if(showFooter){self._syncSheetByFooter();self._clearSheetRow(oldFooterIndex)}}self._updateFilter()};SheetTable.prototype._updateFilter=function(){var self=this,rowFilter=self._rowFilter;if(rowFilter){rowFilter._updateRange(self.dataRange());rowFilter.reFilter()}};SheetTable.prototype._hasColumnName=function(name){if(name!==keyword_null){name=spread.util.toString(name)}for(var i=0;i<this._colCount;i++){var cn=this.getColumnName(i);if(name===cn){return true}}return false};SheetTable.prototype._setHeader=function(row,col,name){var self=this;if(!self._showHeader||self.headerIndex()!==row||!self._columns){return}var c=(col-self._col),tcs=self._columns;if(0<=c&&c<tcs.length){var tc=tcs[c];if(tc){tc.name(name)}}};SheetTable.prototype._setFooterFormula=function(row,col,formula){var self=this;if(!self._showFooter||self.footerIndex()!==row||!self._columns){return}var c=(col-self._col),tcs=self._columns;if(0<=c&&c<tcs.length){var tc=tcs[c];if(tc){tc.formula(formula)}}};SheetTable.prototype._setFooterValue=function(row,col,value){var self=this;if(!self._showFooter||self.footerIndex()!==row||!self._columns){return}var c=(col-self._col),tcs=self._columns;if(0<=c&&c<tcs.length){var tc=tcs[c];if(tc){tc.value(value)}}};SheetTable.prototype._getColumn=function(col){var cr=this.range();if(cr.col<=col&&col<cr.col+cr.colCount){return this._columns[col-cr.col]}return keyword_null};SheetTable.prototype._newAutoId=function(){if(!this._columns||this._columns.length===0){return-1}var tcs=this._columns;var ids=[],tc,count=tcs.length;for(var i=0;i<count;i++){tc=tcs[i];if(tc&&tc.isAutoId()){ids.push(tc.id())}}ids.sort(function(a,b){return(a-b)});count=ids.length;if(count>0){for(var i=0;i<count;i++){if(ids[i]!==i+1){return(i+1)}}return count+1}return 1};SheetTable.prototype._syncHeader=function(start,count){var self=this;var sheet;if(!self._showHeader||!self._columns||!(sheet=self._getSheet())){return}var row=self.headerIndex();var baseCol=self._col,tcs=self._columns,tc;if(start===keyword_undefined||start===keyword_null){start=0}if(count===keyword_undefined||count===keyword_null){count=tcs.length}var txt;for(var i=start;i<count;i++){tc=tcs[i];if(tc){txt=sheet.getText(row,baseCol+i);sheet.setFormula(row,baseCol+i,keyword_null);if(txt){tc.name(txt)}else
{sheet.setText(row,baseCol+i,tc.name())}}}};SheetTable.prototype._syncFooter=function(start,count){var self=this;var sheet;if(!self._showFooter||!self._columns||!(sheet=self._getSheet())){return}var row=self.footerIndex();var baseCol=self._col,tcs=self._columns,tc;if(start===keyword_undefined||start===keyword_null){start=0}if(count===keyword_undefined||count===keyword_null){count=tcs.length}var formula,value;for(var i=start;i<count;i++){tc=tcs[i];if(tc){formula=sheet.getFormula(row,baseCol+i);if(formula){tc.formula(formula)}else
{sheet.setFormula(row,baseCol+i,tc.formula())}value=sheet.getValue(row,baseCol+i);if(value!==keyword_undefined&&value!==keyword_null){tc.value(value)}else
{sheet.setValue(row,baseCol+i,tc.value())}}}};SheetTable.prototype._clearHeader=function(start,count){if(!this._showHeader||!this._columns){return}var tcs=this._columns,tc;if(start===keyword_undefined||start===keyword_null){start=0}if(count===keyword_undefined||count===keyword_null){count=tcs.length}var end=Math_min(tcs.length,start+count);for(var i=start;i<end;i++){tc=tcs[i];if(tc){tc.name(keyword_null)}}};SheetTable.prototype._clearFooter=function(start,count){if(!this._showFooter||!this._columns){return}var tcs=this._columns,tc;if(start===keyword_undefined||start===keyword_null){start=0}if(count===keyword_undefined||count===keyword_null){count=tcs.length}var end=Math_min(tcs.length,start+count);for(var i=start;i<end;i++){tc=tcs[i];if(tc){tc.formula(keyword_null);tc.value(keyword_null)}}};SheetTable.prototype._syncSheetByFooter=function(){var self=this;if(!self._showFooter||!self._columns){return}var sheet=self._getSheet();if(!sheet){return}var tcs=self._columns,count=tcs.length,tc;var baseCol=self._col,col;var footerIndex=self.footerIndex();for(var i=0;i<count;i++){tc=tcs[i];if(tc){col=baseCol+i;sheet.setValue(footerIndex,col,tc.value());sheet.setFormula(footerIndex,col,tc.formula())}}};SheetTable.prototype._clearSheetRow=function(row){var sheet=this._getSheet();if(!sheet){return}if(row<0||sheet.getRowCount()<=row){return}var baseCol=this._col,count=this._colCount,col;for(var i=0;i<count;i++){col=baseCol+i;sheet.setFormula(row,col,keyword_null);sheet.setValue(row,col,keyword_null)}};SheetTable.prototype._addRows=function(row,count){var self=this;if(row>=self._row+self._rowCount){return}var columns=self._columns;var firstRow=self._row,lastRow=self._row+self._rowCount-1;if(row<=firstRow){self._row+=count}else if(row<=lastRow){self._rowCount+=count;var sheet=self._owner.getSheet();sheet.suspendCalcService();for(var i=0;i<columns.length;i++){var column=columns[i];var dataAreaFormula=column.dataAreaFormula();if(dataAreaFormula){var columnIndexInSheet=i+self._col;for(var rowIndex=row;rowIndex<row+count;rowIndex++){sheet.setFormula(rowIndex,columnIndexInSheet,dataAreaFormula)}}}sheet.resumeCalcService()}if(self._rowFilter){self._rowFilter._addRows(row,count)}};SheetTable.prototype._addColumns=function(col,count){var self=this;if(col>=self._col+self._colCount){return}if(col<=self._col){self._col+=count}else if(col<self._col+self._colCount){self._colCount+=count;var tcs=self._columns;if(tcs){for(var i=0;i<count;i++){var tc=new _TableColumn;tcs.splice(col+i-self._col,0,tc);tc.id(self._newAutoId())}}}if(self._rowFilter){self._rowFilter._addColumns(col,count)}};SheetTable.prototype._removeRows=function(row,count){var self=this;if(row>=self._row+self._rowCount){return}var firstRow=self._row,lastRow=self._row+self._rowCount-1;if(row<firstRow){if(row+count>firstRow){}else
{self._row-=count}}else if(row===firstRow){if(self._showHeader){}else
{self._rowCount-=Math_min(lastRow-row+1,count)}}else if(row<=lastRow){self._rowCount-=Math_min(lastRow-row+1,count);if(row===lastRow&&self._showFooter){self._showFooter=false}}if(self._rowFilter){self._rowFilter._removeRows(row,count)}};SheetTable.prototype._removeColumns=function(col,count){var self=this;if(col>=self._col+self._colCount){return}var firstCol=self._col,lastCol=self._col+self._colCount-1;if(col<firstCol){if(col+count<=firstCol){self._col-=count}else
{self._col=col;self._colCount-=(col+count-firstCol);var tcs=self._columns;if(tcs){tcs.splice(0,col+count-firstCol)}}}else
{self._colCount-=Math_min(lastCol-col+1,count);var tcs=self._columns;if(tcs){tcs.splice(col-firstCol,Math_min(lastCol-col+1,count))}}if(self._rowFilter){self._rowFilter._removeColumns(col,count)}};SheetTable.prototype._clear=function(row,col,rowCount,colCount){var self=this;var maxRowCount=rowCount,maxColCount=colCount;var sheet=self._getSheet();if(sheet){maxRowCount=sheet.getRowCount();maxColCount=sheet.getColumnCount()}var r=row<0?0:row;var c=col<0?0:col;var rc=row<0?maxRowCount:rowCount;var cc=col<0?maxColCount:colCount;var clearRange=new spread.Range(r,c,rc,cc);var headerIndex=self.headerIndex();if(self._showHeader&&r<=headerIndex&&headerIndex<r+rc){var headerRange=new spread.Range(headerIndex,self._col,1,self._colCount);var cr=clearRange.getIntersect(headerRange,maxRowCount,maxColCount);if(cr){self._clearHeader(cr.col-self._col,cr.colCount)}}var footerIndex=self.footerIndex();if(self._showFooter&&r<=footerIndex&&footerIndex<r+rc){var footerRange=new spread.Range(footerIndex,self._col,1,self._colCount);var cr=clearRange.getIntersect(footerRange,maxRowCount,maxColCount);if(cr){self._clearFooter(cr.col-self._col,cr.colCount)}}if(self._rowFilter){self._rowFilter._clear(row,col,rowCount,colCount)}};SheetTable.prototype._copy=function(fromRow,fromCol,toRow,toCol,rowCount,colCount){};SheetTable.prototype._move=function(fromRow,fromCol,toRow,toCol,rowCount,colCount){};SheetTable.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"name":return value===keyword_null;case"row":return value===-1;case"col":return value===-1;case"rowCount":return value===-1;case"colCount":return value===-1;case"showHeader":return value===true;case"showFooter":return value===false;case"highlightFirstColumn":return value===false;case"highlightLastColumn":return value===false;case"bandRows":return value===true;case"bandColumns":return value===false;case"style":return value===keyword_null;case"dataBinding":return value===keyword_null;case"columns":return value===keyword_null;case"rowFilter":return value===keyword_null;default:return false}};SheetTable.prototype.toJSON=function(){var self=this;var dictData={name:self._name,row:self._row,col:self._col,rowCount:self._rowCount,colCount:self._colCount,showHeader:self._showHeader,showFooter:self._showFooter,highlightFirstColumn:self._highlightFirstColumn,highlightLastColumn:self._highlightLastColumn,bandRows:self._bandRows,bandColumns:self._bandColumns,style:(self._style?self._style.toJSON():keyword_null),dataBinding:(self._bindingManager?self._bindingManager.toJSON():keyword_null),columns:self._columns,rowFilter:(self._rowFilter?self._rowFilter.toJSON():keyword_null)};var jsData={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){jsData[item]=value}}if($.isEmptyObject(jsData)){return keyword_undefined}return jsData};SheetTable.prototype.fromJSON=function(jsData){if(!jsData){return}var self=this;if(typeof jsData.name!==const_undefined){self._name=jsData.name}if(typeof jsData.row!==const_undefined){self._row=jsData.row}if(typeof jsData.col!==const_undefined){self._col=jsData.col}if(typeof jsData.rowCount!==const_undefined){self._rowCount=jsData.rowCount}if(typeof jsData.colCount!==const_undefined){self._colCount=jsData.colCount}if(typeof jsData.showHeader!==const_undefined){self._showHeader=jsData.showHeader}if(typeof jsData.showFooter!==const_undefined){self._showFooter=jsData.showFooter}if(typeof jsData.highlightFirstColumn!==const_undefined){self._highlightFirstColumn=jsData.highlightFirstColumn}if(typeof jsData.highlightLastColumn!==const_undefined){self._highlightLastColumn=jsData.highlightLastColumn}if(typeof jsData.bandRows!==const_undefined){self._bandRows=jsData.bandRows}if(typeof jsData.bandColumns!==const_undefined){self._bandColumns=jsData.bandColumns}if(jsData.style){var tableStyle=new TableStyle;tableStyle.fromJSON(jsData.style);self._style=tableStyle}if(jsData.dataSource&&spread.features.binding){self._bindingManager=new spread._BindingManager;self._bindingManager.bind(jsData.dataSource)}if(jsData.dataBinding&&spread.features.binding){self._bindingManager=new spread._BindingManager;self._bindingManager.fromJSON(jsData.dataBinding)}if(jsData.columns){var columnsData=jsData.columns,count=columnsData.length;var tcs=[],tc,data;for(var i=0;i<count;i++){data=columnsData[i];tc=new _TableColumn;var id=data.id?data.id:data._id;var name=data.name?data.name:data._name;var fvalue=data.fvalue?data.fvalue:data._fvalue;var fformula=data.fformular?data.fformula:data._fformula;var dataAreaFormula=data.dataAreaFormula?data.dataAreaFormula:data._dataAreaFormula;tc.id(id).name(name).value(fvalue).formula(fformula).dataAreaFormula(dataAreaFormula);tcs.push(tc)}self._columns=tcs;for(var i=0;i<count;i++){tc=tcs[i];if(!tc.isAutoId()){tc.id(self._newAutoId())}}}if(jsData.rowFilter&&spread.features.filter){var rowFilterData=jsData.rowFilter;var filter=new spread._TableFilter;filter.table(self);filter.fromJSON(rowFilterData);self._rowFilter=filter}};SheetTable.prototype.startRow=function(){return this._row};SheetTable.prototype.startColumn=function(){return this._col};SheetTable.prototype.endRow=function(){return this._row+this._rowCount-1};SheetTable.prototype.endColumn=function(){return this._col+this._colCount-1};SheetTable.prototype.hasHeadersRow=function(){return this._showHeader};SheetTable.prototype.hasTotalsRow=function(){return this._showFooter};SheetTable.prototype.tableName=function(){return this._name};SheetTable.prototype.getColumnIndexInTable=function(columnName){for(var i=0;i<this._columns.length;i++){var column=this._columns[i];if(column.name()===columnName||column.name().toString().toLowerCase()===columnName.toLowerCase()){return i}}return-1};SheetTable.prototype.source=function(){return this._owner.getSheet()._getSheetSource()};return SheetTable})();spread.SheetTable=SheetTable;var _TableColumn=(function(){function _TableColumn(id){var self=this;self._id=id;self._name=keyword_null;self._fformula=keyword_null;self._fvalue=keyword_null}_TableColumn.prototype.id=function(value){var self=this;if(arguments.length===0){return self._id}self._id=value;if(!self._name){self._name=const_column+self._id}return self};_TableColumn.prototype.isAutoId=function(){if(this._id>0){return true}return false};_TableColumn.prototype.name=function(value){var self=this;if(arguments.length===0){return(self._name?self._name:const_column+self._id)}self._name=value;return self};_TableColumn.prototype.value=function(value){if(arguments.length===0){return this._fvalue}this._fvalue=value;return this};_TableColumn.prototype.dataAreaFormula=function(value){if(arguments.length===0){return this._dataAreaFormula}this._dataAreaFormula=value;return this};_TableColumn.prototype.formula=function(value){if(arguments.length===0){return this._fformula}this._fformula=value;return this};_TableColumn.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"name":return value===keyword_null;case"fformula":return value===keyword_null;case"fvalue":return value===keyword_null;default:return false}};_TableColumn.prototype.toJSON=function(){var self=this;var dictData={id:self._id,name:self._name,fformula:self._fformula,dataAreaFormula:self._dataAreaFormula,fvalue:self._fvalue};var jsonData={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){jsonData[item]=value}}if($.isEmptyObject(jsonData)){return keyword_undefined}return jsonData};return _TableColumn})();spread._TableColumn=_TableColumn;var TableStyleInfo=(function(){function TableStyleInfo(backColor,foreColor,font,borderLeft,borderTop,borderRight,borderBottom,borderHorizontal,borderVertical){var self=this;self.backColor=backColor;self.foreColor=foreColor;self.font=font;self.borderLeft=borderLeft;self.borderTop=borderTop;self.borderRight=borderRight;self.borderBottom=borderBottom;self.borderHorizontal=borderHorizontal;self.borderVertical=borderVertical}TableStyleInfo.prototype._compose=function(dest,firstRow,firstCol,lastRow,lastCol){var self=this;if(typeof(self.backColor)!==const_undefined&&typeof(dest.backColor)===const_undefined){dest.backColor=self.backColor}if(typeof(self.foreColor)!==const_undefined&&typeof(dest.foreColor)===const_undefined){dest.foreColor=self.foreColor}if(typeof(self.font)!==const_undefined&&typeof(dest.font)===const_undefined){dest.font=self.font}if(firstCol&&typeof(self.borderLeft)!==const_undefined&&typeof(dest.borderLeft)===const_undefined){dest.borderLeft=self.borderLeft}if(firstRow&&typeof(self.borderTop)!==const_undefined&&typeof(dest.borderTop)===const_undefined){dest.borderTop=self.borderTop}if(lastCol&&typeof(self.borderRight)!==const_undefined&&typeof(dest.borderRight)===const_undefined){dest.borderRight=self.borderRight}if(lastRow&&typeof(self.borderBottom)!==const_undefined&&typeof(dest.borderBottom)===const_undefined){dest.borderBottom=self.borderBottom}if(!lastRow&&typeof(self.borderHorizontal)!==const_undefined&&typeof(dest.borderBottom)===const_undefined){dest.borderBottom=self.borderHorizontal}if(!lastCol&&typeof(self.borderVertical)!==const_undefined&&typeof(dest.borderRight)===const_undefined){dest.borderRight=self.borderVertical}};TableStyleInfo.prototype.toJSON=function(){var self=this;return{backColor:self.backColor,foreColor:self.foreColor,font:self.font,borderLeft:(self.borderLeft?self.borderLeft.toJSON():self.borderLeft),borderTop:(self.borderTop?self.borderTop.toJSON():self.borderTop),borderRight:(self.borderRight?self.borderRight.toJSON():self.borderRight),borderBottom:(self.borderBottom?self.borderBottom.toJSON():self.borderBottom),borderHorizontal:(self.borderHorizontal?self.borderHorizontal.toJSON():self.borderHorizontal),borderVertical:(self.borderVertical?self.borderVertical.toJSON():self.borderVertical)}};TableStyleInfo.prototype.fromJSON=function(jsData){if(!jsData){return}var self=this;if(typeof(jsData.backColor)!==const_undefined){self.backColor=jsData.backColor}if(typeof(jsData.foreColor)!==const_undefined){self.foreColor=jsData.foreColor}if(typeof(jsData.font)!==const_undefined){self.font=jsData.font}if(typeof(jsData.borderLeft)!==const_undefined){var left=new spread.LineBorder;left.fromJSON(jsData.borderLeft);self.borderLeft=left}if(typeof(jsData.borderTop)!==const_undefined){var top=new spread.LineBorder;top.fromJSON(jsData.borderTop);self.borderTop=top}if(typeof(jsData.borderRight)!==const_undefined){var right=new spread.LineBorder;right.fromJSON(jsData.borderRight);self.borderRight=right}if(typeof(jsData.borderBottom)!==const_undefined){var bottom=new spread.LineBorder;bottom.fromJSON(jsData.borderBottom);self.borderBottom=bottom}if(typeof(jsData.borderHorizontal)!==const_undefined){var horizontal=new spread.LineBorder;horizontal.fromJSON(jsData.borderHorizontal);self.borderHorizontal=horizontal}if(typeof(jsData.borderVertical)!==const_undefined){var vertical=new spread.LineBorder;vertical.fromJSON(jsData.borderVertical);self.borderVertical=vertical}};return TableStyleInfo})();spread.TableStyleInfo=TableStyleInfo;var TableStyle=(function(){function TableStyle(){this._lastFooterCellStyle=keyword_null;this._init()}TableStyle.prototype.name=function(value){if(arguments.length===0){return this._name}this._name=value;return this};TableStyle.prototype.wholeTableStyle=function(value){if(arguments.length===0){return this._wholeTableStyle}this._wholeTableStyle=value;return this};TableStyle.prototype.headerRowStyle=function(value){if(arguments.length===0){return this._headerRowStyle}this._headerRowStyle=value;return this};TableStyle.prototype.footerRowStyle=function(value){if(arguments.length===0){return this._footerRowStyle}this._footerRowStyle=value;return this};TableStyle.prototype.firstRowStripStyle=function(value){if(arguments.length===0){return this._firstRowStripStyle}this._firstRowStripStyle=value;return this};TableStyle.prototype.secondRowStripStyle=function(value){if(arguments.length===0){return this._secondRowStripStyle}this._secondRowStripStyle=value;return this};TableStyle.prototype.firstRowStripSize=function(value){if(arguments.length===0){return this._firstRowStripSize}this._firstRowStripSize=value;return this};TableStyle.prototype.secondRowStripSize=function(value){if(arguments.length===0){return this._secondRowStripSize}this._secondRowStripSize=value;return this};TableStyle.prototype.firstColumnStripStyle=function(value){if(arguments.length===0){return this._firstColumnStripStyle}this._firstColumnStripStyle=value;return this};TableStyle.prototype.secondColumnStripStyle=function(value){if(arguments.length===0){return this._secondColumnStripStyle}this._secondColumnStripStyle=value;return this};TableStyle.prototype.firstColumnStripSize=function(value){if(arguments.length===0){return this._firstColumnStripSize}this._firstColumnStripSize=value;return this};TableStyle.prototype.secondColumnStripSize=function(value){if(arguments.length===0){return this._secondColumnStripSize}this._secondColumnStripSize=value;return this};TableStyle.prototype.highlightFirstColumnStyle=function(value){if(arguments.length===0){return this._highlightFirstColumnStyle}this._highlightFirstColumnStyle=value;return this};TableStyle.prototype.highlightLastColumnStyle=function(value){if(arguments.length===0){return this._highlightLastColumnStyle}this._highlightLastColumnStyle=value;return this};TableStyle.prototype.firstHeaderCellStyle=function(value){if(arguments.length===0){return this._firstHeaderCellStyle}this._firstHeaderCellStyle=value;return this};TableStyle.prototype.lastHeaderCellStyle=function(value){if(arguments.length===0){return this._lastHeaderCellStyle}this._lastHeaderCellStyle=value;return this};TableStyle.prototype.firstFooterCellStyle=function(value){if(arguments.length===0){return this._firstFooterCellStyle}this._firstFooterCellStyle=value;return this};TableStyle.prototype.lastFooterCellStyle=function(value){if(arguments.length===0){return this._lastFooterCellStyle}this._lastFooterCellStyle=value;return this};TableStyle.prototype._init=function(){var self=this;self._name=keyword_null;self._headerRowStyle=keyword_null;self._footerRowStyle=keyword_null;self._wholeTableStyle=keyword_null;self._highlightLastColumnStyle=keyword_null;self._highlightFirstColumnStyle=keyword_null;self._firstRowStripStyle=keyword_null;self._secondRowStripStyle=keyword_null;self._firstColumnStripStyle=keyword_null;self._secondColumnStripStyle=keyword_null;self._firstHeaderCellStyle=keyword_null;self._lastHeaderCellStyle=keyword_null;self._firstFooterCellStyle=keyword_null;self._lastFooterCellStyle=keyword_null;self._firstRowStripSize=1;self._secondRowStripSize=1;self._firstColumnStripSize=1;self._secondColumnStripSize=1};TableStyle.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"name":return value===keyword_null;case"headerRowStyle":return value===keyword_null;case"footerRowStyle":return value===keyword_null;case"wholeTableStyle":return value===keyword_null;case"highlightLastColumnStyle":return value===keyword_null;case"highlightFirstColumnStyle":return value===keyword_null;case"firstRowStripStyle":return value===keyword_null;case"secondRowStripStyle":return value===keyword_null;case"firstColumnStripStyle":return value===keyword_null;case"secondColumnStripStyle":return value===keyword_null;case"firstHeaderCellStyle":return value===keyword_null;case"lastHeaderCellStyle":return value===keyword_null;case"firstFooterCellStyle":return value===keyword_null;case"lastFooterCellStyle":return value===keyword_null;case"firstRowStripSize":return value===1;case"secondRowStripSize":return value===1;case"firstColumnStripSize":return value===1;case"secondColumnStripSize":return value===1;default:return false}};TableStyle.prototype.toJSON=function(){var self=this;var json={name:self._name,firstRowStripSize:self._firstRowStripSize,secondRowStripSize:self._secondRowStripSize,firstColumnStripSize:self._firstColumnStripSize,secondColumnStripSize:self._secondColumnStripSize};var style=self._headerRowStyle;json.headerRowStyle=style?style.toJSON():style;style=self._footerRowStyle;json.footerRowStyle=style?style.toJSON():style;style=self._wholeTableStyle;json.wholeTableStyle=style?style.toJSON():style;style=self._highlightLastColumnStyle;json.highlightLastColumnStyle=style?style.toJSON():style;style=self._highlightFirstColumnStyle;json.highlightFirstColumnStyle=style?style.toJSON():style;style=self._firstRowStripStyle;json.firstRowStripStyle=style?style.toJSON():style;style=self._secondRowStripStyle;json.secondRowStripStyle=style?style.toJSON():style;style=self._firstColumnStripStyle;json.firstColumnStripStyle=style?style.toJSON():style;style=self._secondColumnStripStyle;json.secondColumnStripStyle=style?style.toJSON():style;style=self._firstHeaderCellStyle;json.firstHeaderCellStyle=style?style.toJSON():style;style=self._lastHeaderCellStyle;json.lastHeaderCellStyle=style?style.toJSON():style;style=self._firstFooterCellStyle;json.firstFooterCellStyle=style?style.toJSON():style;style=self._lastFooterCellStyle;json.lastFooterCellStyle=style?style.toJSON():style;var jsData={};for(var item in json){var value=json[item];if(!self._isDefaultValue(item,value)){jsData[item]=value}}if($.isEmptyObject(jsData)){return keyword_undefined}return jsData};TableStyle.prototype.fromJSON=function(jsData){if(!jsData){return}var self=this;var name=typeof jsData.name!==const_undefined?jsData.name:jsData._name;if(typeof name!==const_undefined){self._name=name}var firstRowStripSize=typeof jsData.firstRowStripSize!==const_undefined?jsData.firstRowStripSize:jsData._firstRowStripSize;if(typeof firstRowStripSize!==const_undefined){self._firstRowStripSize=firstRowStripSize}var secondRowStripSize=typeof jsData.secondRowStripSize!==const_undefined?jsData.secondRowStripSize:jsData._secondRowStripSize;if(typeof secondRowStripSize!==const_undefined){self._secondRowStripSize=secondRowStripSize}var firstColumnStripSize=typeof jsData.firstColumnStripSize!==const_undefined?jsData.firstColumnStripSize:jsData._firstColumnStripSize;if(typeof firstColumnStripSize!==const_undefined){self._firstColumnStripSize=firstColumnStripSize}var secondColumnStripSize=typeof jsData.secondColumnStripSize!==const_undefined?jsData.secondColumnStripSize:jsData._secondColumnStripSize;if(typeof secondColumnStripSize!==const_undefined){self._secondColumnStripSize=secondColumnStripSize}var headerRowStyle=typeof jsData.headerRowStyle!==const_undefined?jsData.headerRowStyle:jsData._headerRowStyle;if(typeof headerRowStyle!==const_undefined){var style=new TableStyleInfo;style.fromJSON(headerRowStyle);self._headerRowStyle=style}var footerRowStyle=typeof jsData.footerRowStyle!==const_undefined?jsData.footerRowStyle:jsData._footerRowStyle;if(typeof footerRowStyle!==const_undefined){var style=new TableStyleInfo;style.fromJSON(footerRowStyle);self._footerRowStyle=style}var wholeTableStyle=typeof jsData.wholeTableStyle!==const_undefined?jsData.wholeTableStyle:jsData._wholeTableStyle;if(typeof wholeTableStyle!==const_undefined){var style=new TableStyleInfo;style.fromJSON(wholeTableStyle);self._wholeTableStyle=style}var highlightLastColumnStyle=typeof jsData.highlightLastColumnStyle!==const_undefined?jsData.highlightLastColumnStyle:jsData._highlightLastColumnStyle;if(typeof highlightLastColumnStyle!==const_undefined){var style=new TableStyleInfo;style.fromJSON(highlightLastColumnStyle);self._highlightLastColumnStyle=style}var highlightFirstColumnStyle=typeof jsData.highlightFirstColumnStyle!==const_undefined?jsData.highlightFirstColumnStyle:jsData._highlightFirstColumnStyle;if(typeof highlightFirstColumnStyle!==const_undefined){var style=new TableStyleInfo;style.fromJSON(highlightFirstColumnStyle);self._highlightFirstColumnStyle=style}var firstRowStripStyle=typeof jsData.firstRowStripStyle!==const_undefined?jsData.firstRowStripStyle:jsData._firstRowStripStyle;if(typeof firstRowStripStyle!==const_undefined){var style=new TableStyleInfo;style.fromJSON(firstRowStripStyle);self._firstRowStripStyle=style}var secondRowStripStyle=typeof jsData.secondRowStripStyle!==const_undefined?jsData.secondRowStripStyle:jsData._secondRowStripStyle;if(typeof secondRowStripStyle!==const_undefined){var style=new TableStyleInfo;style.fromJSON(secondRowStripStyle);self._secondRowStripStyle=style}var firstColumnStripStyle=typeof jsData.firstColumnStripStyle!==const_undefined?jsData.firstColumnStripStyle:jsData._firstColumnStripStyle;if(typeof firstColumnStripStyle!==const_undefined){var style=new TableStyleInfo;style.fromJSON(firstColumnStripStyle);self._firstColumnStripStyle=style}var secondColumnStripStyle=typeof jsData.secondColumnStripStyle!==const_undefined?jsData.secondColumnStripStyle:jsData._secondColumnStripStyle;if(typeof secondColumnStripStyle!==const_undefined){var style=new TableStyleInfo;style.fromJSON(secondColumnStripStyle);self._secondColumnStripStyle=style}var firstHeaderCellStyle=typeof jsData.firstHeaderCellStyle!==const_undefined?jsData.firstHeaderCellStyle:jsData._firstHeaderCellStyle;if(typeof firstHeaderCellStyle!==const_undefined){var style=new TableStyleInfo;style.fromJSON(firstHeaderCellStyle);self._firstHeaderCellStyle=style}var lastHeaderCellStyle=typeof jsData.lastHeaderCellStyle!==const_undefined?jsData.lastHeaderCellStyle:jsData._lastHeaderCellStyle;if(typeof lastHeaderCellStyle!==const_undefined){var style=new TableStyleInfo;style.fromJSON(lastHeaderCellStyle);self._lastHeaderCellStyle=style}var firstFooterCellStyle=typeof jsData.firstFooterCellStyle!==const_undefined?jsData.firstFooterCellStyle:jsData._firstFooterCellStyle;if(typeof firstFooterCellStyle!==const_undefined){var style=new TableStyleInfo;style.fromJSON(firstFooterCellStyle);self._firstFooterCellStyle=style}var lastFooterCellStyle=typeof jsData.lastFooterCellStyle!==const_undefined?jsData.lastFooterCellStyle:jsData._lastFooterCellStyle;if(typeof lastFooterCellStyle!==const_undefined){var style=new TableStyleInfo;style.fromJSON(lastFooterCellStyle);self._lastFooterCellStyle=style}};return TableStyle})();spread.TableStyle=TableStyle;var TableStyles=(function(){function TableStyles(){}TableStyles.light1=function(){return TableStyles._getLightStyle(1)};TableStyles.light2=function(){return TableStyles._getLightStyle(2)};TableStyles.light3=function(){return TableStyles._getLightStyle(3)};TableStyles.light4=function(){return TableStyles._getLightStyle(4)};TableStyles.light5=function(){return TableStyles._getLightStyle(5)};TableStyles.light6=function(){return TableStyles._getLightStyle(6)};TableStyles.light7=function(){return TableStyles._getLightStyle(7)};TableStyles.light8=function(){return TableStyles._getLightStyle(8)};TableStyles.light9=function(){return TableStyles._getLightStyle(9)};TableStyles.light10=function(){return TableStyles._getLightStyle(10)};TableStyles.light11=function(){return TableStyles._getLightStyle(11)};TableStyles.light12=function(){return TableStyles._getLightStyle(12)};TableStyles.light13=function(){return TableStyles._getLightStyle(13)};TableStyles.light14=function(){return TableStyles._getLightStyle(14)};TableStyles.light15=function(){return TableStyles._getLightStyle(15)};TableStyles.light16=function(){return TableStyles._getLightStyle(16)};TableStyles.light17=function(){return TableStyles._getLightStyle(17)};TableStyles.light18=function(){return TableStyles._getLightStyle(18)};TableStyles.light19=function(){return TableStyles._getLightStyle(19)};TableStyles.light20=function(){return TableStyles._getLightStyle(20)};TableStyles.light21=function(){return TableStyles._getLightStyle(21)};TableStyles.medium1=function(){return TableStyles._getMediumStyle(1)};TableStyles.medium2=function(){return TableStyles._getMediumStyle(2)};TableStyles.medium3=function(){return TableStyles._getMediumStyle(3)};TableStyles.medium4=function(){return TableStyles._getMediumStyle(4)};TableStyles.medium5=function(){return TableStyles._getMediumStyle(5)};TableStyles.medium6=function(){return TableStyles._getMediumStyle(6)};TableStyles.medium7=function(){return TableStyles._getMediumStyle(7)};TableStyles.medium8=function(){return TableStyles._getMediumStyle(8)};TableStyles.medium9=function(){return TableStyles._getMediumStyle(9)};TableStyles.medium10=function(){return TableStyles._getMediumStyle(10)};TableStyles.medium11=function(){return TableStyles._getMediumStyle(11)};TableStyles.medium12=function(){return TableStyles._getMediumStyle(12)};TableStyles.medium13=function(){return TableStyles._getMediumStyle(13)};TableStyles.medium14=function(){return TableStyles._getMediumStyle(14)};TableStyles.medium15=function(){return TableStyles._getMediumStyle(15)};TableStyles.medium16=function(){return TableStyles._getMediumStyle(16)};TableStyles.medium17=function(){return TableStyles._getMediumStyle(17)};TableStyles.medium18=function(){return TableStyles._getMediumStyle(18)};TableStyles.medium19=function(){return TableStyles._getMediumStyle(19)};TableStyles.medium20=function(){return TableStyles._getMediumStyle(20)};TableStyles.medium21=function(){return TableStyles._getMediumStyle(21)};TableStyles.medium22=function(){return TableStyles._getMediumStyle(22)};TableStyles.medium23=function(){return TableStyles._getMediumStyle(23)};TableStyles.medium24=function(){return TableStyles._getMediumStyle(24)};TableStyles.medium25=function(){return TableStyles._getMediumStyle(25)};TableStyles.medium26=function(){return TableStyles._getMediumStyle(26)};TableStyles.medium27=function(){return TableStyles._getMediumStyle(27)};TableStyles.medium28=function(){return TableStyles._getMediumStyle(28)};TableStyles.dark1=function(){return TableStyles._getDarkStyle(1)};TableStyles.dark2=function(){return TableStyles._getDarkStyle(2)};TableStyles.dark3=function(){return TableStyles._getDarkStyle(3)};TableStyles.dark4=function(){return TableStyles._getDarkStyle(4)};TableStyles.dark5=function(){return TableStyles._getDarkStyle(5)};TableStyles.dark6=function(){return TableStyles._getDarkStyle(6)};TableStyles.dark7=function(){return TableStyles._getDarkStyle(7)};TableStyles.dark8=function(){return TableStyles._getDarkStyle(8)};TableStyles.dark9=function(){return TableStyles._getDarkStyle(9)};TableStyles.dark10=function(){return TableStyles._getDarkStyle(10)};TableStyles.dark11=function(){return TableStyles._getDarkStyle(11)};TableStyles.customStyles=function(){var styles=TableStyles._customStyles;return(!!styles?styles:keyword_null)};TableStyles.addCustomStyles=function(style){if(!style){return}if(!TableStyles._customStyles){TableStyles._customStyles=[]}var styles=TableStyles._customStyles,count=styles.length,s;for(var i=0;i<count;i++){s=styles[i];if(s.name()===style.name()){throw new Error(spread.SR.Exp_TableStyleAddCustomStyleError);}}styles.push(style)};TableStyles.removeCustomStyle=function(style){if(!style){return false}var styles=TableStyles._customStyles;if(styles){var index=spread.util.inArray(style,styles);if(index>-1){styles.splice(index,1);return true}}return false};TableStyles.removeCustomStyleByName=function(styleName){var styles=TableStyles._customStyles;if(styles){var count=styles.length,s;for(var i=0;i<count;i++){s=styles[i];if(s.name()===styleName){styles.splice(i,1);return true}}}return false};TableStyles._getLightStyle=function(id){var index=id-1;if(typeof(TableStyles._lights)===const_undefined){TableStyles._lights={}}if(TableStyles._lights[index]){return TableStyles._lights[index]}var result=keyword_null;switch(Math_floor(index/7)){case 0:result=TableStyles._createLightA(index%7);break;case 1:result=TableStyles._createLightB(index%7);break;case 2:result=TableStyles._createLightC(index%7);break}if(result){result.name("Light"+id);TableStyles._lights[index]=result;return result}return keyword_null};TableStyles._createLightA=function(factor){var color=TableStyles._getTheme(factor);var bkStrip1=color+" 80";var themeColor=color;var style=new TableStyle;var headerRowStyle=new TableStyleInfo;headerRowStyle.borderBottom=new spread.LineBorder(themeColor,1);headerRowStyle.font="bold 10pt arial";headerRowStyle.foreColor=themeColor;style.headerRowStyle(headerRowStyle);var wholeTableStyle=new TableStyleInfo;wholeTableStyle.borderTop=new spread.LineBorder(themeColor,1);wholeTableStyle.borderBottom=new spread.LineBorder(themeColor,1);wholeTableStyle.foreColor=themeColor;style.wholeTableStyle(wholeTableStyle);var firstRowStripStyle=new TableStyleInfo;firstRowStripStyle.backColor=bkStrip1;style.firstRowStripStyle(firstRowStripStyle);var highlightFirstColumnStyle=new TableStyleInfo;highlightFirstColumnStyle.font="bold 10pt arial";highlightFirstColumnStyle.foreColor=themeColor;style.highlightFirstColumnStyle(highlightFirstColumnStyle);var highlightLastColumnStyle=new TableStyleInfo;highlightLastColumnStyle.font="bold 10pt arial";highlightLastColumnStyle.foreColor=themeColor;style.highlightLastColumnStyle(highlightLastColumnStyle);var firstColumnStripStyle=new TableStyleInfo;firstColumnStripStyle.backColor=bkStrip1;style.firstColumnStripStyle(firstColumnStripStyle);var footerRowStyle=new TableStyleInfo;footerRowStyle.borderTop=new spread.LineBorder(themeColor,1);footerRowStyle.font="bold 10pt arial";footerRowStyle.foreColor=themeColor;style.footerRowStyle(footerRowStyle);return style};TableStyles._createLightB=function(factor){var color=TableStyles._getTheme(factor);var themeColor=color;var style=new TableStyle;var headerRowStyle=new TableStyleInfo;headerRowStyle.backColor=themeColor;headerRowStyle.font="bold 10pt arial";headerRowStyle.foreColor="white";style.headerRowStyle(headerRowStyle);var wholeTableStyle=new TableStyleInfo;wholeTableStyle.borderLeft=new spread.LineBorder(themeColor,1);wholeTableStyle.borderTop=new spread.LineBorder(themeColor,1);wholeTableStyle.borderBottom=new spread.LineBorder(themeColor,1);wholeTableStyle.borderRight=new spread.LineBorder(themeColor,1);style.wholeTableStyle(wholeTableStyle);var firstRowStripStyle=new TableStyleInfo;firstRowStripStyle.borderTop=new spread.LineBorder(themeColor,1);style.firstRowStripStyle(firstRowStripStyle);var secondRowStripStyle=new TableStyleInfo;secondRowStripStyle.borderTop=new spread.LineBorder(themeColor,1);style.secondRowStripStyle(secondRowStripStyle);var firstColumnStripStyle=new TableStyleInfo;firstColumnStripStyle.borderLeft=new spread.LineBorder(themeColor,1);style.firstColumnStripStyle(firstColumnStripStyle);var secondColumnStripStyle=new TableStyleInfo;secondColumnStripStyle.borderLeft=new spread.LineBorder(themeColor,1);style.secondColumnStripStyle(secondColumnStripStyle);var highlightFirstColumnStyle=new TableStyleInfo;highlightFirstColumnStyle.font="bold 10pt arial";style.highlightFirstColumnStyle(highlightFirstColumnStyle);var highlightLastColumnStyle=new TableStyleInfo;highlightLastColumnStyle.font="bold 10pt arial";style.highlightLastColumnStyle(highlightLastColumnStyle);var footerRowStyle=new TableStyleInfo;footerRowStyle.borderTop=new spread.LineBorder(themeColor,6);footerRowStyle.font="bold 10pt arial";style.footerRowStyle(footerRowStyle);return style};TableStyles._createLightC=function(factor){var color=TableStyles._getTheme(factor);var bkStrip1=color+" 80";var themeColor=color;var style=new TableStyle;var headerRowStyle=new TableStyleInfo;headerRowStyle.borderBottom=new spread.LineBorder(themeColor,2);headerRowStyle.font="bold 10pt arial";style.headerRowStyle(headerRowStyle);var wholeTableStyle=new TableStyleInfo;wholeTableStyle.borderLeft=new spread.LineBorder(themeColor,1);wholeTableStyle.borderTop=new spread.LineBorder(themeColor,1);wholeTableStyle.borderRight=new spread.LineBorder(themeColor,1);wholeTableStyle.borderBottom=new spread.LineBorder(themeColor,1);wholeTableStyle.borderHorizontal=new spread.LineBorder(themeColor,1);wholeTableStyle.borderVertical=new spread.LineBorder(themeColor,1);style.wholeTableStyle(wholeTableStyle);var firstRowStripStyle=new TableStyleInfo;firstRowStripStyle.backColor=bkStrip1;style.firstRowStripStyle(firstRowStripStyle);var firstColumnStripStyle=new TableStyleInfo;firstColumnStripStyle.backColor=bkStrip1;style.firstColumnStripStyle(firstColumnStripStyle);var highlightFirstColumnStyle=new TableStyleInfo;highlightFirstColumnStyle.font="bold 10pt arial";style.highlightFirstColumnStyle(highlightFirstColumnStyle);var highlightLastColumnStyle=new TableStyleInfo;highlightLastColumnStyle.font="bold 10pt arial";style.highlightLastColumnStyle(highlightLastColumnStyle);var footerRowStyle=new TableStyleInfo;footerRowStyle.borderTop=new spread.LineBorder(themeColor,6);footerRowStyle.font="bold 10pt arial";style.footerRowStyle(footerRowStyle);return style};TableStyles._getMediumStyle=function(id){var index=id-1;if(typeof(TableStyles._mediums)===const_undefined){TableStyles._mediums={}}if(TableStyles._mediums[index]){return TableStyles._mediums[index]}var result=keyword_null;switch(Math_floor(index/7)){case 0:result=TableStyles._createMediumA(index%7);break;case 1:result=TableStyles._createMediumB(index%7);break;case 2:result=TableStyles._createMediumC(index%7);break;case 3:result=TableStyles._createMediumD(index%7);break}if(result){result.name("Medium"+id);TableStyles._mediums[index]=result;return result}return keyword_null};TableStyles._createMediumA=function(factor){var color=TableStyles._getTheme(factor);var border=color+" 20";var bkHeader=color;var bkStrip1=color+" 80";var style=new TableStyle;var headerRowStyle=new TableStyleInfo;headerRowStyle.backColor=bkHeader;headerRowStyle.font="bold 10pt arial";headerRowStyle.foreColor="white";style.headerRowStyle(headerRowStyle);var wholeTableStyle=new TableStyleInfo;wholeTableStyle.borderHorizontal=new spread.LineBorder(border,1);wholeTableStyle.borderLeft=new spread.LineBorder(border,1);wholeTableStyle.borderRight=new spread.LineBorder(border,1);wholeTableStyle.borderBottom=new spread.LineBorder(border,1);wholeTableStyle.borderTop=new spread.LineBorder(border,1);style.wholeTableStyle(wholeTableStyle);var firstRowStripStyle=new TableStyleInfo;firstRowStripStyle.backColor=bkStrip1;style.firstRowStripStyle(firstRowStripStyle);var firstColumnStripStyle=new TableStyleInfo;firstColumnStripStyle.backColor=bkStrip1;style.firstColumnStripStyle(firstColumnStripStyle);var highlightFirstColumnStyle=new TableStyleInfo;highlightFirstColumnStyle.font="bold 10pt arial";style.highlightFirstColumnStyle(highlightFirstColumnStyle);var highlightLastColumnStyle=new TableStyleInfo;highlightLastColumnStyle.font="bold 10pt arial";style.highlightLastColumnStyle(highlightLastColumnStyle);var footerRowStyle=new TableStyleInfo;footerRowStyle.borderTop=new spread.LineBorder(border,6);footerRowStyle.font="bold 10pt arial";footerRowStyle.foreColor="black";style.footerRowStyle(footerRowStyle);return style};TableStyles._createMediumB=function(factor){var color=TableStyles._getTheme(factor);var borderColor="white";var bkHeader=color;var bkStrip1=color+" 60";var bkStrip2=color+" 80";var style=new TableStyle;var headerRowStyle=new TableStyleInfo;headerRowStyle.backColor=bkHeader;headerRowStyle.borderBottom=new spread.LineBorder(borderColor,2);headerRowStyle.borderVertical=new spread.LineBorder(borderColor,1);headerRowStyle.font="bold 10pt arial";headerRowStyle.foreColor="white";style.headerRowStyle(headerRowStyle);var wholeTableStyle=new TableStyleInfo;wholeTableStyle.borderHorizontal=new spread.LineBorder(borderColor,1);wholeTableStyle.borderVertical=new spread.LineBorder(borderColor,1);wholeTableStyle.backColor=bkStrip2;style.wholeTableStyle(wholeTableStyle);var firstRowStripStyle=new TableStyleInfo;firstRowStripStyle.backColor=bkStrip1;style.firstRowStripStyle(firstRowStripStyle);var firstColumnStripStyle=new TableStyleInfo;firstColumnStripStyle.backColor=bkStrip1;style.firstColumnStripStyle(firstColumnStripStyle);var highlightFirstColumnStyle=new TableStyleInfo;highlightFirstColumnStyle.backColor=bkHeader;highlightFirstColumnStyle.foreColor="white";highlightFirstColumnStyle.font="bold 10pt arial";style.highlightFirstColumnStyle(highlightFirstColumnStyle);var highlightLastColumnStyle=new TableStyleInfo;highlightLastColumnStyle.backColor=bkHeader;highlightLastColumnStyle.foreColor="white";highlightLastColumnStyle.font="bold 10pt arial";style.highlightLastColumnStyle(highlightLastColumnStyle);var footerRowStyle=new TableStyleInfo;footerRowStyle.borderTop=new spread.LineBorder(borderColor,2);footerRowStyle.borderVertical=new spread.LineBorder(borderColor,1);footerRowStyle.backColor=bkHeader;footerRowStyle.foreColor="white";footerRowStyle.font="bold 10pt arial";style.footerRowStyle(footerRowStyle);return style};TableStyles._createMediumC=function(factor){var color=TableStyles._getTheme(factor);var bkHeader=color;var bkStrip1="#D3D3D3";var bkStrip2="white";var border=(factor===0?"black":"#D3D3D3");var style=new TableStyle;var headerRowStyle=new TableStyleInfo;headerRowStyle.backColor=bkHeader;headerRowStyle.borderTop=new spread.LineBorder("black",2);headerRowStyle.borderBottom=new spread.LineBorder("black",2);headerRowStyle.font="bold 10pt arial";headerRowStyle.foreColor="white";style.headerRowStyle(headerRowStyle);var wholeTableStyle=new TableStyleInfo;wholeTableStyle.borderLeft=new spread.LineBorder(border,1);wholeTableStyle.borderRight=new spread.LineBorder(border,1);wholeTableStyle.borderTop=new spread.LineBorder("black",2);wholeTableStyle.borderVertical=new spread.LineBorder(border,1);if(factor===0){wholeTableStyle.borderHorizontal=new spread.LineBorder(border,1)}wholeTableStyle.borderBottom=new spread.LineBorder("black",2);style.wholeTableStyle(wholeTableStyle);var firstRowStripStyle=new TableStyleInfo;firstRowStripStyle.backColor=bkStrip1;style.firstRowStripStyle(firstRowStripStyle);var firstColumnStripStyle=new TableStyleInfo;firstColumnStripStyle.backColor=bkStrip1;style.firstColumnStripStyle(firstColumnStripStyle);var highlightFirstColumnStyle=new TableStyleInfo;highlightFirstColumnStyle.backColor=bkHeader;highlightFirstColumnStyle.foreColor="white";style.highlightFirstColumnStyle(highlightFirstColumnStyle);var highlightLastColumnStyle=new TableStyleInfo;highlightLastColumnStyle.backColor=bkHeader;highlightLastColumnStyle.foreColor="white";style.highlightLastColumnStyle(highlightLastColumnStyle);var firstFooterCellStyle=new TableStyleInfo;firstFooterCellStyle.backColor=bkHeader;firstFooterCellStyle.font="bold 10pt arial";firstFooterCellStyle.foreColor="white";style.firstFooterCellStyle(firstFooterCellStyle);var lastFooterCellStyle=new TableStyleInfo;lastFooterCellStyle.backColor=bkHeader;lastFooterCellStyle.font="bold 10pt arial";lastFooterCellStyle.foreColor="white";style.lastFooterCellStyle(lastFooterCellStyle);var footerRowStyle=new TableStyleInfo;footerRowStyle.foreColor="black";footerRowStyle.borderTop=new spread.LineBorder("black",6);style.footerRowStyle(footerRowStyle);return style};TableStyles._createMediumD=function(factor){var color=TableStyles._getTheme(factor);var footerBorder=color;var border=color+" 40";var bkHeader=color+" 80";var bkStrip1=color+" 60";var bkStrip2=color+" 80";var style=new TableStyle;var headerRowStyle=new TableStyleInfo;headerRowStyle.backColor=bkHeader;headerRowStyle.borderVertical=new spread.LineBorder(border,1);headerRowStyle.borderLeft=new spread.LineBorder(border,1);headerRowStyle.borderTop=new spread.LineBorder(border,1);headerRowStyle.borderRight=new spread.LineBorder(border,1);headerRowStyle.borderBottom=new spread.LineBorder(border,1);headerRowStyle.font="bold 10pt arial";headerRowStyle.foreColor="black";style.headerRowStyle(headerRowStyle);var wholeTableStyle=new TableStyleInfo;wholeTableStyle.borderVertical=new spread.LineBorder(border,1);wholeTableStyle.borderHorizontal=new spread.LineBorder(border,1);wholeTableStyle.borderLeft=new spread.LineBorder(border,1);wholeTableStyle.borderTop=new spread.LineBorder(border,1);wholeTableStyle.borderRight=new spread.LineBorder(border,1);wholeTableStyle.borderBottom=new spread.LineBorder(border,1);wholeTableStyle.backColor=bkHeader;style.wholeTableStyle(wholeTableStyle);var firstRowStripStyle=new TableStyleInfo;firstRowStripStyle.backColor=bkStrip1;style.firstRowStripStyle(firstRowStripStyle);var firstColumnStripStyle=new TableStyleInfo;firstColumnStripStyle.backColor=bkStrip1;style.firstColumnStripStyle(firstColumnStripStyle);var highlightFirstColumnStyle=new TableStyleInfo;highlightFirstColumnStyle.font="bold 10pt arial";style.highlightFirstColumnStyle(highlightFirstColumnStyle);var highlightLastColumnStyle=new TableStyleInfo;highlightLastColumnStyle.font="bold 10pt arial";style.highlightLastColumnStyle(highlightLastColumnStyle);var footerRowStyle=new TableStyleInfo;footerRowStyle.backColor=bkStrip2;footerRowStyle.foreColor="black";footerRowStyle.font="bold 10pt arial";footerRowStyle.borderLeft=new spread.LineBorder(border,1);footerRowStyle.borderTop=new spread.LineBorder(footerBorder,2);footerRowStyle.borderRight=new spread.LineBorder(border,1);footerRowStyle.borderBottom=new spread.LineBorder(border,1);footerRowStyle.borderVertical=new spread.LineBorder(border,1);style.footerRowStyle(footerRowStyle);return style};TableStyles._getDarkStyle=function(id){var index=id-1;if(typeof(TableStyles._darks)===const_undefined){TableStyles._darks={}}if(TableStyles._darks[index]){return TableStyles._darks[index]}var result=keyword_null;switch(Math_floor(index/7)){case 0:result=TableStyles._createDarkA(index%7);break;case 1:result=TableStyles._createDarkB(index%7);break}if(result!=keyword_null){result.name("Dark"+id);TableStyles._darks[index]=result;return result}return keyword_null};TableStyles._createDarkA=function(factor){var color=TableStyles._getTheme(factor);var headerColor="black";var bkStrip1=(factor===0?color+" 25":color+" -25");var tableBk=(factor===0?color+" 50":color);var footColor=(factor===0?color:color+" -50");var style=new TableStyle;var headerRowStyle=new TableStyleInfo;headerRowStyle.backColor=headerColor;headerRowStyle.font="bold 10pt arial";headerRowStyle.foreColor="white";headerRowStyle.borderBottom=new spread.LineBorder("white",2);style.headerRowStyle(headerRowStyle);var wholeTableStyle=new TableStyleInfo;wholeTableStyle.backColor=tableBk;wholeTableStyle.foreColor="white";style.wholeTableStyle(wholeTableStyle);var firstRowStripStyle=new TableStyleInfo;firstRowStripStyle.backColor=bkStrip1;style.firstRowStripStyle(firstRowStripStyle);var firstColumnStripStyle=new TableStyleInfo;firstColumnStripStyle.backColor=bkStrip1;style.firstColumnStripStyle(firstColumnStripStyle);var highlightFirstColumnStyle=new TableStyleInfo;highlightFirstColumnStyle.font="bold 10pt arial";highlightFirstColumnStyle.borderRight=new spread.LineBorder("white",2);highlightFirstColumnStyle.backColor=bkStrip1;highlightFirstColumnStyle.foreColor="white";style.highlightFirstColumnStyle(highlightFirstColumnStyle);var highlightLastColumnStyle=new TableStyleInfo;highlightLastColumnStyle.font="bold 10pt arial";highlightLastColumnStyle.borderLeft=new spread.LineBorder("white",2);highlightLastColumnStyle.backColor=bkStrip1;highlightLastColumnStyle.foreColor="white";style.highlightLastColumnStyle(highlightLastColumnStyle);var footerRowStyle=new TableStyleInfo;footerRowStyle.backColor=footColor;footerRowStyle.font="bold 10pt arial";footerRowStyle.foreColor="white";footerRowStyle.borderTop=new spread.LineBorder("white",2);style.footerRowStyle(footerRowStyle);return style};TableStyles._createDarkB=function(factor){var color=TableStyles._getTheme(factor);var headerColor=TableStyles._getHeaderColor(factor);var bkStrip1=TableStyles._getStripColor(factor);var tableBk=TableStyles._getTableBackground(factor);var footColor=tableBk;var style=new TableStyle;var headerRowStyle=new TableStyleInfo;headerRowStyle.backColor=headerColor;headerRowStyle.foreColor="white";style.headerRowStyle(headerRowStyle);var wholeTableStyle=new TableStyleInfo;wholeTableStyle.backColor=tableBk;style.wholeTableStyle(wholeTableStyle);var firstRowStripStyle=new TableStyleInfo;firstRowStripStyle.backColor=bkStrip1;style.firstRowStripStyle(firstRowStripStyle);var firstColumnStripStyle=new TableStyleInfo;firstColumnStripStyle.backColor=bkStrip1;style.firstColumnStripStyle(firstColumnStripStyle);var highlightFirstColumnStyle=new TableStyleInfo;highlightFirstColumnStyle.font="bold 10pt arial";style.highlightFirstColumnStyle(highlightFirstColumnStyle);var highlightLastColumnStyle=new TableStyleInfo;highlightLastColumnStyle.font="bold 10pt arial";style.highlightLastColumnStyle(highlightLastColumnStyle);var footerRowStyle=new TableStyleInfo;footerRowStyle.backColor=footColor;footerRowStyle.font="bold 10pt arial";footerRowStyle.borderTop=new spread.LineBorder("black",6);style.footerRowStyle(footerRowStyle);return style};TableStyles._getTableBackground=function(index){if(index===0){return"Background 1 -15"}else if(index===1){return"Accent 1 80"}else if(index===2){return"Accent 3 80"}else if(index===3){return"Accent 5 80"}return""};TableStyles._getStripColor=function(index){if(index===0)return"Background 1 -35";else if(index===1)return"Accent 1 60";else if(index===2)return"Accent 3 60";else if(index===3)return"Accent 5 60";return""};TableStyles._getHeaderColor=function(index){if(index===0)return"Text 1";else if(index===1)return"Accent 2";else if(index===2)return"Accent 4";else if(index===3)return"Accent 6";return""};TableStyles._getTheme=function(factor){if(factor===0){return"Text 1"}return"Accent "+factor};return TableStyles})();spread.TableStyles=TableStyles;var _SheetTableManager=(function(){function _SheetTableManager(sheet){this._sheet=sheet;this._tableList=[]}_SheetTableManager.prototype.getSheet=function(){return this._sheet};_SheetTableManager.prototype.getCount=function(){return this._tableList.length};_SheetTableManager.prototype.getTables=function(){return this._tableList};_SheetTableManager.prototype.add=function(table){if(!table){return}var self=this;var count=self._tableList.length,t;for(var i=0;i<count;i++){t=self._tableList[i];if(t&&t.name()===table.name()){throw new Error(spread.SR.Exp_TableHasSameNameError);}}table._setOwner(self);self._tableList.push(table);if(table.showHeader()){table._syncHeader()}if(table._syncFooter()){table._syncFooter()}return table};_SheetTableManager.prototype.remove=function(table){if(!table){return}var index=spread.util.inArray(table,this._tableList);if(index>-1){this._tableList.splice(index,1);var cr=table.range(),sheet=this._sheet;var row1=cr.row,row2=cr.row+cr.rowCount,col1=cr.col,col2=cr.col+cr.colCount;for(var r=row1;r<row2;r++){for(var c=col1;c<col2;c++){sheet.setValue(r,c,keyword_null);sheet.setFormula(r,c,keyword_null)}}}};_SheetTableManager.prototype.find=function(row,col){var count=this._tableList.length;if(count===0){return keyword_null}var t;for(var i=0;i<count;i++){t=this._tableList[i];var cr=t.range();if((cr.row<=row&&row<cr.row+cr.rowCount)&&(cr.col<=col&&col<cr.col+cr.colCount)){return t}}return keyword_null};_SheetTableManager.prototype.findByRange=function(row,col,rowCount,colCount){var count=this._tableList.length;if(count===0){return keyword_null}var ret=[],t;for(var i=0;i<count;i++){t=this._tableList[i];if(t.range().intersect(row,col,rowCount,colCount)){ret.push(t)}}return ret};_SheetTableManager.prototype.findByName=function(tableName){var count=this._tableList.length,t;for(var i=0;i<count;i++){t=this._tableList[i];if(t.name().toLowerCase()===tableName.toLowerCase()){return t}}return keyword_null};_SheetTableManager.prototype.has=function(row,col,rowCount,colCount){var count=this._tableList.length,t;for(var i=0;i<count;i++){t=this._tableList[i];if(t.range().intersect(row,col,rowCount,colCount)){return true}}return false};_SheetTableManager.prototype.addRows=function(row,count){var c=this._tableList.length,t;for(var i=0;i<c;i++){t=this._tableList[i];t._addRows(row,count)}};_SheetTableManager.prototype.addColumns=function(col,count){var c=this._tableList.length,t;for(var i=0;i<c;i++){t=this._tableList[i];t._addColumns(col,count)}};_SheetTableManager.prototype.removeRows=function(row,count){var remainedList=[];var c=this._tableList.length,t;for(var i=0;i<c;i++){t=this._tableList[i];var cr=t.range(),contains=(row<=cr.row&&cr.row+cr.rowCount<=row+count);if(!contains){t._removeRows(row,count);remainedList.push(t)}}this._tableList=remainedList};_SheetTableManager.prototype.removeColumns=function(col,count){var remainedList=[];var c=this._tableList.length,t;for(var i=0;i<c;i++){t=this._tableList[i];var cr=t.range(),contains=(col<=cr.col&&cr.col+cr.colCount<=col+count);if(!contains){t._removeColumns(col,count);remainedList.push(t)}}this._tableList=remainedList};_SheetTableManager.prototype.clear=function(row,col,rowCount,colCount,type){var self=this;var clearRange=new spread.Range(row,col,rowCount,colCount);var count,t;if((type&1)===1){var remainedList=[];count=self._tableList.length;for(var i=0;i<count;i++){t=self._tableList[i];if(!clearRange.containsRange(t.range())){remainedList.push(t)}}count=remainedList.length;for(var i=0;i<count;i++){t=remainedList[i];t._clear(row,col,rowCount,colCount)}self._tableList=remainedList}if((type&2)===2){count=self._tableList.length;for(var i=0;i<count;i++){t=self._tableList[i];if(clearRange.containsRange(t.range())){t.style(keyword_null)}}}};_SheetTableManager.prototype.copy=function(fromRow,fromCol,toRow,toCol,rowCount,colCount){var count=this._tableList.length,t;for(var i=0;i<count;i++){t=this._tableList[i];t._copy(fromRow,fromCol,toRow,toCol,rowCount,colCount)}};_SheetTableManager.prototype.move=function(fromRow,fromCol,toRow,toCol,rowCount,colCount){var count=this._tableList.length,t;for(var i=0;i<count;i++){t=this._tableList[i];t._move(fromRow,fromCol,toRow,toCol,rowCount,colCount)}};_SheetTableManager.prototype.toJSON=function(){if(this._tableList.length===0){return keyword_undefined}return{tables:this._tableList}};_SheetTableManager.prototype.fromJSON=function(jsData){if(!jsData){return}this._tableList=[];if(jsData.tables){var tablesData=jsData.tables,count=tablesData.length;for(var i=0;i<count;i++){var tb=new SheetTable;tb._setOwner(this);tb.fromJSON(tablesData[i]);this._tableList.push(tb)}}};return _SheetTableManager})();spread._SheetTableManager=_SheetTableManager})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("group",["core.common","core.stringResource"]);var keyword_null=null,keyword_undefined=undefined,Math_max=Math.max,Math_min=Math.min,const_undefined="undefined";var arrayPrototype=Array.prototype;arrayPrototype.nextNonEmptyIndex=function(index){if(index<0){index=-1}var n=index+1;for(var i=n;i<this.length;i++){if(this[i]!==keyword_undefined&&this[i]!==keyword_null){return i}}return-1};arrayPrototype.clear=function(index,count){if(index<0){return}var n=0;for(var i=0;n<count&&i<this.length;i++){this[index+i]=keyword_null;n++}};(function(GroupState){GroupState[GroupState["Expanded"]=0]="Expanded";GroupState[GroupState["Collapsed"]=1]="Collapsed"})(spread.GroupState||(spread.GroupState={}));var GroupState=spread.GroupState;var RangeGroupInfo=(function(){function RangeGroupInfo(model,start,end,level){var self=this;self.model=keyword_null;self.children=keyword_null;self.parent=keyword_null;self.start=0;self.end=0;self.level=0;self.model=model;self.start=start;self.end=end;self.level=level}RangeGroupInfo.prototype.getState=function(){if(this.model){return this.model.getState(this)}return 0};RangeGroupInfo.prototype.setState=function(value){if(this.model){this.model.expand(this.level,value===0)}};RangeGroupInfo.prototype.contains=function(index){return(this.start<=index&&index<=this.end)};RangeGroupInfo.prototype.addChild=function(child){var self=this;if(child){if(!self.children){self.children=[]}self.children.push(child);child.parent=self}};return RangeGroupInfo})();spread.RangeGroupInfo=RangeGroupInfo;var WorkingState=(function(){function WorkingState(){this.count=0}WorkingState.prototype.addRef=function(){this.count++};WorkingState.prototype.release=function(){this.count--};WorkingState.prototype.isWorking=function(){return(this.count>0)};return WorkingState})();spread.WorkingState=WorkingState;var RangeGroup=(function(){function RangeGroup(count){var self=this;self.head=keyword_null;self.tail=keyword_null;self.items=keyword_null;self._rootCached=keyword_null;self.direction=1;self.suspendAddingGroup=new WorkingState;self.items=new Array(count);self._empty=true}RangeGroup.prototype.setDirection=function(direction){this.direction=direction};RangeGroup.prototype.getDirection=function(){return this.direction};RangeGroup.prototype._getCount=function(){var items=this.items;if(items){return items.length}return 0};RangeGroup.prototype.group=function(index,count){var self=this;if(!self._isIndexValid(index)){throw new Error(spread.SR.Exp_InvalidIndex);}if(!self._isIndexValid(index+count-1)){throw new Error(spread.SR.Exp_InvalidCount);}self._rootCached=keyword_null;for(var n=0;n<count;n++){var currentN=index+n;var modelCurrentN=self._getModelIndexFromViewIndex(currentN);if(!self.items[modelCurrentN]){self.items[modelCurrentN]=new RangeGroupItemInfo}else
{self.items[modelCurrentN].level++}}self._rootCached=self.createRangeGroup();self._empty=false};RangeGroup.prototype.ungroupRange=function(index,count){var self=this;if(!self._isIndexValid(index)){throw new Error(spread.SR.Exp_InvalidIndex);}if(!self._isIndexValid(index+count-1)){throw new Error(spread.SR.Exp_InvalidCount);}var shouldClearSummaryItemInfo=false;var group=keyword_null;var summaryItemIndex=-1;if(self.direction===1){summaryItemIndex=index+count;shouldClearSummaryItemInfo=self._isIndexValid(summaryItemIndex);if(shouldClearSummaryItemInfo){var si=index+count-1;var lastN=si;var modelLast=keyword_null;do
{var modelLastN=self._getModelIndexFromViewIndex(si);modelLast=self.items[modelLastN];if(modelLast!==keyword_undefined&&modelLast!==keyword_null){lastN=si}si--}while((modelLast===keyword_undefined||modelLast===keyword_null)&&si>=index);if(modelLast!==keyword_undefined&&modelLast!==keyword_null){group=self._findImp(self._rootCached,lastN,modelLast.level);if(group){summaryItemIndex=group.end+1}shouldClearSummaryItemInfo=(group&&(group.end===(index+count-1)||self.getState(group)===1))}}}else if(self.direction===0){summaryItemIndex=index-1;shouldClearSummaryItemInfo=self._isIndexValid(summaryItemIndex);if(shouldClearSummaryItemInfo){var si1=index;var firstN=si1;var modelFirst=keyword_null;do
{var modelFirstN=self._getModelIndexFromViewIndex(si1);modelFirst=self.items[modelFirstN];if(modelFirst!==keyword_undefined&&modelFirst!==keyword_null){firstN=si1}si1++}while((modelFirst===keyword_undefined||modelFirst===keyword_null)&&si1<index+count);if(modelFirst!==keyword_undefined&&modelFirst!==keyword_null){group=self._findImp(self._rootCached,firstN,modelFirst.level);if(group){summaryItemIndex=group.start-1}shouldClearSummaryItemInfo=(group&&((group.start===index)||self.getState(group)===1))}}}self._rootCached=keyword_null;for(var n=0;n<count;n++){var currentN=index+n;var modelCurrentN=self._getModelIndexFromViewIndex(currentN);if(self.items[modelCurrentN]){if(self.items[modelCurrentN].level>-1){self.items[modelCurrentN].level--}}}if(shouldClearSummaryItemInfo){var modelSearchN=self._getModelIndexFromViewIndex(summaryItemIndex);var itemSearch=self.items[modelSearchN];if(itemSearch){if(itemSearch.level===group.level){self.items[modelSearchN]=keyword_null}}}self._rootCached=self.createRangeGroup()};RangeGroup.prototype.ungroup=function(){var self=this;self._rootCached=keyword_null;var count=self._getCount();self.items=new Array(count);self._rootCached=self.createRangeGroup();self._empty=true};RangeGroup.prototype._expand=function(index,level,expand){if(!this._isIndexValid(index)){throw new Error(spread.SR.Exp_InvalidIndex);}if(level<-1){throw new Error(spread.SR.Exp_InvalidLevel);}var group=this.find(index,level);if(group){this.expandGroup(group,expand)}};RangeGroup.prototype.expand=function(level,expand){if(level<-1){throw new Error(spread.SR.Exp_InvalidLevel);}var e=new GroupedItemIndexEnumerator(this);while(e.moveNext()){this._expand(e.current,level,expand)}};RangeGroup.prototype.expandGroup=function(groupInfo,expand){if(!groupInfo){throw new Error(spread.SR.Exp_GroupInfoIsNull);}var summaryItemIndex=-1;switch(this.direction){case 0:summaryItemIndex=groupInfo.start-1;break;case 1:summaryItemIndex=groupInfo.end+1;break}this.setCollapsed(summaryItemIndex,!expand)};RangeGroup.prototype.isCollapsed=function(index){var level=this.getLevel(index);if(level>-1){var group=this._findImp(this._rootCached,index,level);while(group){if(group.getState()===1){return true}group=group.parent}}return false};RangeGroup.prototype.find=function(index,level){var rootCached=this._rootCached;if(rootCached){if(level===-1){return rootCached}if(!this._isIndexValid(index)){throw new Error(spread.SR.Exp_InvalidIndex);}return this._findImp(rootCached,index,level)}return keyword_null};RangeGroup.prototype.getLevel=function(index){if(!this._isIndexValid(index)){throw new Error(spread.SR.Exp_InvalidIndex);}var modelIndex=this._getModelIndexFromViewIndex(index);var item=this.items[modelIndex];if(item){return item.level}return-1};RangeGroup.prototype.getCollapsed=function(index){var modelIndex=this._getModelIndexFromViewIndex(index);var item=this.items[modelIndex];if(item){return!!item.collapsed}return false};RangeGroup.prototype.setCollapsed=function(index,collapsed){var self=this;var changed=false;if(index<0){var head=self.head;if(!head){head=self.head=new RangeGroupItemInfo}if(head.collapsed!==collapsed){head.collapsed=collapsed;changed=true}}else if(index>-1&&index<self._getCount()){var modelIndex=self._getModelIndexFromViewIndex(index),items=self.items,item=items[modelIndex];if(!item){item=items[modelIndex]=new RangeGroupItemInfo;item.level=-1}if(item.collapsed!==collapsed){item.collapsed=collapsed;changed=true}}else if(index>=self._getCount()){var tail=self.tail;if(!tail){tail=self.tail=new RangeGroupItemInfo}if(tail.collapsed!==collapsed){tail.collapsed=collapsed;changed=true}}if(changed){self._rootCached=keyword_null;self.refresh()}};RangeGroup.prototype.getMaxLevel=function(){var maxLevel=-1,items=this.items,length=items.length,item,itemLevel;for(var index=0;index<length;index++){item=items[index];itemLevel=(item&&item.level);if(typeof(itemLevel)!==const_undefined&&itemLevel>maxLevel){maxLevel=itemLevel}}return maxLevel};RangeGroup.prototype._move=function(from,to,count){var self=this;if(count>0){if(from<0){from=0}if(to<0){to=0}if(from===to){return}var copiedItems=[];var index=self.items.nextNonEmptyIndex(from-1);while(index>=0&&index<(from+count)){var copied=new RangeGroupItemInfo(self.items[index]);copiedItems.push({index:index-from,value:copied});index=self.items.nextNonEmptyIndex(index)}self.items.clear(from,count);self.items.clear(to,count);if(copiedItems.length>0){for(var i=0;i<copiedItems.length;i++){var item=copiedItems[i];self.items[to+item.index]=item.value}}self._rootCached=keyword_null;self.refresh()}};RangeGroup.prototype._copy=function(from,to,count){var self=this;if(count>0){if(from<0){from=0}if(to<0){to=0}if(from===to){return}var copiedItems=[];var index=self.items.nextNonEmptyIndex(from-1);while(index>=0&&index<(from+count)){var copied=new RangeGroupItemInfo(self.items[index]);copiedItems.push({index:index-from,value:copied});index=self.items.nextNonEmptyIndex(index)}self.items.clear(to,count);if(copiedItems.length>0){for(var i=0;i<copiedItems.length;i++){var item=copiedItems[i];self.items[to+item.index]=item.value}}self._rootCached=keyword_null;self.refresh()}};RangeGroup.prototype._add=function(index,count){var self=this;if(count>0){var modelIndex=self._getModelIndexFromViewIndex(index);var addedGroupItem=modelIndex>1?self.items[modelIndex-1]:keyword_null;for(var i=0;i<count;i++){self.items.splice(modelIndex,0,!!addedGroupItem?new RangeGroupItemInfo(addedGroupItem):keyword_null)}if(!self.suspendAddingGroup.isWorking){if(index>0){var modelIndexPrevious=self._getModelIndexFromViewIndex(index-1);var groupItemInfo=keyword_null;if(modelIndexPrevious<0){groupItemInfo=self.head}else
{groupItemInfo=self.items[modelIndexPrevious]}if(groupItemInfo){for(var i1=0;i1<count;i1++){self.items[index+i1]=new RangeGroupItemInfo({collapsed:groupItemInfo.collapsed,level:groupItemInfo.level})}}}}self._rootCached=keyword_null;self.refresh()}};RangeGroup.prototype._remove=function(index,count){if(count>0){this.items.splice(index,count);this._rootCached=keyword_null;this.refresh()}};RangeGroup.prototype.equals=function(obj){var self=this;var group=obj;if(group){if(!self.items&&group.items&&group.items.length>0){return false}if(!group.items&&self.items&&self.items.length>0){return false}if(!self.rangeGroupItemInfoEquals(self.head,group.head)){return false}if(!self.rangeGroupItemInfoEquals(self.tail,group.tail)){return false}if(self.items&&group.items){if(self.direction!==group.direction){return false}if(self.items.length!==group.items.length){return false}for(var i=0;i<self.items.length;i++){if((!self.items[i]&&group.items[i])||(self.items[i]&&!group.items[i])){return false}}}return true}return false};RangeGroup.prototype._isEmpty=function(){return this._empty};RangeGroup.prototype.refresh=function(){if(!this._isEmpty()){this._rootCached=this.createRangeGroup()}};RangeGroup.prototype._setCount=function(count){var self=this;if(!self.items){self.items=new Array(count)}self._rootCached=keyword_null;var currentCount=self._getCount();if(count<currentCount){self.items.splice(count,currentCount-count)}else if(count>currentCount){var lastItem=self.items[self.items.length-1];if(lastItem){for(var i=0;i<count;i++){self.items.push(new RangeGroupItemInfo(lastItem))}}else
{self.items=self.items.concat(new Array(count))}}self.refresh()};RangeGroup.prototype.getState=function(group){var self=this;var summaryItemIndex=-1;switch(self.direction){case 1:summaryItemIndex=group.end+1;break;case 0:summaryItemIndex=group.start-1;break}var item=keyword_null,itemCount=self._getCount();if(summaryItemIndex<0){item=self.head}if(summaryItemIndex>-1&&summaryItemIndex<itemCount){var viewIndex=self._getViewIndexFromModelIndex(summaryItemIndex);item=self.items[viewIndex]}else if(summaryItemIndex>=itemCount){item=self.tail}if(item&&item.collapsed){return 1}else
{return 0}};RangeGroup.prototype._setLevel=function(index,level){var self=this;if(index<0){if(!self.head){self.head=new RangeGroupItemInfo}self.head.level=level}else if(index>-1&&index<self._getCount()){var modelIndex=self._getModelIndexFromViewIndex(index);if(!self.items[modelIndex]){self.items[modelIndex]=new RangeGroupItemInfo;self.items[modelIndex].level=-1}self.items[modelIndex].level=level}else if(index>=self._getCount()){if(!self.tail){self.tail=new RangeGroupItemInfo}self.tail.level=level}self._rootCached=keyword_null;self.refresh()};RangeGroup.prototype.suspendAdding=function(){this.suspendAddingGroup.addRef()};RangeGroup.prototype.resumeAdding=function(){this.suspendAddingGroup.release()};RangeGroup.prototype._getViewIndexFromModelIndex=function(index){return index};RangeGroup.prototype._getModelIndexFromViewIndex=function(index){return index};RangeGroup.prototype.rangeGroupItemInfoEquals=function(item1,item2){if(!item1){return!item2}else
{if(!item2){return false}return item1.level===item2.level&&item1.collapsed===item2.collapsed}};RangeGroup.prototype.createRangeGroup=function(){var self=this;var root=new RangeGroupInfo(self,0,self._getCount()-1,-1);var e=new GroupedItemIndexEnumerator(self);while(e.moveNext()){var group=self._createRangeGroup(e,0);if(group&&group.level>-1){root.addChild(group)}}return root};RangeGroup.prototype._createRangeGroup=function(e,level){var self=this;var currentGroup=keyword_null;do
{var index=e.current;var modelIndex=self._getModelIndexFromViewIndex(index);var item=self.items[modelIndex];var indexNext=e.nextToCurrent();if(item.level<level){continue}else if(item.level>=level){if(!currentGroup){currentGroup=new RangeGroupInfo(self,index,index,level)}}if(item.level>level){var childGroup=self._createRangeGroup(e,level+1);if(e.current>-1){index=e.current;indexNext=e.nextToCurrent()}else
{index=childGroup.end;indexNext=-1}currentGroup.addChild(childGroup)}if(index>currentGroup.end){currentGroup.end=index}if(self.isGroupEnd(index,indexNext,level)){return currentGroup}}while(e.moveNext());return currentGroup};RangeGroup.prototype.isGroupEnd=function(index,indexNext,processLevel){var self=this;var modelIndex=self._getModelIndexFromViewIndex(index);var item=self.items[modelIndex];if(!self._isIndexValid(indexNext)){return true}var modelIndexNext=self._getModelIndexFromViewIndex(indexNext);var itemNext=self.items[modelIndexNext];if(!itemNext){return true}if(itemNext.level<item.level){var offset1=item.level-itemNext.level;var offset2=item.level-processLevel;if(offset1===offset2){return false}if(offset2>=0&&offset2<offset1){return true}}return false};RangeGroup.prototype._isIndexValid=function(index){return(index>=-1&&index<this._getCount())};RangeGroup.prototype._findImp=function(group,index,level){if(group){var queue=[];queue.unshift(group);while(queue.length>0){group=queue.pop();if(group.level===level&&group.contains(index)){return group}var children=group.children,childCount=(children&&children.length);if(childCount>0){for(var i=0;i<childCount;i++){queue.unshift(children[i])}}}}return keyword_null};RangeGroup.prototype.fromJSON=function(settings){if(!settings){return}var self=this;var itemsCount=settings.itemsCount;if(itemsCount===keyword_undefined||itemsCount===keyword_null){itemsCount=self.items.length}self.items=new Array(itemsCount);if(settings.itemsData){var length=settings.itemsData.length;for(var i=0;i<length;i++){var item=settings.itemsData[i];if(item.count>0&&item.index>=0&&item.info){for(var k=0;k<item.count;k++){if(item.index+k>=self.items.length){break}self.items[item.index+k]=new RangeGroupItemInfo(item.info)}self._empty=false}}}if(settings.direction!==keyword_null&&settings.direction!==keyword_undefined){self.direction=settings.direction}if(settings.head){self.head=settings.head}if(settings.tail){self.tail=settings.tail}self._rootCached=keyword_null;self.refresh()};RangeGroup.prototype.toJSON=function(){return this.toJSONCore()};RangeGroup.prototype.toJSONCore=function(isRowRangeGroup){var self=this;var itemsData=[];var itemsCount=self.items.length;var k=-1;for(var i=0;i<itemsCount;i++){if(self.items[i]){if(k>=0&&i===itemsData[k].count+itemsData[k].index&&self.items[i].level===itemsData[k].info.level&&self.items[i].collapsed===itemsData[k].info.collapsed){itemsData[k].count++}else
{k++;itemsData[k]={index:i,count:1,info:self.items[i]}}}}var dictData={itemsCount:itemsCount,itemsData:itemsData,direction:self.direction,head:self.head,tail:self.tail};var sdata={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value,isRowRangeGroup)){sdata[item]=value}}if($.isEmptyObject(sdata)){return keyword_undefined}return sdata};RangeGroup.prototype._isDefaultValue=function(propertyName,value,isRowRangeGroup){switch(propertyName){case"head":return value===keyword_null;case"tail":return value===keyword_null;case"direction":return value===1;case"itemsData":return value.length===0;case"itemsCount":if(isRowRangeGroup===true){return value===200}else if(isRowRangeGroup===false){return value===20}default:return false}};return RangeGroup})();spread.RangeGroup=RangeGroup;var RangeGroupItemInfo=(function(){function RangeGroupItemInfo(info){var self=this;if(self!==info&&info){self.level=info.level;self.collapsed=info.collapsed}if(!info){self.level=0;self.collapsed=false}}return RangeGroupItemInfo})();spread.RangeGroupItemInfo=RangeGroupItemInfo;var GroupedItemIndexEnumerator=(function(){function GroupedItemIndexEnumerator(rangeGroup){this.isEOF=false;this.rangeGroup=keyword_null;this.current=-1;this.rangeGroup=rangeGroup}GroupedItemIndexEnumerator.prototype.nextToCurrent=function(){return this.current+1};GroupedItemIndexEnumerator.prototype.moveNext=function(){var self=this;if(self.isEOF||!self.rangeGroup||!self.rangeGroup.items){return false}var found=false;for(var n=self.current+1;n<self.rangeGroup.items.length;n++){var modelIndex=self.rangeGroup._getModelIndexFromViewIndex(n);if(self.rangeGroup.items[modelIndex]){found=true;self.current=n;break}}if(!found){self.current=-1}if(self.current>-1){return true}else
{self.isEOF=true;return false}};GroupedItemIndexEnumerator.prototype.reset=function(){this.isEOF=false;this.current=-1};return GroupedItemIndexEnumerator})();spread.GroupedItemIndexEnumerator=GroupedItemIndexEnumerator;var ThemeHelper={getThemeBackgroundColor:function(sheet,defaultColor){if(sheet.parent&&sheet.parent.useWijmoTheme){var themeStyle=spread.Global.prototype.getWijmoThemeStyle(0);if(themeStyle&&themeStyle.backgroundColor&&themeStyle.backgroundColor!==""){defaultColor=themeStyle.backgroundColor}}return defaultColor},getThemeForeColor:function(sheet,defaultColor){if(sheet.parent&&sheet.parent.useWijmoTheme){var themeStyle=spread.Global.prototype.getWijmoThemeStyle(0);if(themeStyle&&themeStyle.color&&themeStyle.color!==""){defaultColor=themeStyle.color}}return defaultColor}};var _RangeGroupPresenter=(function(){function _RangeGroupPresenter(sheet,rowGroup,viewportIndex,maxLevel){var self=this;self._sheet=keyword_null;self._rowGroup=keyword_null;self._viewportIndex=1;self._maxLevel=-1;self.PADDING=2;self.LINE_SIZE=2;self.STARTLINE_SIZE=6;self._groupLineInfos=keyword_null;self._groupDotInfos=keyword_null;self._groupButtonInfos=keyword_null;self._sheet=sheet;self._rowGroup=rowGroup;self._viewportIndex=viewportIndex;if(typeof(maxLevel)===const_undefined){if(rowGroup){self._maxLevel=sheet.rowRangeGroup.getMaxLevel()}else
{self._maxLevel=sheet.colRangeGroup.getMaxLevel()}}else
{self._maxLevel=maxLevel}}_RangeGroupPresenter.prototype.createGroupInfo=function(){var self=this;self._groupLineInfos=[];self._groupDotInfos=[];self._groupButtonInfos=[];var rowGroup=self._rowGroup,maxLevel=self._maxLevel;if(maxLevel!==-1){var groupLayout=self._sheet._getGroupLayout(),buttonSize=self._calcMinWidthOrHeight({width:groupLayout.width,height:groupLayout.height},rowGroup),groups=self.getGroupsByLevel(0,rowGroup),groupCount=groups.length,group;if(groupCount>0){for(var i=0;i<groupCount;i++){group=groups[i];self._measureGroups(group,buttonSize)}}}};_RangeGroupPresenter.prototype.paintGroups=function(ctx){if(this._rowGroup){this._paintRowGroups(ctx)}else
{this._paintColumnGroups(ctx)}};_RangeGroupPresenter.prototype._calcMinWidthOrHeight=function(finalSize,rowGroup){var size=0,maxLevel=this._maxLevel;if(rowGroup){size=(finalSize.width-this.PADDING*2)/(maxLevel+2)}else
{size=(finalSize.height-this.PADDING*2)/(maxLevel+2)}size=Math_max(0,size);return size};_RangeGroupPresenter.prototype._measureGroups=function(group,buttonSize){var self=this;var rowGroup=self._rowGroup,groupDirection=self.getGroupDirection(rowGroup),viewportStart=self.getViewportStartIndex(rowGroup),viewportEnd=self.getViewportEndIndex(rowGroup),groupStartIndex=group.start,groupEndIndex=group.end,button,buttonRowIndex,i;if(group.getState()===0){var needPaintingLine=true;var parent=group.parent;if(parent&&((groupDirection===0&&groupStartIndex===parent.start)||(groupDirection===1&&groupEndIndex===parent.end))){needPaintingLine=false}if(needPaintingLine){button={isExpanded:true,level:group.level,paintLine:true};if(groupDirection===1){buttonRowIndex=groupEndIndex+1;if(buttonRowIndex>=viewportStart&&buttonRowIndex<=viewportEnd){button.index=buttonRowIndex;button.lineDirection=1;self._groupButtonInfos.push(button)}}else if(groupDirection===0){buttonRowIndex=groupStartIndex-1;if(buttonRowIndex>=viewportStart&&buttonRowIndex<=viewportEnd){button.index=buttonRowIndex;button.lineDirection=0;self._groupButtonInfos.push(button)}}}if(groupStartIndex<=viewportEnd&&groupEndIndex>=viewportStart){var start=Math_max(viewportStart,groupStartIndex);var end=Math_min(viewportEnd,groupEndIndex);if(needPaintingLine){var groupLineInfo={start:start,end:end,level:group.level,startLine:keyword_null};if((groupDirection===1&&start===groupStartIndex)||(groupDirection===0&&end===groupEndIndex)){groupLineInfo.startLine=true}self._groupLineInfos.push(groupLineInfo)}var dots=[];for(i=start;i<=end;i++){dots.push(i)}var groupChildren=group.children,groupChildrenCount=(groupChildren&&groupChildren.length);if(groupChildrenCount>0){for(i=0;i<groupChildrenCount;i++){var childGroup=groupChildren[i],childGroupStart=childGroup.start,childGroupEnd=childGroup.end;if(childGroup.getState()===1){for(var j=childGroupStart;j<=childGroupEnd;j++){dots.remove(j)}}if(groupDirection===1){dots.remove(childGroupEnd+1)}else if(groupDirection===0){dots.remove(childGroupStart-1)}self._measureGroups(childGroup,buttonSize)}}var needPaintingDot=true;if(groupChildrenCount>0){for(var ci=0;ci<groupChildrenCount;ci++){var child=groupChildren[ci];if(child){var childStart=child.start,childEnd=child.end;if(childStart===groupStartIndex&&childEnd===groupEndIndex){needPaintingDot=false;break}else if((groupDirection===1&&childEnd===groupEndIndex)||(groupDirection===0&&childStart===groupStartIndex)){for(var ic=childStart;ic<=childEnd;ic++){dots.remove(ic)}}}}}if(needPaintingDot&&dots.length>0){for(i=0;i<dots.length;i++){var index=dots[i];var groupDotInfo={index:index,level:group.level+1};self._groupDotInfos.push(groupDotInfo)}}}}else if(group.getState()===1){button={isExpanded:false,level:group.level};if(groupDirection===1){buttonRowIndex=groupEndIndex+1;if(buttonRowIndex>=viewportStart&&buttonRowIndex<=viewportEnd){button.index=buttonRowIndex;button.lineDirection=1;self._groupButtonInfos.push(button)}}else if(groupDirection===0){buttonRowIndex=groupStartIndex-1;if(buttonRowIndex>=viewportStart&&buttonRowIndex<=viewportEnd){button.index=buttonRowIndex;button.lineDirection=0;self._groupButtonInfos.push(button)}}}};_RangeGroupPresenter.prototype._paintRowGroups=function(ctx){var self=this;var maxLevel=self._maxLevel;if(maxLevel===-1){return}var sheet=self._sheet,groupLayout=sheet._getGroupLayout(),itemWidth=self._calcMinWidthOrHeight({width:groupLayout.width,height:groupLayout.height},true);if(itemWidth===0){return}ctx.save();var STARTLINE_SIZE=self.STARTLINE_SIZE,PADDING=self.PADDING,LINE_SIZE=self.LINE_SIZE,offsetX=Math_max(0,(itemWidth-STARTLINE_SIZE)/2)+PADDING,columnX,rowY,i,rowLayout,rowLayoutModel=sheet._getRowLayout(self._viewportIndex,3);var groupDotInfos=self._groupDotInfos,groupDotInfosCount=(groupDotInfos&&groupDotInfos.length);if(groupDotInfosCount>0){for(i=0;i<groupDotInfosCount;i++){var dot=groupDotInfos[i];rowLayout=rowLayoutModel.findRow(dot.index);if(rowLayout&&rowLayout.height>=LINE_SIZE){columnX=dot.level*itemWidth+offsetX;rowY=rowLayout.y+Math_max(0,(rowLayout.height-LINE_SIZE)/2);var dotWidth=LINE_SIZE;var dotHeight=LINE_SIZE;ctx.fillStyle=ThemeHelper.getThemeForeColor(sheet,"black");ctx.fillRect(groupLayout.x+columnX+0.5,groupLayout.y+rowY,dotWidth,dotHeight)}}}var rowGroupDirection=sheet.rowRangeGroup.direction,groupLineInfos=self._groupLineInfos,groupLineInfosCount=(groupLineInfos&&groupLineInfos.length);if(groupLineInfosCount>0){for(i=0;i<groupLineInfosCount;i++){var groupLineInfo=groupLineInfos[i];var start=groupLineInfo.start,end=groupLineInfo.end;var startRowLayout=keyword_null,endRowLayout=keyword_null;do
{startRowLayout=rowLayoutModel.findRow(start);start++}while(!startRowLayout&&start<=end);do
{endRowLayout=rowLayoutModel.findRow(end);end--}while(!endRowLayout&&end>=start);if(!startRowLayout&&!endRowLayout){continue}else if(!startRowLayout&&endRowLayout){startRowLayout=endRowLayout}else if(startRowLayout&&!endRowLayout){endRowLayout=startRowLayout}columnX=groupLineInfo.level*itemWidth+offsetX;rowY=startRowLayout.y;if(rowGroupDirection===1){rowY+=1}var lineWidth=LINE_SIZE;var lineHeight=Math_max(0,endRowLayout.y+endRowLayout.height-startRowLayout.y);ctx.fillStyle=ThemeHelper.getThemeForeColor(sheet,"black");ctx.fillRect(groupLayout.x+columnX+0.5,groupLayout.y+rowY,lineWidth,lineHeight);var startLine=groupLineInfo.startLine;if(startLine){var startLineWidth=Math_min(STARTLINE_SIZE,itemWidth-LINE_SIZE);if(startLineWidth>0){if(rowGroupDirection===0){rowY=rowY+lineHeight-LINE_SIZE}if(rowY>=startRowLayout.y&&rowY<endRowLayout.y+endRowLayout.height){ctx.fillStyle=ThemeHelper.getThemeForeColor(sheet,"black");ctx.fillRect(groupLayout.x+columnX+0.5,groupLayout.y+rowY,startLineWidth,LINE_SIZE)}}}}}var groupButtonInfos=self._groupButtonInfos,groupButtonInfosCount=(groupButtonInfos&&groupButtonInfos.length);if(groupButtonInfosCount>0){for(i=0;i<groupButtonInfosCount;i++){var groupButtonInfo=groupButtonInfos[i];rowLayout=rowLayoutModel.findRow(groupButtonInfo.index);if((!rowLayout)||(rowLayout&&rowLayout.height<=0)){continue}var heightOffSet=Math_max(0,(rowLayout.height-itemWidth)/2);columnX=groupButtonInfo.level*itemWidth+PADDING;rowY=rowLayout.y+heightOffSet;var btnWidth=itemWidth;var btnHeight=Math_min(itemWidth,rowLayout.height);ctx.strokeStyle="gray";ctx.lineWidth=1;ctx.strokeRect(groupLayout.x+columnX+0.5,groupLayout.y+rowY,btnWidth,btnHeight);if(!groupButtonInfo.isExpanded){ctx.fillRect(groupLayout.x+columnX+btnWidth/2-1+0.5,groupLayout.y+rowY+4,2,btnHeight-8)}ctx.fillRect(groupLayout.x+columnX+4+0.5,groupLayout.y+rowY+btnHeight/2-1,btnWidth-8,2);var btnLine=groupButtonInfo.paintLine;if(btnLine&&btnHeight<rowLayout.height){columnX=groupButtonInfo.level*itemWidth+offsetX;rowY=rowLayout.y;var btnLineWidth=LINE_SIZE;var btnLineHeight=heightOffSet;if(groupButtonInfo.lineDirection===0){rowY+=heightOffSet+btnHeight;btnLineHeight=rowLayout.height-btnHeight-heightOffSet}ctx.fillStyle=ThemeHelper.getThemeForeColor(sheet,"black");ctx.fillRect(groupLayout.x+columnX+0.5,groupLayout.y+rowY,btnLineWidth,btnLineHeight)}}}ctx.stroke();ctx.beginPath();ctx.restore()};_RangeGroupPresenter.prototype._paintColumnGroups=function(ctx){var self=this;var maxLevel=self._maxLevel;if(maxLevel===-1){return}var sheet=self._sheet,groupLayout=sheet._getGroupLayout(),itemHeight=self._calcMinWidthOrHeight({width:groupLayout.width,height:groupLayout.height},false);if(itemHeight===0){return}var STARTLINE_SIZE=self.STARTLINE_SIZE,PADDING=self.PADDING,LINE_SIZE=self.LINE_SIZE,offsetY=Math_max(0,(itemHeight-STARTLINE_SIZE)/2)+PADDING,columnX,rowY,i,columnLayout,columnLayoutModel=sheet._getColumnLayout(self._viewportIndex,3);ctx.save();var groupDotInfos=self._groupDotInfos,groupDotInfosCount=groupDotInfos.length;for(i=0;i<groupDotInfosCount;i++){var dot=groupDotInfos[i];columnLayout=columnLayoutModel.findCol(dot.index);if(columnLayout&&columnLayout.width>=LINE_SIZE){columnX=columnLayout.x+Math_max(0,(columnLayout.width-LINE_SIZE)/2);rowY=dot.level*itemHeight+offsetY;var dotWidth=LINE_SIZE;var dotHeight=LINE_SIZE;ctx.fillStyle=ThemeHelper.getThemeForeColor(sheet,"black");ctx.fillRect(groupLayout.x+columnX,groupLayout.y+rowY+0.5,dotWidth,dotHeight)}}var columnGroupDirection=sheet.colRangeGroup.direction,groupLineInfos=self._groupLineInfos,groupLineInfosCount=groupLineInfos.length;for(i=0;i<groupLineInfosCount;i++){var groupLineInfo=groupLineInfos[i];var start=groupLineInfo.start,end=groupLineInfo.end;var startColumnLayout=keyword_null,endColumnLayout=keyword_null;do
{startColumnLayout=columnLayoutModel.findCol(start);start++}while(!startColumnLayout&&start<=end);do
{endColumnLayout=columnLayoutModel.findCol(end);end--}while(!endColumnLayout&&end>=start);if(!startColumnLayout&&!endColumnLayout){continue}else if(!startColumnLayout&&endColumnLayout){startColumnLayout=endColumnLayout}else if(startColumnLayout&&!endColumnLayout){endColumnLayout=startColumnLayout}columnX=startColumnLayout.x;if(columnGroupDirection===1){columnX+=1}rowY=groupLineInfo.level*itemHeight+offsetY;var lineWidth=Math_max(0,endColumnLayout.x+endColumnLayout.width-startColumnLayout.x);var lineHeight=LINE_SIZE;ctx.fillStyle=ThemeHelper.getThemeForeColor(sheet,"black");ctx.fillRect(groupLayout.x+columnX,groupLayout.y+rowY+0.5,lineWidth,lineHeight);var startLine=groupLineInfo.startLine;if(startLine){var startLineHeight=Math_min(STARTLINE_SIZE,itemHeight-LINE_SIZE);if(startLineHeight>0){if(columnGroupDirection===0){columnX=columnX+lineWidth-LINE_SIZE}if(columnX>=startColumnLayout.x&&columnX<endColumnLayout.x+endColumnLayout.width){ctx.fillStyle=ThemeHelper.getThemeForeColor(sheet,"black");ctx.fillRect(groupLayout.x+columnX,groupLayout.y+rowY+0.5,LINE_SIZE,startLineHeight)}}}}var groupButtonInfos=self._groupButtonInfos,groupButtonInfosCount=groupButtonInfos.length;for(i=0;i<groupButtonInfosCount;i++){var groupButtonInfo=groupButtonInfos[i];columnLayout=columnLayoutModel.findCol(groupButtonInfo.index);if((!columnLayout)||(columnLayout&&columnLayout.width<=0)){continue}var widthOffSet=Math_max(0,(columnLayout.width-itemHeight)/2);columnX=columnLayout.x+widthOffSet;rowY=groupButtonInfo.level*itemHeight+PADDING;var btnWidth=Math_min(itemHeight,columnLayout.width);var btnHeight=itemHeight;ctx.strokeStyle="gray";ctx.lineWidth=1;ctx.strokeRect(groupLayout.x+columnX,groupLayout.y+rowY+0.5,btnWidth,btnHeight);if(!groupButtonInfo.isExpanded){ctx.fillRect(groupLayout.x+columnX+btnWidth/2-1,groupLayout.y+rowY+4.5,2,btnHeight-8)}ctx.fillRect(groupLayout.x+columnX+4,groupLayout.y+rowY+btnHeight/2-0.5,btnWidth-8,2);var paintLine=groupButtonInfo.paintLine;if(paintLine&&btnWidth<columnLayout.width){columnX=columnLayout.x;rowY=groupButtonInfo.level*itemHeight+offsetY;var btnLineWidth=widthOffSet;var btnLineHeight=LINE_SIZE;if(groupButtonInfo.lineDirection===0){columnX+=widthOffSet+btnWidth;btnLineWidth=columnLayout.width-btnWidth-widthOffSet}ctx.fillStyle=ThemeHelper.getThemeForeColor(sheet,"black");ctx.fillRect(groupLayout.x+columnX,groupLayout.y+rowY+0.5,btnLineWidth,btnLineHeight)}}ctx.beginPath();ctx.restore()};_RangeGroupPresenter.prototype.getRowOrColumnStartIndex=function(rowRange){var sheet=this._sheet,viewportIndex=this._viewportIndex;if(rowRange){var rowLayoutModel=sheet._getRowLayout(viewportIndex);if(rowLayoutModel&&rowLayoutModel.length>0){var topIndex=rowLayoutModel[0].row;return Math_max(0,topIndex-1)}}else
{var colLayoutModel=sheet._getColumnLayout(viewportIndex);if(colLayoutModel&&colLayoutModel.length>0){var leftIndex=colLayoutModel[0].col;return Math_min(0,leftIndex-1)}}return-1};_RangeGroupPresenter.prototype.getRowOrColumnCount=function(rowRange){var sheet=this._sheet,viewportIndex=this._viewportIndex;if(rowRange){var rowLayoutModel=sheet._getRowLayout(viewportIndex);if(rowLayoutModel&&rowLayoutModel.length>0){var bottomIndex=rowLayoutModel[rowLayoutModel.length-1].row;return Math_min(sheet.getRowCount(),bottomIndex+2)}}else
{var colLayoutModel=sheet._getColumnLayout(viewportIndex);if(colLayoutModel&&colLayoutModel.length>0){var rightIndex=colLayoutModel[colLayoutModel.length-1].col;return Math_min(sheet.getColumnCount(),rightIndex+2)}}return-1};_RangeGroupPresenter.prototype.getGroupsByLevel=function(level,rowRange){var self=this;var groups=[],index=self.getRowOrColumnStartIndex(rowRange),count=self.getRowOrColumnCount(rowRange),rangeGroup=(rowRange?self._sheet.rowRangeGroup:self._sheet.colRangeGroup),group;while(index<count){group=rangeGroup.find(index,level);if(group){index=group.end+1;groups.push(group)}else
{index++}}return groups};_RangeGroupPresenter.prototype.getGroupDirection=function(rowGroup){if(rowGroup){return this._sheet.rowRangeGroup.direction}else
{return this._sheet.colRangeGroup.direction}};_RangeGroupPresenter.prototype.getViewportStartIndex=function(rowGroup){var sheet=this._sheet,viewportIndex=this._viewportIndex;if(rowGroup){var rowLayoutModel=sheet._getRowLayout(viewportIndex);if(rowLayoutModel&&rowLayoutModel.length>0){return rowLayoutModel[0].row}}else
{var colLayoutModel=sheet._getColumnLayout(viewportIndex);if(colLayoutModel&&colLayoutModel.length>0){return colLayoutModel[0].col}}return-1};_RangeGroupPresenter.prototype.getViewportEndIndex=function(rowGroup){var sheet=this._sheet,viewportIndex=this._viewportIndex;if(rowGroup){var rowLayoutModel=sheet._getRowLayout(viewportIndex);if(rowLayoutModel&&rowLayoutModel.length>0){return rowLayoutModel[rowLayoutModel.length-1].row}}else
{var colLayoutModel=sheet._getColumnLayout(viewportIndex);if(colLayoutModel&&colLayoutModel.length>0){return colLayoutModel[colLayoutModel.length-1].col}}return-1};_RangeGroupPresenter.prototype._processTouch=function(rect){if(rect&&this._sheet._isTouchMode){rect.x-=2;rect.y-=2;rect.width+=4;rect.height+=4}};_RangeGroupPresenter.prototype.getRowGroupButton=function(x,y){var self=this;var maxLevel=self._maxLevel;if(maxLevel===-1){return keyword_null}var sheet=self._sheet,groupLayout=sheet._getGroupLayout(),itemWidth=self._calcMinWidthOrHeight({width:groupLayout.width,height:groupLayout.height},true);if(itemWidth===0){return keyword_null}var columnX,rowY,rowLayoutModel=sheet._getRowLayout(self._viewportIndex,3),groupButtonInfos=self._groupButtonInfos,groupButtonInfosCount=(groupButtonInfos&&groupButtonInfos.length);if(groupButtonInfosCount>0){for(var i=0;i<groupButtonInfosCount;i++){var groupButtonInfo=groupButtonInfos[i];var rowLayout=rowLayoutModel.findRow(groupButtonInfo.index);if((!rowLayout)||(rowLayout&&rowLayout.height<=0)){continue}var heightOffSet=Math_max(0,(rowLayout.height-itemWidth)/2);columnX=groupButtonInfo.level*itemWidth+self.PADDING;rowY=rowLayout.y+heightOffSet;var rectWidth=itemWidth,rectHeight=Math_min(rectWidth,rowLayout.height);var btnRect=new spread.Rect(groupLayout.x+columnX+0.5,groupLayout.y+rowY+0.5,rectWidth,rectHeight);self._processTouch(btnRect);if(btnRect.contains(x,y)){return groupButtonInfo}}}return keyword_null};_RangeGroupPresenter.prototype.getColGroupButton=function(x,y){var self=this;var maxLevel=self._maxLevel;if(maxLevel===-1){return keyword_null}var sheet=self._sheet,groupLayout=sheet._getGroupLayout(),itemHeight=self._calcMinWidthOrHeight({width:groupLayout.width,height:groupLayout.height},false);if(itemHeight===0){return keyword_null}var columnX,rowY,columnLayoutModel=sheet._getColumnLayout(self._viewportIndex,3),groupButtonInfos=self._groupButtonInfos,groupButtonInfosCount=(groupButtonInfos&&groupButtonInfos.length);if(groupButtonInfosCount>0){for(var i=0;i<groupButtonInfosCount;i++){var groupButtonInfo=groupButtonInfos[i];var columnLayout=columnLayoutModel.findCol(groupButtonInfo.index);if((!columnLayout)||(columnLayout&&columnLayout.width<=0)){continue}var widthOffSet=Math_max(0,(columnLayout.width-itemHeight)/2);columnX=columnLayout.x+widthOffSet;rowY=groupButtonInfo.level*itemHeight+self.PADDING;var rectHeight=itemHeight,rectWidth=Math_min(rectHeight,columnLayout.width);var btnRect=new spread.Rect(groupLayout.x+columnX+0.5,groupLayout.y+rowY+0.5,rectWidth,rectHeight);self._processTouch(btnRect);if(btnRect.contains(x,y)){return groupButtonInfo}}}return keyword_null};return _RangeGroupPresenter})();spread._RangeGroupPresenter=_RangeGroupPresenter;var _RangeGroupHeaderPresenter=(function(){function _RangeGroupHeaderPresenter(sheet,rowGroup,maxLevel){var self=this;self._sheet=keyword_null;self._rowGroup=keyword_null;self._maxLevel=-1;self.PADDING=2;self._sheet=sheet;self._rowGroup=rowGroup;if(typeof(maxLevel)===const_undefined){if(rowGroup){self._maxLevel=sheet.rowRangeGroup.getMaxLevel()}else
{self._maxLevel=sheet.colRangeGroup.getMaxLevel()}}else
{self._maxLevel=maxLevel}}_RangeGroupHeaderPresenter.prototype.paintGroupHeader=function(ctx){var self=this;var sheet=self._sheet,maxLevel=self._maxLevel;if(!sheet||maxLevel<0){return}var rowGroup=self._rowGroup,groupLayout=sheet._getGroupLayout(),minSize=self._calcMinWidthOrHeight({width:groupLayout.width,height:groupLayout.height},rowGroup);if(minSize===0){return}var buttonCount=maxLevel+2,columnX,rowY,i,rectSize,rectX,rectY,text,textWidth,textHeight,layout=sheet._getSheetLayout();ctx.fillStyle=ThemeHelper.getThemeBackgroundColor(sheet,"#D7E6F7");ctx.strokeStyle="gray";ctx.font="8.25pt Arial";ctx.lineWidth=1;if(rowGroup){ctx.fillRect(groupLayout.x,groupLayout.y,groupLayout.width,layout.height);ctx.strokeRect(groupLayout.x-0.5,groupLayout.y-0.5,groupLayout.width,layout.height+1);ctx.strokeRect(groupLayout.x-0.5,layout.headerY-0.5,groupLayout.width,layout.colHeaderHeight);ctx.fillStyle=ThemeHelper.getThemeForeColor(sheet,"black");if(sheet.colHeaderVisible&&layout.colHeaderHeight>=minSize){columnX=self.PADDING;rowY=Math_max(0,layout.headerY+(layout.colHeaderHeight-minSize)/2);for(i=0;i<buttonCount;i++){rectSize=minSize-1;rectX=groupLayout.x+columnX+0.5;rectY=groupLayout.y+rowY;ctx.strokeRect(rectX,rectY,rectSize,rectSize);text=""+(i+1);textWidth=ctx.measureText(text).width;textHeight=sheet._getFontHeight(ctx.font);if(rectSize>=textWidth&&minSize>=textHeight){ctx.textBaseline="middle";ctx.fillText(text,rectX+(rectSize-textWidth)/2,rectY+rectSize/2)}columnX+=minSize}}}else
{ctx.fillRect(groupLayout.x,groupLayout.y,layout.width,groupLayout.height);ctx.strokeRect(groupLayout.x-0.5,groupLayout.y-0.5,layout.width+1,groupLayout.height);ctx.strokeRect(layout.headerX-0.5,groupLayout.y-0.5,layout.rowHeaderWidth,groupLayout.height);ctx.fillStyle=ThemeHelper.getThemeForeColor(sheet,"black");if(sheet.rowHeaderVisible&&layout.rowHeaderWidth>=minSize){columnX=Math_max(0,layout.headerX+(layout.rowHeaderWidth-minSize)/2);rowY=self.PADDING;for(i=0;i<buttonCount;i++){rectSize=minSize-1;rectX=groupLayout.x+columnX;rectY=groupLayout.y+rowY+0.5;ctx.strokeRect(rectX,rectY,rectSize,rectSize);text=""+(i+1);textWidth=ctx.measureText(text).width;textHeight=sheet._getFontHeight(ctx.font);if(rectSize>=textWidth&&minSize>=textHeight){ctx.textBaseline="middle";ctx.fillText(text,rectX+(rectSize-textWidth)/2,rectY+rectSize/2)}rowY+=minSize}}}};_RangeGroupHeaderPresenter.prototype.getGroupButton=function(x,y){var self=this;var sheet=self._sheet,maxLevel=self._maxLevel;if(!sheet||maxLevel<0){return keyword_null}var rowGroup=self._rowGroup,groupLayout=sheet._getGroupLayout(),minSize=self._calcMinWidthOrHeight({width:groupLayout.width,height:groupLayout.height},rowGroup);if(minSize===0){return keyword_null}var buttonCount=maxLevel+2,columnX,rowY,i,btnRect,layout=sheet._getSheetLayout();if(rowGroup){if(sheet.colHeaderVisible&&layout.colHeaderHeight>=minSize){columnX=self.PADDING;rowY=Math_max(0,layout.headerY+(layout.colHeaderHeight-minSize)/2);for(i=0;i<buttonCount;i++){btnRect=new spread.Rect(groupLayout.x+columnX,groupLayout.y+rowY,minSize,minSize);if(btnRect.contains(x,y)){return{index:i}}columnX+=minSize}}}else
{if(sheet.rowHeaderVisible&&layout.rowHeaderWidth>=minSize){columnX=Math_max(0,layout.headerX+(layout.rowHeaderWidth-minSize)/2);rowY=self.PADDING;for(i=0;i<buttonCount;i++){btnRect=new spread.Rect(groupLayout.x+columnX,groupLayout.y+rowY,minSize,minSize);if(btnRect.contains(x,y)){return{index:i}}rowY+=minSize}}}return keyword_null};_RangeGroupHeaderPresenter.prototype._calcMinWidthOrHeight=function(finalSize,rowGroup){var size=0,maxLevel=this._maxLevel;if(rowGroup){size=(finalSize.width-this.PADDING*2)/(maxLevel+2)}else
{size=(finalSize.height-this.PADDING*2)/(maxLevel+2)}size=Math_max(0,size);return size};return _RangeGroupHeaderPresenter})();spread._RangeGroupHeaderPresenter=_RangeGroupHeaderPresenter})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var __extends=this.__extends||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __};var wijmo;(function(wijmo){(function(spread){spread.feature("sparkline",["core.common","core.theme","core.sheet_model"]);var keyword_null=null,keyword_undefined=undefined,Math_min=Math.min,Math_floor=Math.floor,Math_max=Math.max,Math_abs=Math.abs,Math_PI=Math.PI,const_undefined="undefined";var Colors={Black:"black",Blue:'Blue',Brown:'Brown'};var Color={FromArgb:function(a,r,g,b){return new spread._Color(a,r,g,b).toString()}};spread.__invalidValuePlaceHolder={};function prop(readonly,obj,p,val,extra){if(readonly){return!extra?obj[p]:extra.call(obj,obj[p])}var old=obj[p];obj[p]=val;if(extra){extra.call(obj,old!==val)}return obj}function normalizeColor(color,owner){if(owner&&color){var c=spread._ThemeContext.getColor(owner,color);if(c){return c}}return color}(function(EmptyValueStyle){EmptyValueStyle[EmptyValueStyle["Gaps"]=0]="Gaps";EmptyValueStyle[EmptyValueStyle["Zero"]=1]="Zero";EmptyValueStyle[EmptyValueStyle["Connect"]=2]="Connect"})(spread.EmptyValueStyle||(spread.EmptyValueStyle={}));var EmptyValueStyle=spread.EmptyValueStyle;(function(SparklineAxisMinMax){SparklineAxisMinMax[SparklineAxisMinMax["individual"]=0]="individual";SparklineAxisMinMax[SparklineAxisMinMax["group"]=1]="group";SparklineAxisMinMax[SparklineAxisMinMax["custom"]=2]="custom"})(spread.SparklineAxisMinMax||(spread.SparklineAxisMinMax={}));var SparklineAxisMinMax=spread.SparklineAxisMinMax;var SparklineSetting=(function(){function SparklineSetting(setting){var self=this;if(!setting){self._axisColor=Colors.Black;self._firstMarkerColor=Color.FromArgb(255,149,179,215);self._highMarkerColor=Colors.Blue;self._lastMarkerColor=Color.FromArgb(255,149,179,215);self._lowMarkerColor=Colors.Blue;self._markersColor=Color.FromArgb(255,36,64,98);self._negativeColor=Colors.Brown;self._seriesColor=Color.FromArgb(255,36,64,98);self.displayEmptyCellsAs=0;self.rightToLeft=false;self.displayHidden=false;self.displayXAxis=false;self._showFirst=false;self._showHigh=false;self._showLast=false;self._showLow=false;self._showNegative=false;self._showMarkers=false;self.manualMax=0.0;self.manualMin=0.0;self.maxAxisType=0;self.minAxisType=0;self.groupMaxValue=0;self.groupMinValue=0;self.lineWeight=1.0}else
{for(var x in setting){if(x){self[x]=setting[x]}}}self._worksheet=keyword_null}SparklineSetting.prototype.axisColor=function(value){return prop(arguments.length===0,this,'_axisColor',value)};SparklineSetting.prototype.firstMarkerColor=function(value){return prop(arguments.length===0,this,'_firstMarkerColor',value)};SparklineSetting.prototype.highMarkerColor=function(value){return prop(arguments.length===0,this,'_highMarkerColor',value)};SparklineSetting.prototype.lastMarkerColor=function(value){return prop(arguments.length===0,this,'_lastMarkerColor',value)};SparklineSetting.prototype.lowMarkerColor=function(value){return prop(arguments.length===0,this,'_lowMarkerColor',value)};SparklineSetting.prototype.markersColor=function(value){return prop(arguments.length===0,this,'_markersColor',value)};SparklineSetting.prototype.negativeColor=function(value){return prop(arguments.length===0,this,'_negativeColor',value)};SparklineSetting.prototype.seriesColor=function(value){return prop(arguments.length===0,this,'_seriesColor',value)};SparklineSetting.prototype.showFirst=function(value){return prop(arguments.length===0,this,'_showFirst',value)};SparklineSetting.prototype.showHigh=function(value){return prop(arguments.length===0,this,'_showHigh',value)};SparklineSetting.prototype.showLast=function(value){return prop(arguments.length===0,this,'_showLast',value)};SparklineSetting.prototype.showLow=function(value){return prop(arguments.length===0,this,'_showLow',value)};SparklineSetting.prototype.showNegative=function(value){return prop(arguments.length===0,this,'_showNegative',value)};SparklineSetting.prototype.showMarkers=function(value){return prop(arguments.length===0,this,'_showMarkers',value)};SparklineSetting.prototype.clone=function(){var self=this;var s=new SparklineSetting;s._axisColor=self._axisColor;s._firstMarkerColor=self._firstMarkerColor;s._highMarkerColor=self._highMarkerColor;s._lastMarkerColor=self._lastMarkerColor;s._lowMarkerColor=self._lowMarkerColor;s._markersColor=self._markersColor;s._negativeColor=self._negativeColor;s._seriesColor=self._seriesColor;s.displayEmptyCellsAs=self.displayEmptyCellsAs;s.rightToLeft=self.rightToLeft;s.displayHidden=self.displayHidden;s.displayXAxis=self.displayXAxis;s._showFirst=self._showFirst;s._showHigh=self._showHigh;s._showLast=self._showLast;s._showLow=self._showLow;s._showNegative=self._showNegative;s._showMarkers=self._showMarkers;s.manualMax=self.manualMax;s.manualMin=self.manualMin;s.maxAxisType=self.maxAxisType;s.minAxisType=self.minAxisType;s.groupMaxValue=self.groupMaxValue;s.groupMinValue=self.groupMinValue;s.lineWeight=self.lineWeight;return s};SparklineSetting.prototype._setThemeContext=function(worksheet){this._worksheet=worksheet};SparklineSetting.prototype._getActualColor=function(colorType){var sheet=this._worksheet;if(sheet){return normalizeColor(this[colorType](),sheet)}return keyword_null};SparklineSetting.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"axisColor":return value===Colors.Black;case"firstMarkerColor":return value===Color.FromArgb(255,149,179,215);case"highMarkerColor":return value===Colors.Blue;case"lastMarkerColor":return value===Color.FromArgb(255,149,179,215);case"lowMarkerColor":return value===Colors.Blue;case"markersColor":return value===Color.FromArgb(255,36,64,98);case"negativeColor":return value===Colors.Brown;case"seriesColor":return value===Color.FromArgb(255,36,64,98);case"displayEmptyCellsAs":return value===0;case"rightToLeft":return value===false;case"displayHidden":return value===false;case"displayXAxis":return value===false;case"showFirst":return value===false;case"showHigh":return value===false;case"showLast":return value===false;case"showLow":return value===false;case"showNegative":return value===false;case"showMarkers":return value===false;case"manualMax":return value===0.0;case"manualMin":return value===0.0;case"maxAxisType":return value===0;case"minAxisType":return value===0;case"groupMaxValue":return value===0;case"groupMinValue":return value===0;case"lineWeight":return value===1;default:return false}};SparklineSetting.prototype.toJSON=function(){var self=this;var dictData={axisColor:self._axisColor,firstMarkerColor:self._firstMarkerColor,highMarkerColor:self._highMarkerColor,lastMarkerColor:self._lastMarkerColor,lowMarkerColor:self._lowMarkerColor,markersColor:self._markersColor,negativeColor:self._negativeColor,seriesColor:self._seriesColor,displayEmptyCellsAs:self.displayEmptyCellsAs,rightToLeft:self.rightToLeft,displayHidden:self.displayHidden,displayXAxis:self.displayXAxis,showFirst:self._showFirst,showHigh:self._showHigh,showLast:self._showLast,showLow:self._showLow,showNegative:self._showNegative,showMarkers:self._showMarkers,manualMax:self.manualMax,manualMin:self.manualMin,maxAxisType:self.maxAxisType,minAxisType:self.minAxisType,groupMaxValue:self.groupMaxValue,groupMinValue:self.groupMinValue,lineWeight:self.lineWeight};var sdata={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){sdata[item]=value}}if($.isEmptyObject(sdata)){return keyword_undefined}return sdata};return SparklineSetting})();spread.SparklineSetting=SparklineSetting;(function(SparklineType){SparklineType[SparklineType["line"]=0]="line";SparklineType[SparklineType["column"]=1]="column";SparklineType[SparklineType["winloss"]=2]="winloss"})(spread.SparklineType||(spread.SparklineType={}));var SparklineType=spread.SparklineType;(function(DataOrientation){DataOrientation[DataOrientation["Vertical"]=0]="Vertical";DataOrientation[DataOrientation["Horizontal"]=1]="Horizontal"})(spread.DataOrientation||(spread.DataOrientation={}));var DataOrientation=spread.DataOrientation;var SparklineGroup=(function(){function SparklineGroup(type,setting){var self=this;self.displayDateAxis=false;self._sparklineGroupManager=keyword_null;self._innerList=[];self._axisReference=keyword_null;self._axisOrientation=1;self.setting=setting;self.sparklineType=type}SparklineGroup.prototype.add=function(item){var self=this;if(item){self._innerList.push(item);item.group(self);self._adjustGroupMaxMinValue();self.onGroupChanged()}};SparklineGroup.prototype.remove=function(item){var self=this;var ret=self._innerList.remove(item);item.onSparklineChanged();item._group=self.clone();self._adjustGroupMaxMinValue();self.onGroupChanged();return ret};SparklineGroup.prototype.contains=function(item){return this._innerList.contains(item)};SparklineGroup.prototype.onGroupChanged=function(){if(this._innerList){for(var i=0;i<this._innerList.length;i++){var item=this._innerList[i];if(item){item.onSparklineChanged()}}}};SparklineGroup.prototype.clone=function(){var self=this;var setting=!self.setting?keyword_null:self.setting.clone();var g=new SparklineGroup(self.sparklineType,setting);g.displayDateAxis=self.displayDateAxis;g._axisReference=self._axisReference;g._axisOrientation=self._axisOrientation;return g};SparklineGroup.prototype.dateAxisData=function(value){if(arguments.length===0){return prop(true,this,'_axisReference',value)}else
{return prop(false,this,'_axisReference',value,function(changed){if(changed){this.onGroupChanged()}})}};SparklineGroup.prototype.dateAxisOrientation=function(value){if(arguments.length===0){return prop(true,this,'_axisOrientation',value)}else
{return prop(false,this,'_axisOrientation',value,function(changed){if(changed){this.onGroupChanged()}})}};SparklineGroup.prototype.count=function(){return this._innerList.length};SparklineGroup.prototype._adjustGroupMaxMinValue=function(){var self=this;if(!self.setting){return}self.setting.groupMaxValue=-Number.MAX_VALUE;self.setting.groupMinValue=Number.MAX_VALUE;var useGroupMax=(self.setting.maxAxisType===1);var useGroupMin=(self.setting.minAxisType===1);var isNeedUpdateGroup=false;if(useGroupMax||useGroupMin){for(var i=0;i<self._innerList.length;i++){var sparkline=self._innerList[i];var res=self._getMaxMinValues(sparkline);var min=res.min;var max=res.max;if(useGroupMax&&self.setting.groupMaxValue<max){self.setting.groupMaxValue=max;isNeedUpdateGroup=true}if(useGroupMin&&self.setting.groupMinValue>min){self.setting.groupMinValue=min;isNeedUpdateGroup=true}}}return isNeedUpdateGroup};SparklineGroup.prototype._getMaxMinValues=function(sparkline){var max=-Number.MAX_VALUE;var min=Number.MAX_VALUE;var data=sparkline.data();if(data){var values=sparkline._provideValues(data,sparkline.dataOrientation(),false);for(var i=0;i<values.length;i++){var val=values[i];if(val===spread.__invalidValuePlaceHolder){val=0}if(typeof val==='number'){var check=val;max=max<check?check:max;min=min>check?check:min}}}return{min:min,max:max}};SparklineGroup.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"setting":return value===keyword_null;case"displayDateAxis":return value===false;case"axisReference":return value===keyword_null;case"axisOrientation":return value===1;case"sparklines":return value.length===0;default:return false}};SparklineGroup.prototype.toJSON=function(){var self=this;var dictData={setting:self.setting?self.setting.toJSON():keyword_null,displayDateAxis:self.displayDateAxis,sparklineType:self.sparklineType,axisReference:self._axisReference,axisOrientation:self._axisOrientation,sparklines:self._innerList};var jsonData={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){jsonData[item]=value}}if($.isEmptyObject(jsonData)){return keyword_undefined}return jsonData};SparklineGroup.prototype.fromJSON=function(jsonData){if(!jsonData){return}var self=this;if(jsonData.setting){self.setting=new SparklineSetting;var jsonSetting=jsonData.setting;for(var item in self.setting){if(self.setting.hasOwnProperty(item)){if(jsonSetting.hasOwnProperty(item)){self.setting[item]=jsonSetting[item]}else
{if(item.substr(0,1)==="_"){var aliasItem=item.substr(1);if(jsonSetting.hasOwnProperty(aliasItem)){self.setting[item]=jsonSetting[aliasItem]}}}}}}if(jsonData.displayDateAxis!==keyword_undefined&&jsonData.displayDateAxis!==keyword_null){self.displayDateAxis=jsonData.displayDateAxis}if(jsonData.sparklineType!==keyword_undefined&&jsonData.sparklineType!==keyword_null){self.sparklineType=jsonData.sparklineType}if(jsonData.axisReference!==keyword_undefined&&jsonData.axisReference!==keyword_null){self._axisReference=jsonData.axisReference}if(jsonData.axisOrientation!==keyword_undefined&&jsonData.axisOrientation!==keyword_null){self._axisOrientation=jsonData.axisOrientation}if(jsonData.sparklines){self._innerList=[];var sparklinesData=jsonData.sparklines,count=sparklinesData.length;for(var i=0;i<count;i++){var sp=new Sparkline;sp.fromJSON(sparklinesData[i]);self.add(sp)}}};return SparklineGroup})();spread.SparklineGroup=SparklineGroup;var _PositionRect=(function(){function _PositionRect(x,y,w,h){var self=this;self.X=x;self.Y=y;self.Width=w;self.Height=h;self.Left=self.X;self.Right=self.Left+self.Width;self.Top=self.Y;self.Bottom=self.Y+self.Height}return _PositionRect})();spread._PositionRect=_PositionRect;var SparklineRender=(function(){function SparklineRender(sparkline){this._minItemHeight=2;this.info=sparkline;this._clearCache()}SparklineRender.prototype.sparklineInfo=function(value){return prop(arguments.length===0,this,'info')};SparklineRender.prototype.paint=function(ctx,x,y,w,h){var self=this;self._clearCache();var sheet=self._getWorksheet(),sparkline=self.info,cachedValues=self._getCachedValues(),cachedDatetimes=sparkline.dateAxisData()?self._getCachedDatetimes():[],zoomFactor=sheet._zoomFactor;sparkline.setting()._setThemeContext(sheet);self._paintCore(ctx,x,y,w,h,cachedValues,cachedDatetimes,zoomFactor)};SparklineRender.prototype._paintCore=function(ctx,x,y,w,h,cachedValues,cachedDatetimes,zoomFactor){ctx.save();ctx.rect(x,y,w,h);ctx.clip();ctx.beginPath();var self=this;if(self.info.sparklineType()===0){self._paintLines(ctx,x,y,w,h,cachedValues,cachedDatetimes,zoomFactor)}self._paintDataPoints(ctx,x,y,w,h,cachedValues,cachedDatetimes,zoomFactor);self._paintAxis(ctx,x,y,w,h,cachedValues,cachedDatetimes,zoomFactor);ctx.restore()};SparklineRender.prototype._clearCache=function(){var self=this;self._cachedMinDatetime=Number.MAX_VALUE;self._cachedMaxDatetime=-Number.MAX_VALUE;self._cachedMinValue=Number.MAX_VALUE;self._cachedMaxValue=-Number.MAX_VALUE;self._cachedIndexMapping=keyword_null;self._cachedValues=keyword_null;self._cachedDatetimes=keyword_null};SparklineRender.prototype._getWorksheet=function(){var info=this.info,group=(info&&info.group()),groupManager=(group&&group._sparklineGroupManager);if(groupManager){return groupManager._sheet}};SparklineRender.prototype._getSpace=function(anchor,zoomFactor){if(this.info.sparklineType()===0){return 3+this._getLineWeight(zoomFactor)+1}return 3};SparklineRender.prototype._leftSpace=function(zoomFactor){return this._getSpace('left',zoomFactor)};SparklineRender.prototype._rightSpace=function(zoomFactor){return this._getSpace('right',zoomFactor)};SparklineRender.prototype._topSpace=function(zoomFactor){return this._getSpace('top',zoomFactor)};SparklineRender.prototype._bottomSpace=function(zoomFactor){return this._getSpace('bottom',zoomFactor)};SparklineRender.prototype._getCachedValues=function(){var cachedValues=this._cachedValues;if(!cachedValues){var info=this.info,range=info.data(),orientation=info.dataOrientation();cachedValues=this._cachedValues=info._provideValues(range,orientation)}return cachedValues};SparklineRender.prototype._getCachedDatetimes=function(){var cachedDatetimes=this._cachedDatetimes;if(!cachedDatetimes){var info=this.info,group=info.group(),range=group.dateAxisData(),orientation=group.dateAxisOrientation();cachedDatetimes=this._cachedDatetimes=info._provideValues(range,orientation,true)}return cachedDatetimes};SparklineRender.prototype._getCachedIndexMaping=function(cachedValues,cachedDatetimes){var cachedIndexMapping=this._cachedIndexMapping;if(cachedIndexMapping){return cachedIndexMapping}cachedIndexMapping=this._cachedIndexMapping=[];var invalidValuePlaceHolder=spread.__invalidValuePlaceHolder,valueCount=cachedValues.length,i,v;if(this.sparklineInfo().displayDateAxis()){var dateAxisCount=cachedDatetimes.length,count=Math_min(valueCount,dateAxisCount),sorted=[];if(count>0){sorted=cachedDatetimes.slice(0,count)}sorted.sort(function(a,b){if(a===b){return 0}if(a===invalidValuePlaceHolder){a=0}if(b===invalidValuePlaceHolder){b=0}return a-b});var sortedCount=sorted.length,datetime,valueIndex;for(i=0;i<sortedCount;i++){datetime=sorted[i];if(typeof(datetime)===const_undefined||datetime===keyword_null){continue}valueIndex=cachedDatetimes.indexOf(datetime);while(cachedIndexMapping.contains(valueIndex)){valueIndex=cachedDatetimes.indexOf(datetime,valueIndex+1)}if(!isNaN(datetime)){v=cachedValues[valueIndex];if(!(v!==keyword_undefined&&v!==keyword_null&&isNaN(v)&&v!==invalidValuePlaceHolder)){cachedIndexMapping.push(valueIndex)}}}}else
{for(i=0;i<valueCount;i++){v=cachedValues[i];if(!(typeof(v)!==const_undefined&&v!==keyword_null&&isNaN(v)&&v!==invalidValuePlaceHolder)){cachedIndexMapping.push(i)}}}return cachedIndexMapping};SparklineRender.prototype._getValue=function(valueIndex,cachedValues){var item=cachedValues[valueIndex];if(typeof(item)===const_undefined||item===keyword_null){if(this.sparklineInfo().setting().displayEmptyCellsAs===1){item=0}}else if(item===spread.__invalidValuePlaceHolder){item=0}return item};SparklineRender.prototype._paintLines=function(ctx,x,y,w,h,cachedValues,cachedDatetimes,zoomFactor){var self=this;var cachedIndexMaping=self._getCachedIndexMaping(cachedValues,cachedDatetimes),i,p1,p2,count=cachedIndexMaping.length-1;if(count<0){count=0}var linePos=self.linePos=[],start,end,endIndex,startRec,endRec,displayEmptyCellsAs=self.sparklineInfo().setting().displayEmptyCellsAs,temp,d;for(i=0;i<count;i++){start=self._getValue(cachedIndexMaping[i],cachedValues);if(typeof(start)!==const_undefined&&start!==keyword_null){endIndex=i+1;end=self._getValue(cachedIndexMaping[endIndex],cachedValues);if(typeof(end)===const_undefined||end===keyword_null){if(displayEmptyCellsAs===1){end=0}else if(displayEmptyCellsAs===2){for(endIndex=i+2;endIndex<=count;endIndex++){temp=cachedValues[cachedIndexMaping[endIndex]];if(typeof(temp)!==const_undefined&&temp!==keyword_null){end=temp;break}}}}if(typeof(end)!==const_undefined&&end!==keyword_null){startRec=self._getDataPointPosition(cachedIndexMaping[i],{Width:w,Height:h},cachedValues,cachedDatetimes,zoomFactor);endRec=self._getDataPointPosition(cachedIndexMaping[endIndex],{Width:w,Height:h},cachedValues,cachedDatetimes,zoomFactor);d=startRec.Width/2;p1={X:startRec.X+d,Y:startRec.Y+d};p2={X:endRec.X+d,Y:endRec.Y+d};linePos[i]={P1:p1,P2:p2}}else
{i++}}}var linePosCount=linePos.length,line;if(linePosCount>0){ctx.strokeStyle=self.info.setting()._getActualColor("seriesColor");ctx.lineCap='round';ctx.lineWidth=self._getLineWeight(zoomFactor);for(i=0;i<linePosCount;i++){line=linePos[i];if(!line){continue}ctx.beginPath();p1=line.P1;p2=line.P2;ctx.moveTo(x+p1.X,y+p1.Y);ctx.lineTo(x+p2.X,y+p2.Y);ctx.stroke();ctx.closePath()}}};SparklineRender.prototype._getDataPointColor=function(indexInValueCache,cachedValues,cachedDatetimes){var self=this;var ret=keyword_null,MAX_VALUE=Number.MAX_VALUE,MIN_VALUE=-Number.MAX_VALUE,value=self._getValue(indexInValueCache,cachedValues),setting=self.info.setting(),cachedMinValue=self._cachedMinValue,cachedMaxValue=self._cachedMaxValue,cachedIndexMaping=self._getCachedIndexMaping(cachedValues,cachedDatetimes),cachedIndexMapingCount=cachedIndexMaping.length,info=self.info,group=info.group();if(typeof(value)!==const_undefined&&value!==keyword_null){if(cachedMinValue===Number.MAX_VALUE||cachedMaxValue===-Number.MAX_VALUE){self._getMaxMinValue(cachedValues)}var min=cachedMinValue;if(value===min&&setting.showLow()){ret=setting._getActualColor("lowMarkerColor")}if(typeof(ret)===const_undefined||ret===keyword_null){var max=cachedMaxValue;if(value===max&&setting.showHigh()){ret=setting._getActualColor("highMarkerColor")}}if(typeof(ret)===const_undefined||ret===keyword_null){if(group.displayDateAxis){var dateIndex1=cachedIndexMaping.indexOf(indexInValueCache);if(dateIndex1===0&&setting.showFirst()){ret=setting._getActualColor("firstMarkerColor")}}else
{if(indexInValueCache===0&&setting.showFirst()){ret=setting._getActualColor("firstMarkerColor")}}}if(typeof(ret)===const_undefined||ret===keyword_null){if(group.displayDateAxis){var dateIndex2=cachedIndexMaping.indexOf(indexInValueCache);if(dateIndex2===cachedIndexMapingCount-1&&setting.showLast()){ret=setting._getActualColor("lastMarkerColor")}}else
{if(indexInValueCache===cachedIndexMapingCount-1&&setting.showLast()){ret=setting._getActualColor("lastMarkerColor")}}}if(typeof(ret)===const_undefined||ret===keyword_null){if(value<0&&setting.showNegative()){ret=setting._getActualColor("negativeColor")}}if(typeof(ret)===const_undefined||ret===keyword_null){var sparklineType=info.sparklineType();if(sparklineType===0){if(setting.showMarkers()){ret=setting._getActualColor("markersColor")}}else if(sparklineType===1){ret=setting._getActualColor("seriesColor")}else if(sparklineType===2){ret=setting._getActualColor("seriesColor")}}}if(ret===keyword_undefined||ret===keyword_null){return'Transparent'}else
{return ret}};SparklineRender.prototype._paintDataPoints=function(ctx,x,y,w,h,cachedValues,cachedDatetimes,zoomFactor){var self=this;var finalSize={Width:w,Height:h},cachedIndexMaping=self._getCachedIndexMaping(cachedValues,cachedDatetimes),cachedIndexMapingCount=cachedIndexMaping.length,spType=self.info.sparklineType(),index,color,rec,centerX,centerY,newX,newY,newWidth,newHeight;for(var i=0;i<cachedIndexMapingCount;i++){index=cachedIndexMaping[i];color=self._getDataPointColor(index,cachedValues,cachedDatetimes);rec=self._getDataPointPosition(index,finalSize,cachedValues,cachedDatetimes,zoomFactor);if(ctx.fillStyle!==color){ctx.fillStyle=color}if(spType===0){ctx.save();centerX=x+rec.X+rec.Width/2;centerY=y+rec.Y+rec.Height/2;ctx.translate(centerX,centerY);ctx.rotate(45*Math_PI/180);ctx.fillRect(0-rec.Width/2,0-rec.Height/2,rec.Width,rec.Height);ctx.restore()}else
{newX=x+rec.X+rec.Width/4;newX=Math_floor(newX);newY=y+rec.Y;newWidth=rec.Width/2;newHeight=rec.Height;ctx.fillRect(newX,newY,newWidth,newHeight)}}};SparklineRender.prototype._paintAxis=function(ctx,x,y,w,h,cachedValues,cachedDatetimes,zoomFactor){var self=this;var setting=self.info.setting();if(!setting.displayXAxis||!self._hasAxis(cachedValues,cachedDatetimes)){return}var avalibleSize={Width:w,Height:h},x1=self._leftSpace(zoomFactor),x2=avalibleSize.Width-self._rightSpace(zoomFactor),y1=Math_floor(self._getAxisY(avalibleSize,cachedValues,zoomFactor))+0.5,y2=y1,color=setting._getActualColor('axisColor'),lineWidth=zoomFactor;if(lineWidth<1){lineWidth=1}if(ctx.strokeStyle!==color){ctx.strokeStyle=color}if(ctx.lineWidth!==lineWidth){ctx.lineWidth=lineWidth}ctx.beginPath();ctx.moveTo(x+x1,y+y1);ctx.lineTo(x+x2,y+y2);ctx.stroke()};SparklineRender.prototype._hasAxisNormal=function(cachedValues){var max=this._getActualMaxValue(cachedValues);if(max!==-Number.MAX_VALUE){var min=this._getActualMinValue(cachedValues);if(min!==Number.MAX_VALUE){return max===min||(max*min<=0)}}return true};SparklineRender.prototype._hasAxis=function(cachedValues,cachedDatetimes){var b=this._hasAxisNormal(cachedValues);if(this.info.sparklineType()!==2){return b}var cachedIndexMaping=this._getCachedIndexMaping(cachedValues,cachedDatetimes),cachedIndexMapingCount=cachedIndexMaping.length,index,item;if(!b&&cachedIndexMapingCount>0){for(var i=0;i<cachedIndexMapingCount;i++){index=cachedIndexMaping[i];item=cachedValues[index];if(typeof(item)!==const_undefined&&item!==keyword_null){return true}}}return b};SparklineRender.prototype._getMinDatetime=function(cachedValues,cachedDatetimes){var oldCachedMinDatetime=this._cachedMinDatetime;if(isNaN(oldCachedMinDatetime)||oldCachedMinDatetime===Number.MAX_VALUE){this._getMaxMindatetimes(cachedValues,cachedDatetimes)}return this._cachedMinDatetime};SparklineRender.prototype._getMaxDatetime=function(cachedValues,cachedDatetimes){var oldCachedMaxDatetime=this._cachedMaxDatetime;if(isNaN(oldCachedMaxDatetime)||oldCachedMaxDatetime===-Number.MAX_VALUE){this._getMaxMindatetimes(cachedValues,cachedDatetimes)}return this._cachedMaxDatetime};SparklineRender.prototype._getMaxMindatetimes=function(cachedValues,cachedDatetimes){var self=this;var maxDatetime=new Date(0,0,0),minDatetime=Number.MAX_VALUE,cachedIndexMaping=self._getCachedIndexMaping(cachedValues,cachedDatetimes),cachedIndexMapingCount=cachedIndexMaping.length,index,datetime,v;for(var i=0;i<cachedIndexMapingCount;i++){index=cachedIndexMaping[i];datetime=cachedDatetimes[index];if(isNaN(datetime)){continue}v=self._getValue(index,cachedValues);if(v!==keyword_null&&typeof(v)===const_undefined||isNaN(v)){continue}if(typeof(datetime)===const_undefined||datetime===keyword_null){continue}if(datetime>maxDatetime){maxDatetime=datetime}if(datetime<minDatetime){minDatetime=datetime}}self._cachedMaxDatetime=maxDatetime;self._cachedMinDatetime=minDatetime};SparklineRender.prototype._calcItemWidth=function(availableSize,cachedValues,cachedDatetimes,zoomFactor){var self=this;var min=self._getMinDatetime(cachedValues,cachedDatetimes),max=self._getMaxDatetime(cachedValues,cachedDatetimes),datetimeValues=[],i,d,index,cachedIndexMaping=self._getCachedIndexMaping(cachedValues,cachedDatetimes),cachedIndexMapingCount=cachedIndexMaping.length;for(i=0;i<cachedIndexMapingCount;i++){index=cachedIndexMaping[i];d=cachedDatetimes[index];if(typeof(d)===const_undefined||d===keyword_null||isNaN(d)){continue}if(!d){continue}datetimeValues.push(d)}datetimeValues.sort(function(x,y){return x-y});var valueCount=datetimeValues.length;if(valueCount>1&&min!==max){var minDValue=Number.MAX_VALUE,sumD=0,oa;for(i=1;i<valueCount;i++){oa=datetimeValues[i];d=oa-datetimeValues[i-1];if(d<minDValue&&d>0){minDValue=d}sumD+=d}var width=(availableSize.Width-self._leftSpace(zoomFactor)-self._rightSpace(zoomFactor))*minDValue/sumD/2;if(width<2){width=2}return width}else
{return(availableSize.Width-self._leftSpace(zoomFactor)-self._rightSpace(zoomFactor))/2}};SparklineRender.prototype._getItemWidth=function(availableSize,cachedValues,cachedDatetimes,zoomFactor){var self=this;if(self.info.displayDateAxis()){return self._calcItemWidth(availableSize,cachedValues,cachedDatetimes,zoomFactor)}else
{var count=self._getCachedIndexMaping(cachedValues,cachedDatetimes).length;return((availableSize.Width-self._leftSpace(zoomFactor)-self._rightSpace(zoomFactor))/count)}};SparklineRender.prototype._getItemX=function(availableSize,index,cachedValues,cachedDatetimes,zoomFactor){var self=this;var itemWidth,leftSpace=self._leftSpace(zoomFactor);if(self.sparklineInfo().displayDateAxis()){itemWidth=self._getItemWidth(availableSize,cachedValues,cachedDatetimes,zoomFactor);var max=self._getMaxDatetime(cachedValues,cachedDatetimes),min=self._getMinDatetime(cachedValues,cachedDatetimes);if(max===min){return leftSpace+itemWidth/2}var datetime=cachedDatetimes[index];if(!datetime){return 0}var canvasWidth=availableSize.Width-leftSpace-self._rightSpace(zoomFactor);canvasWidth-=itemWidth;var range=(max-min);return leftSpace+Math_floor(((datetime-min)/range)*canvasWidth)}else
{itemWidth=self._getItemWidth(availableSize,cachedValues,cachedDatetimes,zoomFactor);var valueIndex=self._getCachedIndexMaping(cachedValues,cachedDatetimes).indexOf(index),x=leftSpace+itemWidth*valueIndex;return Math_floor(x)}};SparklineRender.prototype._getCanvasSize=function(availableSize,zoomFactor){var self=this;var w=availableSize.Width-self._leftSpace(zoomFactor)-self._rightSpace(zoomFactor);w=Math_max(w,0);var h=availableSize.Height-self._topSpace(zoomFactor)-self._bottomSpace(zoomFactor);h=Math_max(h,0);return{Width:w,Height:h}};SparklineRender.prototype._getMaxMinValue=function(cachedValues){var self=this;var valueCount=cachedValues.length,item;for(var i=0;i<valueCount;i++){item=cachedValues[i];if(typeof(item)!==const_undefined&&item!==keyword_null){if(typeof item!=='number'){item=0}if(item<self._cachedMinValue){self._cachedMinValue=item}if(item>self._cachedMaxValue){self._cachedMaxValue=item}}}};SparklineRender.prototype._getActualMaxValue=function(cachedValues){var self=this;if(self._cachedMaxValue===-Number.MAX_VALUE||!self._cachedMaxValue){self._getMaxMinValue(cachedValues)}var setting=self.info.setting(),maxAxisType=setting.maxAxisType;if(maxAxisType===0){return self._cachedMaxValue}else if(maxAxisType===1){return setting.groupMaxValue}else if(maxAxisType===2){return setting.manualMax}return self._cachedMaxValue};SparklineRender.prototype._getActualMinValue=function(cachedValues){var self=this;if(self._cachedMinValue===Number.MAX_VALUE||!self._cachedMinValue){self._getMaxMinValue(cachedValues)}var setting=self.info.setting(),maxAxisType=setting.minAxisType;if(maxAxisType===0){return self._cachedMinValue}else if(maxAxisType===1){return setting.groupMinValue}else if(maxAxisType===2){return setting.manualMin}};SparklineRender.prototype._getItemHeightNormal=function(availableSize,index,cachedValues,zoomFactor){var size=this._getCanvasSize(availableSize,zoomFactor),max=this._getActualMaxValue(cachedValues),min=this._getActualMinValue(cachedValues),range=max-min,value,d;if(max===min){if(max===0){return 0}range=Math_abs(max)}value=cachedValues[index];if(!value){value=0}d=size.Height/range;return(value)*d};SparklineRender.prototype._getItemHeight=function(availableSize,index,cachedValues,zoomFactor){var self=this;var info=self.info,sparklineType=info.sparklineType(),value;if(sparklineType===0){return self._getItemHeightNormal(availableSize,index,cachedValues,zoomFactor)}else if(sparklineType===1){value=cachedValues[index];if(typeof(value)===const_undefined||value===keyword_null){if(info.setting().displayEmptyCellsAs===1){return 0}}var h=self._getItemHeightNormal(availableSize,index,cachedValues,zoomFactor);if(h>-self._minItemHeight&&h<self._minItemHeight){if(value>0){return h+self._minItemHeight}else if(value<0){return h-self._minItemHeight}}return h}else if(sparklineType===2){value=cachedValues[index];if(typeof(value)===const_undefined||value===keyword_null||value===0||isNaN(value)){return 0}var size=self._getCanvasSize(availableSize,zoomFactor);if(value>=0){return size.Height/2}else
{return-size.Height/2}}};SparklineRender.prototype._getAxisYNormal=function(availableSize,cachedValues,zoomFactor){var self=this;var size=self._getCanvasSize(availableSize,zoomFactor),max=self._getActualMaxValue(cachedValues),min=self._getActualMinValue(cachedValues);if(max===-Number.MAX_VALUE||min===Number.MAX_VALUE){return availableSize.Height/2}var range=max-min;if(max===min){if(max===0){return availableSize.Height/2}range=max;if(max<0){max=0}}var d=size.Height/range;return self._topSpace(zoomFactor)+max*d};SparklineRender.prototype._getAxisY=function(availableSize,cachedValues,zoomFactor){if(this.info.sparklineType()===2){return availableSize.Height/2}return this._getAxisYNormal(availableSize,cachedValues,zoomFactor)};SparklineRender.prototype._getItemVisibleHeightNormal=function(availableSize,index,cachedValues,zoomFactor){var self=this;var size=self._getCanvasSize(availableSize,zoomFactor),max=self._getActualMaxValue(cachedValues),min=self._getActualMinValue(cachedValues),range=max-min,d,value;if(max===min){if(max===0){return 0}range=max}d=size.Height/range;value=self._getValue(index,cachedValues);if(typeof(value)===const_undefined||value===keyword_null){value=0}if(max!==min&&max*min>0){var visibleHeight=0;if(value>=0){visibleHeight=(value-min)*d}else
{visibleHeight=(value-max)*d}return visibleHeight}else
{return(value)*d}};SparklineRender.prototype._getItemVisibleHeight=function(availableSize,index,cachedValues,zoomFactor){var self=this;var sparklineType=self.info.sparklineType();if(sparklineType===0){return self._getItemVisibleHeightNormal(availableSize,index,cachedValues,zoomFactor)}else if(sparklineType===1){var h=self._getItemVisibleHeightNormal(availableSize,index,cachedValues,zoomFactor),minItemHeight=self._minItemHeight;if(h>-minItemHeight&&h<minItemHeight){var value=self._getValue(index,cachedValues);if(typeof(value)===const_undefined||value===keyword_null){value=0}if(value!==0){if(value>0){return h+minItemHeight}else
{return h-minItemHeight}}}return h}else if(sparklineType===2){return self._getItemHeight(availableSize,index,cachedValues,zoomFactor)}};SparklineRender.prototype._getDataPointPositionNormal=function(index,availableSize,cachedValues,cachedDatetimes,zoomFactor){var self=this;var itemWidth=self._getItemWidth(availableSize,cachedValues,cachedDatetimes,zoomFactor),x=self._getItemX(availableSize,index,cachedValues,cachedDatetimes,zoomFactor);if(itemWidth<0){itemWidth=0}itemWidth=Math_floor(itemWidth);if(itemWidth%2===1){itemWidth+=1}var height=self._getItemHeight(availableSize,index,cachedValues,zoomFactor),axis=self._getAxisY(availableSize,cachedValues,zoomFactor),max=self._getActualMaxValue(cachedValues),min=self._getActualMinValue(cachedValues),y=0;if(max<0&&min<0){y=Math_max(self._topSpace(zoomFactor),axis)}else
{y=axis;if(height>=0){y=axis-height}}var visibleHeight=self._getItemVisibleHeight(availableSize,index,cachedValues,zoomFactor),rect=new _PositionRect(x,y,itemWidth,Math_abs(visibleHeight));if(height!==0){var topSpace=self._topSpace(zoomFactor);if(rect.Y<topSpace&&rect.Bottom<topSpace+1){rect.Height=Math_floor(rect.Height+1)}else
{var bottomLine=availableSize.Height-self._bottomSpace(zoomFactor);if(rect.Bottom>bottomLine&&rect.Y>bottomLine-1){rect.Y=bottomLine-visibleHeight;rect.Height=visibleHeight}}}return rect};SparklineRender.prototype._getLineWeight=function(zoomFactor){var lineWeight=this.info.setting().lineWeight*zoomFactor;if(lineWeight<1){lineWeight=1}return lineWeight};SparklineRender.prototype._getDataPointPosition=function(index,availableSize,cachedValues,cachedDatetimes,zoomFactor){var self=this;var lineWeight=self._getLineWeight(zoomFactor);lineWeight++;if(lineWeight<2){lineWeight=2}var rec=self._getDataPointPositionNormal(index,availableSize,cachedValues,cachedDatetimes,zoomFactor);if(self.info.sparklineType()===0){rec.X=rec.X+(rec.Width-lineWeight)/2;var value=self._getValue(index,cachedValues);if(typeof(value)!==const_undefined&&value!==keyword_null){if(value>=0){rec.Y-=lineWeight/2}else
{rec.Y=rec.Bottom-lineWeight/2}rec.Width=lineWeight;rec.Height=lineWeight}else
{rec.Width=0;rec.Height=0}}if(self.info.group().setting.rightToLeft){var left=rec.X,reverseLeft=availableSize.Width-left,newLeft=reverseLeft-rec.Width;rec=new _PositionRect(newLeft,rec.Y,rec.Width,rec.Height)}return rec};return SparklineRender})();spread.SparklineRender=SparklineRender;function _getCount(range,orientation){if(orientation===1){return range.colCount}else
{return range.rowCount}}function _getValue(worksheet,i,range,orientation){if(orientation===1){return worksheet.getValue(range.row,range.col+i)}else
{return worksheet.getValue(range.row+i,range.col)}}function _isHidden(worksheet,i,range,orientation){if(orientation===1){return worksheet.getColumnWidth(range.col+i)<=0||worksheet.getRowHeight(range.row)<=0}else
{return worksheet.getRowHeight(range.row+i)<=0||worksheet.getColumnWidth(range.col)<=0}}var Sparkline=(function(){function Sparkline(row,column,dataReference,dataOrientation,type,setting){var self=this;self.row=row;self.column=column;self._dataOrientation=dataOrientation;self._data=dataReference;self._group=new SparklineGroup(type,setting);self._group.add(self);self._renderer=new SparklineRender(self)}Sparkline.prototype.group=function(value){var self=this;if(arguments.length===0){var g=self._group;if(!g){g=new SparklineGroup;g.add(self);self._group=g}return g}else
{if(value!==self._group){if(self._group){self._group.remove(self)}self._group=value;if(self._group){if(!self._group.contains(self)){self._group.add(self)}}self.onSparklineChanged()}return self}};Sparkline.prototype.sparklineType=function(value){var self=this;if(arguments.length===0){return self.group().sparklineType}else
{if(self.group().sparklineType!==value){self.group().sparklineType=value;self.onSparklineChanged()}return self}};Sparkline.prototype.onSparklineChanged=function(){var sheet=this._getWorksheet();if(sheet){var self=this;sheet._trigger(spread.Events.SparklineChanged,{sheet:sheet,sheetName:sheet._name,sparkline:self})}};Sparkline.prototype.setting=function(value){if(arguments.length===0){return this.group().setting}else
{this.group().setting=value;return this}};Sparkline.prototype.data=function(value){var self=this;if(arguments.length===0){return self._data}else
{if(self._data!==value){self._data=value;self.onSparklineChanged()}return self}};Sparkline.prototype.dataOrientation=function(value){var self=this;if(arguments.length===0){return self._dataOrientation}else
{if(self._dataOrientation!==value){self._dataOrientation=value;self.onSparklineChanged()}return self}};Sparkline.prototype.dateAxisData=function(value){if(arguments.length===0){return this.group().dateAxisData()}else
{this.group().dateAxisData(value);return this}};Sparkline.prototype.dateAxisOrientation=function(value){if(arguments.length===0){return this.group().dateAxisOrientation()}else
{this.group().dateAxisOrientation(value);return this}};Sparkline.prototype.displayDateAxis=function(value){if(arguments.length===0){return this.group().displayDateAxis}else
{this.group().displayDateAxis=value;return this}};Sparkline.prototype.clone=function(){var self=this;var s=new Sparkline;s.row=self.row;s.column=self.column;s.data(self.data());s.dataOrientation(self.dataOrientation());s.group(self.group().clone());return s};Sparkline.prototype.paintSparkline=function(ctx,x,y,w,h){this._renderer.paint(ctx,x,y,w,h)};Sparkline.prototype._provideValues=function(range,orientation,isDatetime){var worksheet=this._getWorksheet();var ret=[];if(!worksheet){return ret}var count=_getCount(range,orientation);for(var i=0;i<count;i++){var value=_getValue(worksheet,i,range,orientation);if(!this.setting().displayHidden&&_isHidden(worksheet,i,range,orientation)){value=NaN}else
{if(value!==keyword_null&&value!==keyword_undefined){if(isDatetime){if(typeof value==='number'){value=spread._DateTimeHelper.fromOADate(value)}else
{value=Date.parse(value)}}else if(typeof value!=='number'){value=spread.__invalidValuePlaceHolder}}}ret.push(value)}return ret};Sparkline.prototype._getWorksheet=function(){return(this.group()&&this.group()._sparklineGroupManager)?this.group()._sparklineGroupManager._sheet:keyword_null};Sparkline.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"axisReference":return value===keyword_null;case"axisOrientation":return value===1;default:return false}};Sparkline.prototype.toJSON=function(){var self=this;var dictData={row:self.row,col:self.column,orientation:self._dataOrientation,data:self._data,type:self._group.sparklineType,setting:self._group.setting,axisReference:self._group._axisReference,axisOrientation:self._group._axisOrientation};var sdata={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){sdata[item]=value}}return sdata};Sparkline.prototype.fromJSON=function(jsonData){if(!jsonData){return}var self=this;if(jsonData.row!==keyword_undefined&&jsonData.row!==keyword_null){self.row=jsonData.row}if(jsonData.col!==keyword_undefined&&jsonData.col!==keyword_null){self.column=jsonData.col}if(jsonData.orientation!==keyword_undefined&&jsonData.orientation!==keyword_null){self._dataOrientation=jsonData.orientation}if(jsonData.data){var cr=jsonData.data;self._data=new spread.Range(cr.row,cr.col,cr.rowCount,cr.colCount)}};return Sparkline})();spread.Sparkline=Sparkline;var WorksheetSparklineGroupManager=(function(){function WorksheetSparklineGroupManager(sheet,calcEvaluator){this._groups=[];this._sheet=sheet;this.evaluator=calcEvaluator}WorksheetSparklineGroupManager.prototype.groups=function(value){return prop(arguments.length===0,this,'_groups')};WorksheetSparklineGroupManager.prototype.add=function(group){this.groups().push(group);group._sparklineGroupManager=this;group._adjustGroupMaxMinValue()};WorksheetSparklineGroupManager.prototype.remove=function(group){this.groups().remove(group)};WorksheetSparklineGroupManager.prototype.contains=function(group){return this.groups().contains(group)};WorksheetSparklineGroupManager.prototype.count=function(){return this.groups().length};WorksheetSparklineGroupManager.prototype._addRows=function(row,count){var self=this;for(var i=0;i<self._groups.length;i++){var g=self._groups[i];if(g.displayDateAxis){var dateAxis=self._addRowRange(row,count,g.dateAxisData());g.dateAxisData(dateAxis)}for(var j=0;j<g._innerList.length;j++){var sparkline=g._innerList[j];if(row<=sparkline.row){sparkline.row+=count}var data=self._addRowRange(row,count,sparkline.data());sparkline.data(data)}}};WorksheetSparklineGroupManager.prototype._addColumns=function(column,count){var self=this;for(var i=0;i<self._groups.length;i++){var g=self._groups[i];if(g.displayDateAxis){var dateAxis=self._addColumnRange(column,count,g.dateAxisData());g.dateAxisData(dateAxis)}for(var j=0;j<g._innerList.length;j++){var sparkline=g._innerList[j];if(column<=sparkline.column){sparkline.column+=count}var data=self._addColumnRange(column,count,sparkline.data());sparkline.data(data)}}};WorksheetSparklineGroupManager.prototype._removeRows=function(row,count){var self=this;for(var i=0;i<self._groups.length;i++){var g=self._groups[i];if(g.displayDateAxis){var dateAxis=self._removeRowRange(row,count,g.dateAxisData());if(dateAxis!==keyword_null&&dateAxis!==keyword_undefined){g.dateAxisData(dateAxis)}else
{g.clear();self.remove(g);continue}}var lines=[];lines=lines.concat(g._innerList);for(var j=0;j<lines.length;j++){var sparkline=lines[j];if(sparkline.row>=row&&sparkline.row<row+count){g.remove(sparkline)}else
{if(row<=sparkline.row){sparkline.row-=count}var data=self._removeRowRange(row,count,sparkline.data());if(data!==keyword_null&&data!==keyword_undefined){sparkline.data(data)}else
{g.remove(sparkline)}}}if(g.count()<=0){self.remove(g)}}};WorksheetSparklineGroupManager.prototype._removeColumns=function(column,count){var self=this;for(var i=0;i<self._groups.length;i++){var g=self._groups[i];if(g.displayDateAxis){var dateAxis=self._removeColumnRange(column,count,g.dateAxisData());if(dateAxis!==keyword_null&&dateAxis!==keyword_undefined){g.dateAxisData(dateAxis)}else
{g.clear();self.remove(g);continue}}var lines=[];lines=lines.concat(g._innerList);for(var j=0;j<lines.length;j++){var sparkline=lines[j];if(sparkline.column>=column&&sparkline.column<column+count){g.remove(sparkline)}else
{if(column<=sparkline.column){sparkline.column-=count}var data=self._removeColumnRange(column,count,sparkline.data());if(data!==keyword_null&&data!==keyword_undefined){sparkline.data(data)}else
{g.remove(sparkline)}}}if(g.count()<=0){self.remove(g)}}};WorksheetSparklineGroupManager.prototype.clear=function(row,column,rowCount,columnCount){var self=this;if(arguments.length===0){for(var i=0;i<self._groups.length;i++){var item=self._groups[i];if(item){item.SparklineGroupManager=keyword_null}}self._groups.clear();return}for(var r=row;r<row+rowCount;r++){for(var c=column;c<column+columnCount;c++){var sparkline=self._find(r,c);if(sparkline){var g=sparkline.group();g.remove(sparkline);if(g.count()===0){self.remove(g)}}}}};WorksheetSparklineGroupManager.prototype._find=function(row,column){for(var i=0;i<this._groups.length;i++){var g=this._groups[i];for(var j=0;j<g.count();j++){var si=g[j];if(si&&si.row===row&&si.column===column){return si}}}return keyword_null};WorksheetSparklineGroupManager.prototype._copy=function(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount,ignoreFilteredOutRow){var self=this;var sheet=self._sheet;if(!sheet){return}var savedSparkline=new spread._GcSheetModel(rowCount,columnCount,keyword_null);var offsetRow=toRow-fromRow;var offsetColumn=toColumn-fromColumn;var m=sheet._getModel(),i,j,sheetRowCount=sheet.getRowCount(),sheetColumnCount=sheet.getColumnCount();for(i=0;i<rowCount;i++){if(ignoreFilteredOutRow&&sheet.isRowFilterOut(toRow+i)){continue}for(j=0;j<columnCount;j++){var sparkline=m.getSparkline(fromRow+i,fromColumn+j);if(sparkline){var newSparkline=sparkline.clone();newSparkline.row=toRow+i;newSparkline.column=toColumn+j;var dateAxisRef=newSparkline.dateAxisData();if(dateAxisRef!==keyword_null&&dateAxisRef!==keyword_undefined){if(self._canOffset(dateAxisRef,offsetRow,offsetColumn,sheetRowCount,sheetColumnCount)){newSparkline.dateAxisData(dateAxisRef.offset(offsetColumn,offsetRow))}}var dataRef=newSparkline.data();if(dataRef!==keyword_undefined&&dataRef!==keyword_null){if(self._canOffset(dataRef,offsetRow,offsetColumn,sheetRowCount,sheetColumnCount)){newSparkline.data(dataRef.offset(offsetColumn,offsetRow))}}self.add(newSparkline.group());savedSparkline.setValue(i,j,newSparkline)}}}for(i=0;i<rowCount;i++){if(ignoreFilteredOutRow&&sheet.isRowFilterOut(toRow+i)){continue}for(j=0;j<columnCount;j++){m.setSparkline(toRow+i,toColumn+j,savedSparkline.getValue(i,j))}}};WorksheetSparklineGroupManager.prototype._canOffset=function(exp,offsetRow,offsetColumn,MAX_ROW_COUNT,MAX_COLUMN_COUNT){var dataRange=this._getExpressionRange(exp);if(dataRange){var row=dataRange.row<0?0:dataRange.row;var column=dataRange.col<0?0:dataRange.col;var rowCount=dataRange.row<0?MAX_ROW_COUNT:dataRange.rowCount;var columnCount=dataRange.col<0?MAX_COLUMN_COUNT:dataRange.colCount;return!(row+offsetRow<0||column+offsetColumn<0||row+rowCount+offsetRow>MAX_ROW_COUNT||column+columnCount+offsetColumn>MAX_COLUMN_COUNT)}return false};WorksheetSparklineGroupManager.prototype._move=function(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount){var sheet=this._sheet;if(!sheet){return}this._moveDataRange(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount);var m=sheet._getModel();var savedSparkline=new spread._GcSheetModel(rowCount,columnCount,keyword_null);var i,j;for(i=0;i<rowCount;i++){for(j=0;j<columnCount;j++){var sparkline=m.getSparkline(fromRow+i,fromColumn+j);if(sparkline){sparkline.row=toRow+i;sparkline.column=toColumn+j;savedSparkline.setValue(i,j,sparkline)}m.setSparkline(fromRow+i,fromColumn+j,keyword_null)}}for(i=0;i<rowCount;i++){for(j=0;j<columnCount;j++){m.setSparkline(toRow+i,toColumn+j,savedSparkline.getValue(i,j))}}};WorksheetSparklineGroupManager.prototype._moveDataRange=function(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount){var self=this;var moveRange=new spread.Range(fromRow,fromColumn,rowCount,columnCount);var offsetRow=toRow-fromRow;fromRow;var offsetColumn=toColumn-fromColumn;for(var i=0;i<self._groups.length;i++){var g=self._groups[i];for(var j=0;j<g._innerList.length;j++){var sparkline=g._innerList[j];if(!sparkline){continue}var dateAxisRef=sparkline.dateAxisData();var dateAxisRange=self._getExpressionRange(dateAxisRef);if(dateAxisRange){if(moveRange.containsRange(dateAxisRange)&&moveRange.contains(sparkline.row,sparkline.column)){sparkline.dateAxisData(dateAxisRef.offset(offsetColumn,offsetRow))}}var dataRef=sparkline.data();var dataRange=self._getExpressionRange(dataRef);if(dataRange){if(moveRange.containsRange(dataRange)&&moveRange.contains(sparkline.row,sparkline.column)){sparkline.data(dataRef.offset(offsetColumn,offsetRow))}}}}};WorksheetSparklineGroupManager.prototype._getExpressionRange=function(exp){return exp};WorksheetSparklineGroupManager.prototype._swap=function(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount){};WorksheetSparklineGroupManager.prototype._exCopy=function(src,fromRow,fromColumn,toRow,toColumn,rowCount,columnCount,ignoreFilteredOutRow){var self=this;var sheet=self._sheet;if(!sheet){return}if(src===sheet){self._copy(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount);return}var offsetRow=toRow-fromRow;var offsetColumn=toColumn-fromColumn;var srcModel=src._getModel();var destModel=sheet._getModel();var sheetRowCount=sheet.getRowCount(),sheetColumnCount=sheet.getColumnCount();for(var i=0;i<rowCount;i++){if(ignoreFilteredOutRow&&sheet.isRowFilterOut(toRow+i)){continue}for(var j=0;j<columnCount;j++){var sparkline=srcModel.getSparkline(fromRow+i,fromColumn+j);if(sparkline){var newSparkline=sparkline.clone();newSparkline.row=toRow+i;newSparkline.column=toColumn+j;var dateAxisRef=newSparkline.dateAxisData();if(dateAxisRef!==keyword_undefined&&dateAxisRef!==keyword_null){if(self._canOffset(dateAxisRef,offsetRow,offsetColumn,sheetRowCount,sheetColumnCount)){newSparkline.dateAxisData(dateAxisRef.offset(offsetColumn,offsetRow))}}var dataRef=newSparkline.data();if(dataRef!==keyword_undefined&&dataRef!==keyword_null){if(self._canOffset(dataRef,offsetRow,offsetColumn,sheetRowCount,sheetColumnCount)){newSparkline.data(dataRef.offset(offsetColumn,offsetRow))}}self.add(newSparkline.group());destModel.setSparkline(toRow+i,toColumn+j,newSparkline)}else
{destModel.setSparkline(toRow+i,toColumn+j,keyword_null)}}}};WorksheetSparklineGroupManager.prototype._exMove=function(src,fromRow,fromColumn,toRow,toColumn,rowCount,columnCount){var self=this;var sheet=self._sheet;if(!sheet){return}if(src===sheet){self._move(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount);return}var srcModel=src._getModel();var destModel=sheet._getModel();self._exMoveDataRange(src,fromRow,fromColumn,toRow,toColumn,rowCount,columnCount);for(var i=0;i<rowCount;i++){for(var j=0;j<columnCount;j++){var sparkline=srcModel.getSparkline(fromRow+i,fromColumn+j);if(sparkline){sparkline.row=toRow+i;sparkline.column=toColumn+j;var oldGroup=sparkline.group();var newGroup=oldGroup.clone();oldGroup.remove(sparkline);if(oldGroup.length<=0){src._sparklineGroupManager.remove(oldGroup)}newGroup.add(sparkline);self.add(newGroup);destModel.setSparkline(toRow+i,toColumn+j,sparkline)}else
{destModel.setSparkline(toRow+i,toColumn+j,keyword_null)}srcModel.setSparkline(fromRow+i,fromColumn+j,keyword_null)}}};WorksheetSparklineGroupManager.prototype._exMoveDataRange=function(src,fromRow,fromColumn,toRow,toColumn,rowCount,columnCount){var self=this;var sheet=self._sheet;if(!src||!sheet){return}if(src===sheet){self._moveDataRange(fromRow,fromColumn,toRow,toColumn,rowCount,columnCount);return}var moveRange=new spread.Range(fromRow,fromColumn,rowCount,columnCount);var offsetRow=toRow-fromRow;var offsetColumn=toColumn-fromColumn;for(var i=0;i<src._sparklineGroupManager._groups.length;i++){var g=src._sparklineGroupManager._groups[i];for(var j=0;j<g._innerList.length;j++){var sparkline=g._innerList[j];if(!sparkline){continue}var dateAxisRef=sparkline.dateAxisData();var dateAxisRange=self._getExpressionRange(dateAxisRef);if(dateAxisRange&&self._sameSource(src,dateAxisRef)){if(moveRange.containsRange(dateAxisRange)&&moveRange.contains(sparkline.row,sparkline.column)){sparkline.dateAxisData(dateAxisRef.offset(offsetColumn,offsetRow))}}var dataRef=sparkline.data();var dataRange=self._getExpressionRange(dataRef);if(dataRange&&self._sameSource(src,dataRef)){if(moveRange.containsRange(dataRange)&&moveRange.contains(sparkline.row,sparkline.column)){sparkline.data(dataRef.offset(offsetColumn,offsetRow))}}}}};WorksheetSparklineGroupManager.prototype._sameSource=function(source,exp){return true};WorksheetSparklineGroupManager.prototype._addRowRange=function(row,rowCount,range){if(range){if(row>range.row+range.rowCount-1){return range}else if(row>range.row){return new spread.Range(range.row,range.col,range.rowCount+rowCount,range.colCount)}else
{return new spread.Range(range.row+rowCount,range.col,range.rowCount,range.colCount)}}return keyword_null};WorksheetSparklineGroupManager.prototype._addColumnRange=function(column,columnCount,range){if(range){if(column>range.col+range.colCount-1){return range}else if(column>range.col){return new spread.Range(range.row,range.col,range.rowCount,range.colCount+columnCount)}else
{return new spread.Range(range.row,range.col+columnCount,range.rowCount,range.colCount)}}return keyword_null};WorksheetSparklineGroupManager.prototype._removeColumnRange=function(column,columnCount,range){var ret=this._rangeSubCat(range.col,range.col+range.colCount-1,column,column+columnCount-1);if(!ret){return keyword_null}return new spread.Range(range.row,ret.start,range.rowCount,ret.end-ret.start+1)};WorksheetSparklineGroupManager.prototype._removeRowRange=function(row,rowCount,range){var ret=this._rangeSubCat(range.row,range.row+range.rowCount-1,row,row+rowCount-1);if(!ret){return keyword_null}return new spread.Range(ret.start,range.col,ret.end-ret.start+1,range.colCount)};WorksheetSparklineGroupManager.prototype._rangeSubCat=function(sourceStart,sourceEnd,targetStart,targetEnd){var resultStart=-1;var resultEnd,i;if(targetEnd<sourceStart){var removeCount=targetEnd-targetStart+1;resultStart=sourceStart-removeCount;resultEnd=sourceEnd-removeCount;return{start:resultStart,end:resultEnd}}if(targetStart>sourceEnd){resultStart=sourceStart;resultEnd=sourceEnd;return{start:resultStart,end:resultEnd}}if(targetStart<=sourceStart){var sourceCount=sourceEnd-sourceStart+1;var removedCount=0;for(i=sourceStart;i<=targetEnd;i++){if(i<=sourceEnd){removedCount++}else
{break}}resultStart=targetStart;resultEnd=resultStart+sourceCount-removedCount-1;return{start:resultStart,end:resultEnd}}var remainedCount=0;for(i=sourceStart;i<=sourceEnd;i++){if(resultStart===-1){if(i<targetStart||i>targetEnd){resultStart=i}}if(i<targetStart||i>targetEnd){remainedCount++}}if(resultStart!==-1&&remainedCount>0){resultEnd=resultStart+remainedCount-1;return{start:resultStart,end:resultEnd}}return keyword_null};WorksheetSparklineGroupManager.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"groups":return!value||value.length===0;default:return false}};WorksheetSparklineGroupManager.prototype.toJSON=function(){var dictData={groups:(this._groups?this._groups:keyword_null)};var jsonData={};for(var item in dictData){var value=dictData[item];if(!this._isDefaultValue(item,value)){jsonData[item]=value}}if($.isEmptyObject(jsonData)){return keyword_undefined}return jsonData};WorksheetSparklineGroupManager.prototype.fromJSON=function(jsonData){if(!jsonData){return}if(jsonData.groups){this._groups=[];var groupsData=jsonData.groups,count=groupsData.length;for(var i=0;i<count;i++){var g=new SparklineGroup;g.fromJSON(groupsData[i]);this.add(g)}}};return WorksheetSparklineGroupManager})();spread.WorksheetSparklineGroupManager=WorksheetSparklineGroupManager;var SparklineValue=(function(_super){__extends(SparklineValue,_super);function SparklineValue(){_super.apply(this,arguments)}return SparklineValue})(Sparkline);spread.SparklineValue=SparklineValue})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var __extends=this.__extends||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __};var wijmo;(function(wijmo){(function(_spread){_spread.feature("touch",["core.common","core.sheet_action","core.sheet_model","core.sheet_border"]);var keyword_null=null,keyword_undefined=undefined,Math_abs=Math.abs,Math_min=Math.min,Math_pow=Math.pow,Math_atan2=Math.atan2,Math_PI=Math.PI,Math_round=Math.round,Math_sqrt=Math.sqrt,Math_atan=Math.atan,const_undefined="undefined",const_toolbar_offset=100;var TouchEventProvider=(function(){function TouchEventProvider(){var self=this;self._elements=[];self._pressedPointers={length:0};self._checkPointerIntervalId=-1;self._manipulationProcessor=new ManipulationProcessor;self._tapEventProcesser=new TapEventProcesser}TouchEventProvider.prototype.ManipulationStarting=function(handler){var manipulationProcessor=this._manipulationProcessor;if(manipulationProcessor){manipulationProcessor.ManipulationStarting=handler}};TouchEventProvider.prototype.ManipulationStarted=function(handler){var manipulationProcessor=this._manipulationProcessor;if(manipulationProcessor){manipulationProcessor.ManipulationStarted=handler}};TouchEventProvider.prototype.ManipulationCompleted=function(handler){var self=this,manipulationProcessor=self._manipulationProcessor;if(manipulationProcessor){manipulationProcessor.ManipulationCompleted=function(e){if(handler){handler(e);var touchMouseMessageFilter=self._touchMouseMessageFilter;if(touchMouseMessageFilter){touchMouseMessageFilter.postProcessManipulationComplete()}}}}};TouchEventProvider.prototype.ManipulationInertiaStarting=function(handler){var manipulationProcessor=this._manipulationProcessor;if(manipulationProcessor){manipulationProcessor.ManipulationInertiaStarting=handler}};TouchEventProvider.prototype.ManipulationDelta=function(handler){var manipulationProcessor=this._manipulationProcessor;if(manipulationProcessor){manipulationProcessor.ManipulationDelta=handler}};TouchEventProvider.prototype.Tapped=function(handler){var tapEventProcesser=this._tapEventProcesser;if(tapEventProcesser){tapEventProcesser.Tapped=handler}};TouchEventProvider.prototype.DoubleTapped=function(handler){var tapEventProcesser=this._tapEventProcesser;if(tapEventProcesser){tapEventProcesser.DoubleTapped=handler}};TouchEventProvider.prototype.RightTapped=function(handler){var tapEventProcesser=this._tapEventProcesser;if(tapEventProcesser){tapEventProcesser.RightTapped=handler}};TouchEventProvider.prototype.TouchOperatorStart=function(handler){this.touchOperatorStart=handler};TouchEventProvider.prototype.TouchOperatorEnd=function(handler){this.touchOperatorEnd=handler};TouchEventProvider.prototype._getOffsetRelativeToDownElement=function(target,targetElement){var offset={left:0,top:0};var element;if(targetElement){element=targetElement.element}else
{element=this._downElement.element}if(target!==element){var targetOffset=$(target).offset(),canvasOffset=$(element).offset();offset.left=targetOffset.left-canvasOffset.left;offset.top=targetOffset.top-canvasOffset.top}return offset};TouchEventProvider.prototype.msPointerDown=function(element,e){if(e.pointerType===e.MSPOINTER_TYPE_TOUCH||e.pointerType==="touch"){var offset=this._getOffsetRelativeToDownElement(e.target,element);var needHandle=this._down(element,e.target,e.pointerId,new TouchPoint(e.offsetX+offset.left,e.offsetY+offset.top),e.timeStamp);if(needHandle){_spread.util.cancelDefault(e)}if(this._downElement.eventFlag==="sheet"){var canvasOffsetLeft=e.pageX-(e.offsetX+offset.left),canvasOffsetTop=e.pageY-(e.offsetY+offset.top);window.gcGlobal.canvasOffset={top:canvasOffsetTop,left:canvasOffsetLeft}}}};TouchEventProvider.prototype.msPointerMove=function(e){if(e.pointerType===e.MSPOINTER_TYPE_TOUCH||e.pointerType==="touch"){if(this._pressedPointers[e.pointerId]===keyword_undefined){return false}var offset=this._getOffsetRelativeToDownElement(e.target);var needHandle=this._move(e.pointerId,new TouchPoint(e.offsetX+offset.left,e.offsetY+offset.top),e.timeStamp);if(needHandle){_spread.util.cancelDefault(e)}}};TouchEventProvider.prototype.msPointerUp=function(e){if(e.pointerType===e.MSPOINTER_TYPE_TOUCH||e.pointerType==="touch"){if(this._pressedPointers[e.pointerId]===keyword_undefined){return false}var offset=this._getOffsetRelativeToDownElement(e.target);var needHandle=this._up(e.pointerId,new TouchPoint(e.offsetX+offset.left,e.offsetY+offset.top));if(needHandle){_spread.util.cancelDefault(e)}}};TouchEventProvider.prototype.msPointerCancel=function(e){if(e.pointerType===e.MSPOINTER_TYPE_TOUCH||e.pointerType==="touch"){if(this._pressedPointers[e.pointerId]===keyword_undefined){return false}var offset=this._getOffsetRelativeToDownElement(e.target);var needHandle=this._cancel(e.pointerId,new TouchPoint(e.offsetX+offset.left,e.offsetY+offset.top));if(needHandle){_spread.util.cancelDefault(e)}}};TouchEventProvider.prototype._getElementOffset=function(element){var t=$(element).offset();if(t){if(!isNaN(document.body.clientTop)){t.top+=document.body.clientTop}if(!isNaN(document.body.clientLeft)){t.left+=document.body.clientLeft}}else
{t={top:0,left:0}}return t};TouchEventProvider.prototype.touchStart=function(element,e){var canvasOffset=this._getElementOffset(element.element);var needHandle=false;for(var i=0;i<e.changedTouches.length;i++){var touch=e.changedTouches[i];var timeStamp=$.browser.mozilla?(new Date).valueOf():e.timeStamp;needHandle=this._down(element,e.target,touch.identifier,new TouchPoint(touch.pageX-canvasOffset.left,touch.pageY-canvasOffset.top),timeStamp)||needHandle}if(needHandle){_spread.util.cancelDefault(e)}};TouchEventProvider.prototype.touchMove=function(e){var canvasOffset=this._getElementOffset(this._downElement.element);var needHandle=false;for(var i=0;i<e.changedTouches.length;i++){var touch=e.changedTouches[i];var timeStamp=$.browser.mozilla?(new Date).valueOf():e.timeStamp;needHandle=this._move(touch.identifier,new TouchPoint(touch.pageX-canvasOffset.left,touch.pageY-canvasOffset.top),timeStamp)||needHandle}if(needHandle){_spread.util.cancelDefault(e)}};TouchEventProvider.prototype.touchEnd=function(e){var canvasOffset=this._getElementOffset(this._downElement.element);var needHandle=false;for(var i=0;i<e.changedTouches.length;i++){var touch=e.changedTouches[i];needHandle=this._up(touch.identifier,new TouchPoint(touch.pageX-canvasOffset.left,touch.pageY-canvasOffset.top))||needHandle}if(needHandle){_spread.util.cancelDefault(e)}};TouchEventProvider.prototype.touchCancel=function(e){var canvasOffset=this._getElementOffset(this._downElement.element);var needHandle=false;for(var i=0;i<e.changedTouches.length;i++){var touch=e.changedTouches[i];needHandle=this._cancel(touch.identifier,new TouchPoint(touch.pageX-canvasOffset.left,touch.pageY-canvasOffset.top))||needHandle}if(needHandle){_spread.util.cancelDefault(e)}};TouchEventProvider.prototype._startCheckPointer=function(){if(this._checkPointerIntervalId!==-1){return}this._checkPointerIntervalId=setInterval(this._checkCancelPointer,200)};TouchEventProvider.prototype._endCheckPointer=function(){if(this._checkPointerIntervalId!==-1){clearInterval(this._checkPointerIntervalId);this._checkPointerIntervalId=-1}};TouchEventProvider.prototype._checkCancelPointer=function(){var self=this;if(self._manipulationProcessor&&self._manipulationProcessor._process===3){return}var currentTime=(new Date).valueOf();var needRemoveIds=[];var pointers=self._pressedPointers;var length=0;for(var id in pointers){if(currentTime-pointers[id].time>200){needRemoveIds.push(pointers[id])}length++}for(var i=0;i<needRemoveIds.length;i++){self._cancel(needRemoveIds[i].id,needRemoveIds[i].position);delete pointers[needRemoveIds[i].id]}if(length===needRemoveIds.length){self._endCheckPointer()}};TouchEventProvider.prototype._fixPosition=function(position){var self=this;if(self._downElement===self._manipulationElement){return position}var downElementOffset=$(self._downElement.element).offset();var manipulationElementOffset=$(self._manipulationElement.element).offset();position.X+=(downElementOffset.left-manipulationElementOffset.left);position.Y+=(downElementOffset.top-manipulationElementOffset.top)};TouchEventProvider.prototype._setCaptureElement=function(element,sourceElement){var self=this,elements=self._elements;self._manipulationElement=keyword_null;self._touchMouseMessageFilter=keyword_null;for(var i=0;i<elements.length;i++){if(elements[i]===element){var downElement=elements[i];var manipulationElement=keyword_null;var tapElement=keyword_null;if(downElement.canDoManipulation&&!downElement.canDoManipulation()){for(var i=0;i<elements.length;i++){var tmpElement=elements[i];if(tmpElement!==downElement&&tmpElement.level>=0&&tmpElement.level<downElement.level&&(!tmpElement.canDoManipulation||tmpElement.canDoManipulation())){manipulationElement=tmpElement;break}}if(manipulationElement===keyword_null){return false}}if(downElement.canDoTap&&!downElement.canDoTap()){for(var i=0;i<elements.length;i++){var tmpElement=elements[i];if(tmpElement!==downElement&&tmpElement.level>=0&&tmpElement.level<downElement.level&&(!tmpElement.canDoTap||tmpElement.canDoTap())){tapElement=tmpElement;break}}if(tapElement===keyword_null){return false}}if(manipulationElement===keyword_null){manipulationElement=downElement}if(tapElement===keyword_null){tapElement=downElement}self._downElement=downElement;self._manipulationElement=manipulationElement;self._tapElement=tapElement;self.ManipulationStarting(manipulationElement.manipulationStarting||keyword_null);self.ManipulationStarted(manipulationElement.manipulationStarted||keyword_null);self.ManipulationDelta(manipulationElement.manipulationDelta||keyword_null);self.ManipulationInertiaStarting(manipulationElement.manipulationInertiaStarting||keyword_null);self.ManipulationCompleted(manipulationElement.manipulationCompleted||keyword_null);self.Tapped(tapElement.tapped||keyword_null);self.DoubleTapped(tapElement.doubleTapped||keyword_null);self.RightTapped(tapElement.rightTapped||keyword_null);self.TouchOperatorStart(manipulationElement.touchOperatorStart||keyword_null);self.TouchOperatorEnd(manipulationElement.touchOperatorEnd||keyword_null);if(manipulationElement.messageFilter){self._touchMouseMessageFilter=downElement.messageFilter}break}}return true};TouchEventProvider.prototype._down=function(element,sourceElement,id,position,timeStamp){var self=this;if(self._pressedPointers[id]!==keyword_undefined){return false}if(self._pressedPointers.length===0){if(!self._setCaptureElement(element,sourceElement)){return false}}if(self._manipulationElement===keyword_null||typeof(self._manipulationElement)===const_undefined){return false}if(self._pressedPointers.length>=self._manipulationElement.maxPointer){return true}if(self._touchMouseMessageFilter&&self._touchMouseMessageFilter.preProcessPointerDown()){return false}self._fixPosition(position);if(self._touchMouseMessageFilter&&self._pressedPointers.length===0){self._touchMouseMessageFilter.preProcessManipulationStarting()}self._pressedPointers[id]={id:id,time:(new Date).valueOf(),position:position};self._pressedPointers.length++;if(self._manipulationProcessor){self._manipulationProcessor.PreviewPointerDown(sourceElement,id,position,timeStamp);self._manipulationProcessor.PointerDown(id,position,self._pressedPointers.length,timeStamp)}if(self._pressedPointers.length===1&&self._tapEventProcesser){self._tapEventProcesser.PointerDown(position)}if(self._pressedPointers.length===1&&self.touchOperatorStart){self.touchOperatorStart({Position:position})}return true};TouchEventProvider.prototype._move=function(id,position,timeStamp){var self=this;if(self._pressedPointers[id]===keyword_undefined){return false}if(self._touchMouseMessageFilter&&self._touchMouseMessageFilter.preProcessPointerMove()){return false}self._fixPosition(position);self._pressedPointers[id]={id:id,time:(new Date).valueOf(),position:position};if(self._manipulationProcessor){self._manipulationProcessor.PointerMove(id,position,timeStamp)}return true};TouchEventProvider.prototype._up=function(id,position){var self=this;if(self._pressedPointers[id]===keyword_undefined){return false}delete self._pressedPointers[id];self._pressedPointers.length--;if(self._touchMouseMessageFilter&&self._touchMouseMessageFilter.preProcessPointerUp()){return false}self._fixPosition(position);if(self._manipulationProcessor){self._manipulationProcessor.PreviewPointerUp(id);self._manipulationProcessor.PointerUp(id)}if(self._pressedPointers.length===0&&self._tapEventProcesser){self._tapEventProcesser.PreviewPointerUp(position);self._tapEventProcesser.PointerUp(position)}if(self._pressedPointers.length===0&&self.touchOperatorEnd){self.touchOperatorEnd({Position:position})}if(self._touchMouseMessageFilter&&self._pressedPointers.length===0&&self._manipulationProcessor._process===0){self._touchMouseMessageFilter.postProcessManipulationComplete()}return true};TouchEventProvider.prototype._cancel=function(id,position){return this._up(id,position)};TouchEventProvider.prototype.attachDettach=function(targetElement,isAttach){var self=this;var element=targetElement.element,elements=self._elements;var elementIndex=elements.indexOf(targetElement);if(elementIndex>=0&&isAttach||elementIndex<0&&!isAttach){return}var eventFlag="."+targetElement.eventFlag;var _gcSheet=".gcSheet",_msPointerDown_gcSheet="MSPointerDown"+_gcSheet,_msPointerMove_gcSheet="MSPointerMove"+_gcSheet+eventFlag,_msPointerUp_gcSheet="MSPointerUp"+_gcSheet+eventFlag,_msPointerCancel_gcSheet="MSPointerCancel"+_gcSheet+eventFlag,_msLostPointerCapture_gcSheet="MSLostPointerCapture"+_gcSheet+eventFlag,_pointerdown_gcSheet="pointerdown"+_gcSheet,_pointermove_gcSheet="pointermove"+_gcSheet+eventFlag,_pointerup_gcSheet="pointerup"+_gcSheet+eventFlag,_lostPointerCapture_gcSheet="LostPointerCapture"+_gcSheet+eventFlag,_pointercancel_gcSheet="pointercancel"+_gcSheet+eventFlag,_touchStart_gcSheet="touchstart"+_gcSheet,_touchMove_gcSheet="touchmove"+_gcSheet,_touchEnd_gcSheet="touchend"+_gcSheet,_touchCancel_gcSheet="touchcancel"+_gcSheet;if(isAttach){if(window.navigator.msPointerEnabled){if(element.style.msTouchAction!==keyword_null&&typeof(element.style.msTouchAction)!==const_undefined){element.style.msTouchAction="none"}(function(elm,eventStr){$(element).bind(_msPointerDown_gcSheet,function(e){self.msPointerDown(elm,e.originalEvent)}).bind(_pointerdown_gcSheet,function(e){self.msPointerDown(elm,e.originalEvent)})}).call(self,targetElement);$(document).bind(_msPointerMove_gcSheet,function(e){self.msPointerMove(e.originalEvent)}).bind(_msPointerUp_gcSheet,function(e){self.msPointerUp(e.originalEvent)}).bind(_pointermove_gcSheet,function(e){self.msPointerMove(e.originalEvent)}).bind(_pointerup_gcSheet,function(e){self.msPointerUp(e.originalEvent)}).bind(_msPointerCancel_gcSheet,function(e){self.msPointerCancel(e.originalEvent)}).bind(_msLostPointerCapture_gcSheet,function(e){self.msPointerCancel(e.originalEvent)}).bind(_lostPointerCapture_gcSheet,function(e){self.msPointerCancel(e.originalEvent)}).bind(_pointercancel_gcSheet,function(e){self.msPointerCancel(e.originalEvent)})}else
{(function(elm,eventStr){$(element).bind(_touchStart_gcSheet,function(e){self.touchStart(elm,e.originalEvent)})}).call(self,targetElement);$(element).bind(_touchMove_gcSheet,function(e){self.touchMove(e.originalEvent)}).bind(_touchEnd_gcSheet,function(e){self.touchEnd(e.originalEvent)}).bind(_touchCancel_gcSheet,function(e){self.touchCancel(e.originalEvent)})}}else
{if(window.navigator.msPointerEnabled){$(element).unbind(_msPointerDown_gcSheet).unbind(_pointerdown_gcSheet);$(document).unbind(_msPointerMove_gcSheet).unbind(_pointermove_gcSheet).unbind(_msPointerUp_gcSheet).unbind(_pointerup_gcSheet).unbind(_msPointerCancel_gcSheet).unbind(_pointercancel_gcSheet).unbind(_msLostPointerCapture_gcSheet).unbind(_lostPointerCapture_gcSheet)}else
{$(element).unbind(_touchStart_gcSheet).unbind(_touchMove_gcSheet).unbind(_touchEnd_gcSheet).unbind(_touchCancel_gcSheet)}}if(isAttach){elements.push(targetElement)}else
{elements.splice(elementIndex,1)}};TouchEventProvider.prototype.dispose=function(){var elements=this._elements;for(var i=elements.length-1;i>=0;i--){this.attachDettach(elements[i],false)}};return TouchEventProvider})();_spread.TouchEventProvider=TouchEventProvider;var ManipulationProcessor=(function(){function ManipulationProcessor(){var self=this;self._totalTranslateX=0;self._totalTranslateY=0;self._totalScale=1;self._totalRotation=0;self._totalExpansion=0;self._process=0;self._workingModes=511;self._manipulatorPointers=new ManipulatorCollection;self._minimumScaleRotateRadius=20;self._deltaHistory=new DeltaHistory}ManipulationProcessor.prototype.PreviewPointerDown=function(originalSource,id,position,timeStamp){var self=this;if(self._process===3){self.Complete(true)}self._originalSource=originalSource;var manipulatorState=new ManipulatorState(id);manipulatorState.PreviousPoint=position;manipulatorState.InitialPoint=position;self._manipulatorPointers.Add(manipulatorState);self._lastTime=timeStamp;if(self._manipulatorPointers.Count()>1){self.TranslateXLocked=false;self.TranslateYLocked=false;if(self._process===1){self.StartManipulation()}}};ManipulationProcessor.prototype.PointerDown=function(id,position,pointerCount,timeStamp){if(this._process===0&&pointerCount===1){this.Starting(this._manipulatorPointers.ItemAt(0).InitialPoint)}};ManipulationProcessor.prototype.PointerMove=function(id,position,timeStamp){var self=this;if(self._workingModes===0){return}if(!self._manipulatorPointers.Contains(id)){return}if(self._process===1){if(self._manipulatorPointers.Count()===1){var isPinned=self.IsPinned();if(!self.SupportsMode(1)&&!self.SupportsMode(2)&&!isPinned){return}if(!TouchHelper.AreClose(position,self._manipulatorPointers.Find(id).InitialPoint)){var offsetX=Math_abs(position.X-self._manipulatorPointers.Find(id).InitialPoint.X);var offsetY=Math_abs(position.Y-self._manipulatorPointers.Find(id).InitialPoint.Y);self.SetTranslateRails(offsetX,offsetY)}else
{return}}}if(timeStamp-self._lastTime<TouchHelper.ManipulationDeltaInterval){return}self._manipulatorPointers.Find(id).CurrentPoint=position;var count=self._manipulatorPointers.Count();if(count>1){for(var i=0;i<count;i++){var item=self._manipulatorPointers.ItemAt(i);if(!item.CurrentPoint){return}}}self.PointerMoveCore(timeStamp);self._lastTime=timeStamp;var count=self._manipulatorPointers.Count();for(var i=0;i<count;i++){var item=self._manipulatorPointers.ItemAt(i);item.PreviousPoint=item.CurrentPoint;item.CurrentPoint=keyword_null}};ManipulationProcessor.prototype.PointerUp=function(id){var self=this;if(self._needFireEvents){self.OnManipulationCompleted(self._needFireEvents);self._needFireEvents=keyword_null}};ManipulationProcessor.prototype.PreviewPointerUp=function(id){var self=this;if(!self._manipulatorPointers.Contains(id)){return}self._manipulatorPointers.Remove(id);if(self._process===2){if(self._manipulatorPointers.Count()===0){if(self.SupportsMode(64)||self.SupportsMode(256)||self.SupportsMode(128)){self.StartInertia()}else
{self.Complete(true)}}}else if(self._process===2||self._process===3){self.Complete(true)}else if(self._process===1){self.Complete(false)}};ManipulationProcessor.prototype.PointerMoveCore=function(timeStamp){var self=this;var translateX;var translateY;var expansion;var scale;var rotation;var position;var retureValue=self.CalculateTranslate();translateX=retureValue.translateX;translateY=retureValue.translateY;position=retureValue.position;var retureValue2=self.CalculateRotationAndScale();rotation=retureValue2.rotation;scale=retureValue2.scale;expansion=retureValue2.expansion;self._totalTranslateX+=translateX;self._totalTranslateY+=translateY;self._totalScale*=scale;self._totalRotation+=rotation;self._totalExpansion+=expansion;var deltaSnap=new DeltaSnap;deltaSnap.expansion=expansion;deltaSnap.rotation=rotation;deltaSnap.timeStamp=timeStamp-self._lastTime;deltaSnap.translateX=translateX;deltaSnap.translateY=translateY;self._deltaHistory.Enqueue(deltaSnap);self._lastPosition=position;if(self._process===1||self._process===2){if(self._process===1){var complete=self.StartManipulation();if(complete){return}}var delta=new ManipulationDelta;delta.Expansion=expansion;delta.Rotation=rotation;delta.Scale=scale;delta.Translation=new TouchPoint(translateX,translateY);var velocities=new ManipulationVelocities(self._deltaHistory);var args=new ManipulationDeltaEventArgs(self._originalSource,self.GetCumulative(),delta,false,position,velocities);self.OnManipulationDelta(args);if(args.IsComplete){self.Complete(true);return}}};ManipulationProcessor.prototype.StartManipulation=function(){var self=this;self._process=2;var args=new ManipulationStartedEventArgs(self._originalSource,self._manipulatorPointers.Count(),self.GetCumulative(),self._manipulatorPointers.ItemAt(0).InitialPoint);self.OnManipulationStarted(args);if(args.IsComplete){self.Complete(true);return true}return false};ManipulationProcessor.prototype.SetTranslateRails=function(offsetX,offsetY){var returnValue=ManipulationHelper.GetTranslateLocked(offsetX,offsetY);this.TranslateXLocked=returnValue.translateXLocked;this.TranslateYLocked=returnValue.translateYLocked};ManipulationProcessor.prototype.CalculateTranslate=function(){var translateX=0;var translateY=0;var temp=this.GetAveragePoint();var currentAveragePoint=temp.currentAveragePoint;var previousAveragePoint=temp.previousAveragePoint;var position=new TouchPoint(currentAveragePoint.X,currentAveragePoint.Y);translateX=currentAveragePoint.X-previousAveragePoint.X;translateY=currentAveragePoint.Y-previousAveragePoint.Y;return{translateX:translateX,translateY:translateY,position:position}};ManipulationProcessor.prototype.CalculateRotationAndScale=function(){var self=this;var rotation=0;var scale=1;var expansion=0;if(self.SupportsMode(16)&&self._manipulatorPointers.Count()===1&&self.IsPinned()){rotation=self.CalculateSingleManipulatorRotation(self._manipulatorPointers.ItemAt(0).CurrentPoint,self._manipulatorPointers.ItemAt(0).PreviousPoint,self._pivot)}if(self._manipulatorPointers.Count()>1){var temp=self.CalculateMultiManipulatorRotationAndScale();rotation=temp.rotation;scale=temp.scale;expansion=temp.expansion}rotation=rotation/Math_PI*180;return{rotation:rotation,scale:scale,expansion:expansion}};ManipulationProcessor.prototype.CalculateMultiManipulatorRotationAndScale=function(){var self=this;var temp=self.GetAveragePoint();var currentAveragePoint=temp.currentAveragePoint;var previousAveragePoint=temp.previousAveragePoint;var isPinned=self.IsPinned();var pivotCenter=isPinned?self._pivot.Center:new TouchPoint(0,0);var rotation=0;var scale=1;var expansion=0;var rotationCount=0;var scaleCount=0;var currentDistanseTotal=0;var previousDistanseTotal=0;var count=self._manipulatorPointers.Count();for(var i=0;i<count;i++){var current=self._manipulatorPointers.ItemAt(i).CurrentPoint;var previous=self._manipulatorPointers.ItemAt(i).PreviousPoint;var currentDistanse=self.GetLength(current,currentAveragePoint);var previousDistanse=self.GetLength(previous,previousAveragePoint);var previousVector=isPinned?new TouchPoint(previous.X-pivotCenter.X,previous.Y-pivotCenter.Y):new TouchPoint(previous.X-previousAveragePoint.X,previous.Y-previousAveragePoint.Y);var currentVector=isPinned?new TouchPoint(current.X-pivotCenter.X,current.Y-pivotCenter.Y):new TouchPoint(current.X-currentAveragePoint.X,current.Y-currentAveragePoint.Y);var previousLength=self.GetLength(previous,pivotCenter);var currentLength=self.GetLength(current,pivotCenter);if(previousDistanse>=self._minimumScaleRotateRadius&¤tDistanse>=self._minimumScaleRotateRadius){scaleCount++;currentDistanseTotal+=currentDistanse;previousDistanseTotal+=previousDistanse;if((!isPinned||previousLength>=self._minimumScaleRotateRadius)&¤tLength>=self._minimumScaleRotateRadius){var angleTmp=self.AngleBetween(previousVector,currentVector);rotation+=angleTmp;rotationCount++}}}if(rotationCount>0&&self.SupportsMode(16)){rotation=rotation/rotationCount}else
{rotation=0}if(scaleCount>0&&self.SupportsMode(32)){scale=currentDistanseTotal/previousDistanseTotal;expansion=(currentDistanseTotal-previousDistanseTotal)/scaleCount;self._lastDistance=currentDistanseTotal/scaleCount}else
{self._lastDistance=0}return{rotation:rotation,scale:scale,expansion:expansion}};ManipulationProcessor.prototype.CalculateSingleManipulatorRotation=function(currentPosition,previousPosition,pivot){var center=new TouchPoint(pivot.Center.X,pivot.Center.Y);var rf=new TouchPoint(previousPosition.X-center.X,previousPosition.Y-center.Y);var rf2=new TouchPoint(currentPosition.X-center.X,currentPosition.Y-center.Y);var num=Math_min(1.0,Math_pow((this.GetLength(previousPosition,center)/pivot.Radius),4.0));var f=this.AngleBetween(rf,rf2);if(isNaN(f)){return 0}return(f*num)};ManipulationProcessor.prototype.AngleBetween=function(vector1,vector2){var num=Math_atan2(vector2.Y,vector2.X)-Math_atan2(vector1.Y,vector1.X);if(num>Math_PI){num-=Math_PI*2}else if(num<-Math_PI){num+=Math_PI*2}return num};ManipulationProcessor.prototype.SupportsMode=function(mode){return(this._workingModes&mode)!==0};ManipulationProcessor.prototype.GetLength=function(p1,p2){return Math_sqrt((p2.X-p1.X)*(p2.X-p1.X)+(p2.Y-p1.Y)*(p2.Y-p1.Y))};ManipulationProcessor.prototype.GetAveragePoint=function(){var xPrevious=0;var yPrevious=0;var xCurrent=0;var yCurrent=0;var count=this._manipulatorPointers.Count();for(var i=0;i<count;i++){var point=this._manipulatorPointers.ItemAt(i);xPrevious+=point.PreviousPoint.X;yPrevious+=point.PreviousPoint.Y;xCurrent+=point.CurrentPoint.X;yCurrent+=point.CurrentPoint.Y}var previousAveragePoint=new TouchPoint(xPrevious/count,yPrevious/count);var currentAveragePoint=new TouchPoint(xCurrent/count,yCurrent/count);return{currentAveragePoint:currentAveragePoint,previousAveragePoint:previousAveragePoint}};ManipulationProcessor.prototype.IsPinned=function(){return this._pivot&&!isNaN(this._pivot.Radius)};ManipulationProcessor.prototype.Starting=function(position){var self=this;var args=new ManipulationStartingEventArgs(self._originalSource,self._workingModes,keyword_null,position);args.Mode=511;self.OnManipulationStarting(args);self.ManipulationMode=args.Mode;if(args.Mode===0){self.Complete(false);return false}else
{self._workingModes=args.Mode;self._pivot=args.Pivot;self._process=1;return true}};ManipulationProcessor.prototype.Complete=function(raisEvent){var self=this;var isInertia=(self._process===3);self._process=0;if(self._inertiaTimer){clearInterval(self._inertiaTimer);self._inertiaTimer=keyword_null}if(raisEvent){var args=new ManipulationCompletedEventArgs(self._originalSource,self.GetCumulative(),isInertia,TouchPoint.Round(self._lastPosition),new ManipulationVelocities(self._deltaHistory));if(self._process===3){self._needFireEvents=args}else
{self.OnManipulationCompleted(args)}}self._deltaHistory.Clear();self._manipulatorPointers.Clear();self._pivot=keyword_null;self._totalTranslateX=0;self._totalTranslateY=0;self._totalScale=1;self._totalRotation=0;self._totalExpansion=0;self.TranslateXLocked=false;self.TranslateYLocked=false;self._workingModes=0};ManipulationProcessor.prototype.StartInertia=function(){var self=this;var inertiaData=new InertiaData;var velocities=new ManipulationVelocities(self._deltaHistory);inertiaData.CurrentTranslateXVelocity=self.SupportsMode(64)?velocities.Linear().X:0;inertiaData.CurrentTranslateYVelocity=self.SupportsMode(64)?velocities.Linear().Y:0;inertiaData.CurrentExpansionVelocity=self.SupportsMode(256)?velocities.Expansion():0;inertiaData.CurrentRotationVelocity=self.SupportsMode(128)?velocities.Angular():0;if(inertiaData.CurrentTranslateXVelocity===0&&inertiaData.CurrentTranslateYVelocity===0&&inertiaData.CurrentExpansionVelocity===0&&inertiaData.CurrentRotationVelocity===0){self.Complete(true);return}inertiaData.TranslateBehavior=new InertiaTranslationBehavior(inertiaData.CurrentTranslateXVelocity,inertiaData.CurrentTranslateYVelocity);inertiaData.ExpansionBehavior=new InertiaExpansionBehavior(inertiaData.CurrentExpansionVelocity);inertiaData.RotationBehavior=new InertiaRotationBehavior(inertiaData.CurrentRotationVelocity);velocities=new ManipulationVelocities(keyword_null,inertiaData.CurrentTranslateXVelocity,inertiaData.CurrentTranslateYVelocity,inertiaData.CurrentRotationVelocity,inertiaData.CurrentExpansionVelocity);var args=new ManipulationInertiaStartingEventArgs(self._originalSource,self.GetCumulative(),new ManipulationDelta,velocities,inertiaData.ExpansionBehavior,inertiaData.RotationBehavior,inertiaData.TranslateBehavior);self.OnManipulationInertiaStarting(args);inertiaData.TranslateBehavior=args.TranslationBehavior;inertiaData.ExpansionBehavior=args.ExpansionBehavior;inertiaData.RotationBehavior=args.RotationBehavior;if(inertiaData.TranslateBehavior.XDeceleration<=0&&inertiaData.TranslateBehavior.YDeceleration<=0){inertiaData.TranslateBehavior.SetDecelerationInternal(0.003)}if(inertiaData.ExpansionBehavior.DecelerationInternal()<=0){inertiaData.ExpansionBehavior.SetDecelerationInternal(0.002)}if(inertiaData.RotationBehavior.DecelerationInternal()<=0){inertiaData.RotationBehavior.SetDecelerationInternal(0.003)}var startTime=(new Date).valueOf();inertiaData.StartTime=startTime;inertiaData.LastTime=startTime;inertiaData.DeltaXRemainder=0;inertiaData.DeltaYRemainder=0;self._process=3;self._inertiaTimer=setInterval(function(){try
{self.InertiaTick(inertiaData)}catch(e){}},20)};ManipulationProcessor.prototype.InertiaTick=function(inertiaData){var self=this;var currentTime=(new Date).valueOf();var totalTime=currentTime-inertiaData.StartTime;var timeDuriing=currentTime-inertiaData.LastTime;if(timeDuriing===0){return}var averageTranslateXVelocity=inertiaData.CurrentTranslateXVelocity;var averageTranslateYVelocity=inertiaData.CurrentTranslateYVelocity;var averageExpansionVelocity=inertiaData.CurrentExpansionVelocity;var RotationVelocity=inertiaData.CurrentRotationVelocity;inertiaData.CurrentTranslateXVelocity=self.GetInertiaCurrentVelocity(timeDuriing,inertiaData.TranslateBehavior.XDeceleration,inertiaData.CurrentTranslateXVelocity);inertiaData.CurrentTranslateYVelocity=self.GetInertiaCurrentVelocity(timeDuriing,inertiaData.TranslateBehavior.YDeceleration,inertiaData.CurrentTranslateYVelocity);inertiaData.CurrentExpansionVelocity=self.GetInertiaCurrentVelocity(timeDuriing,inertiaData.ExpansionBehavior.DecelerationInternal(),inertiaData.CurrentExpansionVelocity);inertiaData.CurrentRotationVelocity=self.GetInertiaCurrentVelocity(timeDuriing,inertiaData.RotationBehavior.DecelerationInternal(),inertiaData.CurrentRotationVelocity);averageTranslateXVelocity=(averageTranslateXVelocity+inertiaData.CurrentTranslateXVelocity)/2;averageTranslateYVelocity=(averageTranslateYVelocity+inertiaData.CurrentTranslateYVelocity)/2;averageExpansionVelocity=(averageExpansionVelocity+inertiaData.CurrentExpansionVelocity)/2;RotationVelocity=(RotationVelocity+inertiaData.CurrentRotationVelocity)/2;inertiaData.LastTime=currentTime;var complete=false;if(self.IsZero(averageTranslateXVelocity)&&self.IsZero(averageTranslateYVelocity)&&self.IsZero(averageExpansionVelocity)&&self.IsZero(RotationVelocity)){complete=true}var deltaX=timeDuriing*averageTranslateXVelocity;var deltaY=timeDuriing*averageTranslateYVelocity;var deltaExpansion=timeDuriing*averageExpansionVelocity;var deltaRotation=timeDuriing*RotationVelocity;var deltaScale=1;if(self._lastDistance>0){if(self._lastDistance+deltaExpansion*2<0){deltaExpansion=-self._lastDistance/2+1}if(self._lastDistance!==0){deltaScale=(self._lastDistance+deltaExpansion*2)/self._lastDistance}}self._totalExpansion+=deltaExpansion;self._totalRotation+=deltaRotation;self._totalTranslateX+=deltaX;self._totalTranslateY+=deltaY;self._totalScale*=deltaScale;self._lastDistance+=deltaExpansion;self._lastPosition=new TouchPoint((self._lastPosition.X+deltaX),(self._lastPosition.Y+deltaY));inertiaData.DeltaXRemainder+=deltaX;inertiaData.DeltaYRemainder+=deltaY;if(complete){deltaX=Math_round(inertiaData.DeltaXRemainder);deltaY=Math_round(inertiaData.DeltaYRemainder);if(self.IsZero(deltaX)&&self.IsZero(deltaY)){self.Complete(true);return}}else
{if(Math_abs(inertiaData.DeltaXRemainder)>=1){deltaX=inertiaData.DeltaXRemainder;inertiaData.DeltaXRemainder-=deltaX}if(Math_abs(inertiaData.DeltaYRemainder)>=1){deltaY=inertiaData.DeltaYRemainder;inertiaData.DeltaYRemainder-=deltaY}}var delta=new ManipulationDelta;delta.Translation=new TouchPoint(deltaX,deltaY);delta.Scale=deltaScale;delta.Expansion=deltaExpansion;delta.Rotation=deltaRotation;var deltaVelocities=new ManipulationVelocities(keyword_null,inertiaData.CurrentTranslateXVelocity,inertiaData.CurrentTranslateYVelocity,inertiaData.CurrentRotationVelocity,inertiaData.CurrentExpansionVelocity);var deltaArgs=new ManipulationDeltaEventArgs(self._originalSource,self.GetCumulative(),delta,true,TouchPoint.Round(self._lastPosition),deltaVelocities);self.OnManipulationDelta(deltaArgs);if(deltaArgs.IsComplete){self.Complete(true);return}if(complete){self.Complete(true)}};ManipulationProcessor.prototype.GetInertiaCurrentVelocity=function(time,desiredDeceleration,velocity){if(this.IsZero(velocity)){return 0}var newVelocity;if(velocity<0){newVelocity=velocity+desiredDeceleration*time}else
{newVelocity=velocity-desiredDeceleration*time}if((newVelocity<0&&velocity>0)||(newVelocity>0&&velocity<0)){newVelocity=0}return newVelocity};ManipulationProcessor.prototype.GetCumulative=function(){var self=this;var cumulative=new ManipulationDelta;cumulative.Expansion=self._totalExpansion;cumulative.Rotation=self._totalRotation;cumulative.Scale=self._totalScale;cumulative.Translation=new TouchPoint(self._totalTranslateX,self._totalTranslateY);return cumulative};ManipulationProcessor.prototype.IsZero=function(d){return(Math_abs(d)<=2.2204460492503131E-16)};ManipulationProcessor.prototype.GetManipulationData=function(isInertial,oldCumulative,oldDelta,oldVelocities){var self=this;var cumulative=new ManipulationDelta;var delta=new ManipulationDelta;var vTranslationX=0;var vTranslationY=0;var vAngular=0;var vExpansion=0;var translateXLocaked=self.SupportsMode(4)&&self.TranslateXLocked;var translateYLocaked=self.SupportsMode(8)&&self.TranslateYLocked;if(self.SupportsMode(1)&&!translateYLocaked&&(!isInertial||self.SupportsMode(64))){cumulative.Translation.X=oldCumulative.Translation.X;delta.Translation.X=oldDelta.Translation.X;vTranslationX=oldVelocities.Linear().X}if(self.SupportsMode(2)&&!translateXLocaked&&(!isInertial||self.SupportsMode(64))){cumulative.Translation.Y=oldCumulative.Translation.Y;delta.Translation.Y=oldDelta.Translation.Y;vTranslationY=oldVelocities.Linear().Y}if(self.SupportsMode(32)&&(!isInertial||self.SupportsMode(256))){cumulative.Scale=oldCumulative.Scale;cumulative.Expansion=oldCumulative.Expansion;delta.Scale=oldDelta.Scale;delta.Expansion=oldDelta.Expansion;vExpansion=oldVelocities.Expansion()}else
{cumulative.Scale=oldCumulative.Scale;delta.Scale=1.0}if(self.SupportsMode(16)&&(!isInertial||self.SupportsMode(128))){cumulative.Rotation=oldCumulative.Rotation;delta.Rotation=oldDelta.Rotation;vAngular=oldVelocities.Angular()}var velocities=new ManipulationVelocities(keyword_null,vTranslationX,vTranslationY,vAngular,vExpansion);return new ManipulationData(cumulative,delta,velocities)};ManipulationProcessor.prototype.OnManipulationStarting=function(e){if(this.ManipulationStarting&&e){this.ManipulationStarting(e)}};ManipulationProcessor.prototype.OnManipulationStarted=function(e){if(this.ManipulationStarted&&e){this.ManipulationStarted(e)}};ManipulationProcessor.prototype.OnManipulationCompleted=function(e){if(this.ManipulationCompleted&&e){var manipulationData=this.GetManipulationData(false,e.Cumulative,e.Cumulative,e.Velocities);e.Cumulative=manipulationData.Cumulative;e.Velocities=manipulationData.Velocities;this.ManipulationCompleted(e)}};ManipulationProcessor.prototype.OnManipulationInertiaStarting=function(e){if(this.ManipulationInertiaStarting&&e){var manipulationData=this.GetManipulationData(false,e.Cumulative,e.Delta,e.Velocities);e.Cumulative=manipulationData.Cumulative;e.Delta=manipulationData.Delta;e.Velocities=manipulationData.Velocities;this.ManipulationInertiaStarting(e)}};ManipulationProcessor.prototype.OnManipulationDelta=function(e){if(this.ManipulationDelta&&e){var manipulationData=this.GetManipulationData(e.IsInertia,e.Cumulative,e.Delta,e.Velocities);e.Cumulative=manipulationData.Cumulative;e.Delta=manipulationData.Delta;e.Velocities=manipulationData.Velocities;this.ManipulationDelta(e)}};return ManipulationProcessor})();var TapEventProcesser=(function(){function TapEventProcesser(){}TapEventProcesser.prototype.PointerDown=function(point){var self=this;self._pointerCount++;if(self._pointerCount>1)return;var currentTimestamp=(new Date).valueOf();if(self._firstDownPosition&&TouchHelper.AreClose(point,self._firstDownPosition)&¤tTimestamp-self._lastDownTimestamp<TouchHelper.DoubleTappedTimeOffset){self._count++}else
{self._firstDownPosition=point;self._count=1}self._lastDownPosition=point;self._lastDownTimestamp=currentTimestamp};TapEventProcesser.prototype.PointerUp=function(point){var self=this;if(self._needFireEvents){if(self._needFireEvents instanceof TappedEventArgs){self.OnTapped(self._needFireEvents)}else if(self._needFireEvents instanceof RightTappedEventArgs){self.OnRightTapped(self._needFireEvents)}self._needFireEvents=keyword_null}};TapEventProcesser.prototype.PreviewPointerUp=function(point){var self=this;self._pointerCount--;if(self._pointerCount>0)return;var currentTimestamp=(new Date).valueOf();if(TouchHelper.AreClose(point,self._lastDownPosition)){if((currentTimestamp-self._lastDownTimestamp>TouchHelper.RightTappedTimeOffset)){self._needFireEvents=new RightTappedEventArgs(self._lastDownPosition)}else if(self._count>1){self._count=0;self.OnDoubleTapped(new DoubleTappedEventArgs(self._firstDownPosition));self._firstDownPosition=keyword_null}else
{self._needFireEvents=new TappedEventArgs(self._lastDownPosition)}}else
{self._firstDownPosition=keyword_null}};TapEventProcesser.prototype.PointerCancel=function(){this._firstDownPosition=keyword_null};TapEventProcesser.prototype.OnTapped=function(e){if(this.Tapped&&e){this.Tapped(e)}};TapEventProcesser.prototype.OnDoubleTapped=function(e){if(this.DoubleTapped&&e){this.DoubleTapped(e)}};TapEventProcesser.prototype.OnRightTapped=function(e){if(this.RightTapped&&e){this.RightTapped(e)}};return TapEventProcesser})();var ManipulationHelper=(function(){function ManipulationHelper(){}ManipulationHelper.GetTranslateLocked=function(offsetX,offsetY){var translateXLocked=false;var translateYLocked=false;if(offsetX!==0){var angle=Math_atan(offsetY/offsetX)/Math_PI*180;if(angle<20){translateXLocked=true}}if(offsetX===0){translateYLocked=true}else
{var angle=Math_atan(offsetY/offsetX)/Math_PI*180;if(angle>75&&angle<105){translateYLocked=true}}return{translateXLocked:translateXLocked,translateYLocked:translateYLocked}};return ManipulationHelper})();var TouchHelper=(function(){function TouchHelper(){}TouchHelper.AreClose=function(p1,p2){if(!p1||!p2){return false}var tappedMaxOffsetXByDPI=TouchHelper.TappedMaxOffset;var tappedMaxOffsetYByDPI=TouchHelper.TappedMaxOffset;var tappedMaxDistanceXByDPI=TouchHelper.TappedMaxDistance;var tappedMaxDistanceYByDPI=TouchHelper.TappedMaxDistance;var dx=p1.X-p2.X;var dy=p1.Y-p2.Y;return Math_abs(dx)<tappedMaxOffsetXByDPI&&Math_abs(dy)<tappedMaxOffsetYByDPI&&(Math_sqrt(dx*dx+dy*dy))<Math_min(tappedMaxDistanceXByDPI,tappedMaxDistanceYByDPI)};TouchHelper.TappedMaxOffset=13;TouchHelper.TappedMaxDistance=15;TouchHelper.DoubleTappedTimeOffset=400;TouchHelper.RightTappedTimeOffset=1000;TouchHelper.ManipulationDeltaInterval=20;return TouchHelper})();var TouchPoint=(function(){function TouchPoint(x,y){this.X=x;this.Y=y}TouchPoint.Round=function(point){if(point){return new TouchPoint(Math_round(point.X),Math_round(point.Y))}else
{return new TouchPoint(-1,-1)}};return TouchPoint})();var DeltaSnap=(function(){function DeltaSnap(){}return DeltaSnap})();var DeltaHistory=(function(){function DeltaHistory(){var self=this;self._count=0;self._start=0;self._maxCount=10;self._history=new Array(self._maxCount)}DeltaHistory.prototype.GetVelocity=function(mode){var self=this;if(self._count===0){return 0}var startTime=self.Item(self._count-1).timeStamp;var total=0;var totalCount=(1+self._count)*self._count/2;for(var i=self._count-1;i>=0;i--){var value=0;if(mode===0){value=self.Item(i).translateX}else if(mode===1){value=self.Item(i).translateY}else if(mode===2){value=self.Item(i).expansion}else if(mode===3){value=self.Item(i).rotation}var velocity=self.GetSingleVelocity(value,self.Item(i).timeStamp);velocity*=i+1;total+=velocity}return total/totalCount};DeltaHistory.prototype.GetSingleVelocity=function(value,time){return value/time};DeltaHistory.prototype.Item=function(index){return this._history[this.GetInnerListIndex(index)]};DeltaHistory.prototype.Last=function(){return this._history[this._count-1]};DeltaHistory.prototype.Enqueue=function(snap){var self=this;if(self._count===10){self.Dequeue()}self._count++;self._history[self.GetInnerListIndex(self._count-1)]=snap;var interval=TouchHelper.ManipulationDeltaInterval*self._maxCount;for(var i=0;i<self._count;i++){if(snap.timeStamp-self._history[i].timeStamp>interval){self.Dequeue();i--}}};DeltaHistory.prototype.Dequeue=function(){var self=this;self._start++;if(self._start===self._maxCount){self._start=0}self._count--};DeltaHistory.prototype.Clear=function(){this._count=0};DeltaHistory.prototype.GetInnerListIndex=function(index){return(this._start+index)%this._maxCount};return DeltaHistory})();var ManipulationVelocities=(function(){function ManipulationVelocities(history,translateX,translateY,angular,expansion){var self=this;if(history){self._history=history}else
{self._linear=new TouchPoint(translateX,translateY);self._angular=angular;self._expansion=expansion}}ManipulationVelocities.prototype.Linear=function(){var self=this;if(!self._linear){self._linear=new TouchPoint(self._history.GetVelocity(0),self._history.GetVelocity(1))}return self._linear};ManipulationVelocities.prototype.Angular=function(){var self=this;if(self._angular===keyword_null||typeof(self._angular)===const_undefined){self._angular=self._history.GetVelocity(3)}return self._angular};ManipulationVelocities.prototype.Expansion=function(){var self=this;if(self._expansion===keyword_null||typeof(self._expansion)===const_undefined){self._expansion=self._history.GetVelocity(2)}return self._expansion};return ManipulationVelocities})();var InertiaExpansionBehavior=(function(){function InertiaExpansionBehavior(initialVelocity){this._initialVelocity=initialVelocity;this._decelerationInternal=0}InertiaExpansionBehavior.prototype.DecelerationInternal=function(){var self=this;if(!isNaN(self.DesiredExpansion)&&self.DesiredExpansion!==0){return 0.5*self._initialVelocity*self._initialVelocity/self.DesiredExpansion}else if(!isNaN(self.DesiredDeceleration)){return self.DesiredDeceleration}else
{return self._decelerationInternal}};InertiaExpansionBehavior.prototype.SetDecelerationInternal=function(value){this._decelerationInternal=value};return InertiaExpansionBehavior})();var InertiaRotationBehavior=(function(){function InertiaRotationBehavior(initialVelocity){this._initialVelocity=initialVelocity;this._decelerationInternal=0}InertiaRotationBehavior.prototype.DecelerationInternal=function(){var self=this;if(!isNaN(self.DesiredRotation)&&self.DesiredRotation!==0){return 0.5*self._initialVelocity*self._initialVelocity/self.DesiredRotation}else if(!isNaN(self.DesiredDeceleration)){return self.DesiredDeceleration}else
{return self._decelerationInternal}};InertiaRotationBehavior.prototype.SetDecelerationInternal=function(value){this._decelerationInternal=value};return InertiaRotationBehavior})();var InertiaTranslationBehavior=(function(){function InertiaTranslationBehavior(initialXVelocity,initialYVelocity){var self=this;self._initialXVelocity=initialXVelocity;self._initialYVelocity=initialYVelocity;self.XDeceleration=0;self.YDeceleration=0;self._decelerationInternal=0;self._velocity=Math_sqrt((self._initialXVelocity*self._initialXVelocity+self._initialYVelocity*self._initialYVelocity))}InertiaTranslationBehavior.prototype.UpdateXYDecelerations=function(){var self=this;if(!isNaN(self.DesiredDisplacement)&&self.DesiredDisplacement!==0){self.XDeceleration=0.5*self._velocity*Math_abs(self._initialXVelocity)/self.DesiredDisplacement;self.YDeceleration=0.5*self._velocity*Math_abs(self._initialYVelocity)/self.DesiredDisplacement}else if(!isNaN(self.DecelerationInternal())&&self.DecelerationInternal()!==0){self.XDeceleration=self.DecelerationInternal()*Math_abs(self._initialXVelocity)/self._velocity;self.YDeceleration=self.DecelerationInternal()*Math_abs(self._initialYVelocity)/self._velocity}else
{self.XDeceleration=0;self.YDeceleration=0}};InertiaTranslationBehavior.prototype.SetDesiredDeceleration=function(value){this.DesiredDeceleration=value;this.UpdateXYDecelerations()};InertiaTranslationBehavior.prototype.SetDesiredDisplacement=function(value){this.DesiredDisplacement=value;this.UpdateXYDecelerations()};InertiaTranslationBehavior.prototype.DecelerationInternal=function(){if(this.IsDefault()){return this._decelerationInternal}else
{return this.DesiredDeceleration}};InertiaTranslationBehavior.prototype.SetDecelerationInternal=function(value){this._decelerationInternal=value;this.UpdateXYDecelerations()};InertiaTranslationBehavior.prototype.IsDefault=function(){return isNaN(this.DesiredDeceleration)&&isNaN(this.DesiredDisplacement)};return InertiaTranslationBehavior})();var InertiaData=(function(){function InertiaData(){}return InertiaData})();var ManipulationDelta=(function(){function ManipulationDelta(){var self=this;self.Translation=new TouchPoint(0,0);self.Scale=0;self.Rotation=0;self.Expansion=0}return ManipulationDelta})();var ManipulationPivot=(function(){function ManipulationPivot(center,radius){this.Center=center;this.Radius=radius}return ManipulationPivot})();var ManipulatorState=(function(){function ManipulatorState(id){this.ID=id}return ManipulatorState})();var ManipulatorCollection=(function(){function ManipulatorCollection(){this._list=new Array}ManipulatorCollection.prototype.Contains=function(id){for(var i=0;i<this._list.length;i++){var item=this._list[i];if(item.ID===id){return true}}return false};ManipulatorCollection.prototype.Add=function(state){this._list.push(state)};ManipulatorCollection.prototype.Remove=function(id){for(var i=0;i<this._list.length;i++){if(this._list[i].ID===id){this._list.splice(i,1);break}}};ManipulatorCollection.prototype.Count=function(){return this._list.length};ManipulatorCollection.prototype.ItemAt=function(index){return this._list[index]};ManipulatorCollection.prototype.Find=function(id){for(var i=0;i<this._list.length;i++){var item=this._list[i];if(item.ID===id){return item}}return keyword_null};ManipulatorCollection.prototype.Clear=function(){this._list.splice(0,this._list.length)};return ManipulatorCollection})();var ManipulationData=(function(){function ManipulationData(cumulative,delta,velocities){this.Cumulative=cumulative;this.Delta=delta;this.Velocities=velocities}return ManipulationData})();var ManipulationEventArgsBase=(function(){function ManipulationEventArgsBase(originalSource){this.OriginalSource=originalSource}return ManipulationEventArgsBase})();var ManipulationCompletedEventArgs=(function(_super){__extends(ManipulationCompletedEventArgs,_super);function ManipulationCompletedEventArgs(originalSource,cumulative,isInertia,position,velocities){_super.call(this,originalSource);var self=this;self.Cumulative=cumulative;self.IsInertia=isInertia;self.Position=position;self.Velocities=velocities}return ManipulationCompletedEventArgs})(ManipulationEventArgsBase);var ManipulationDeltaEventArgs=(function(_super){__extends(ManipulationDeltaEventArgs,_super);function ManipulationDeltaEventArgs(originalSource,cumulative,delta,isInertia,position,velocities){_super.call(this,originalSource);var self=this;self.Cumulative=cumulative;self.Delta=delta;self.IsInertia=isInertia;self.Position=position;self.Velocities=velocities}return ManipulationDeltaEventArgs})(ManipulationEventArgsBase);var ManipulationInertiaStartingEventArgs=(function(_super){__extends(ManipulationInertiaStartingEventArgs,_super);function ManipulationInertiaStartingEventArgs(originalSource,cumulative,delta,velocities,expansionBehavior,rotationBehavior,translationBehavior){_super.call(this,originalSource);var self=this;self.Cumulative=cumulative;self.Delta=delta;self.Velocities=velocities;self.ExpansionBehavior=expansionBehavior;self.RotationBehavior=rotationBehavior;self.TranslationBehavior=translationBehavior}return ManipulationInertiaStartingEventArgs})(ManipulationEventArgsBase);var ManipulationStartedEventArgs=(function(_super){__extends(ManipulationStartedEventArgs,_super);function ManipulationStartedEventArgs(originalSource,pointerCount,cumulative,position){_super.call(this,originalSource);this.PointerCount=pointerCount;this.Cumulative=cumulative;this.Position=position}return ManipulationStartedEventArgs})(ManipulationEventArgsBase);var ManipulationStartingEventArgs=(function(_super){__extends(ManipulationStartingEventArgs,_super);function ManipulationStartingEventArgs(originalSource,mode,pivot,position){_super.call(this,originalSource);this.Mode=mode;this.Pivot=pivot;this.Position=position}return ManipulationStartingEventArgs})(ManipulationEventArgsBase);var TappedEventArgs=(function(){function TappedEventArgs(location){this.Position=location}return TappedEventArgs})();var RightTappedEventArgs=(function(){function RightTappedEventArgs(location){this.Position=location}return RightTappedEventArgs})();var DoubleTappedEventArgs=(function(){function DoubleTappedEventArgs(location){this.Position=location}return DoubleTappedEventArgs})();var ManipulationModes;(function(ManipulationModes){ManipulationModes[ManipulationModes["All"]=0x1ff]="All";ManipulationModes[ManipulationModes["None"]=0]="None";ManipulationModes[ManipulationModes["TranslateX"]=1]="TranslateX";ManipulationModes[ManipulationModes["TranslateY"]=0x2]="TranslateY";ManipulationModes[ManipulationModes["TranslateRailsX"]=0x4]="TranslateRailsX";ManipulationModes[ManipulationModes["TranslateRailsY"]=0x8]="TranslateRailsY";ManipulationModes[ManipulationModes["Rotate"]=0x10]="Rotate";ManipulationModes[ManipulationModes["Scale"]=0x20]="Scale";ManipulationModes[ManipulationModes["TranslateInertia"]=0x40]="TranslateInertia";ManipulationModes[ManipulationModes["RotateInertia"]=0x80]="RotateInertia";ManipulationModes[ManipulationModes["ScaleInertia"]=0x100]="ScaleInertia"})(ManipulationModes||(ManipulationModes={}));var Process;(function(Process){Process[Process["NotStart"]=0]="NotStart";Process[Process["Starting"]=1]="Starting";Process[Process["Started"]=2]="Started";Process[Process["InertiaStarted"]=3]="InertiaStarted"})(Process||(Process={}));var DeltaMode;(function(DeltaMode){DeltaMode[DeltaMode["TranslateX"]=0]="TranslateX";DeltaMode[DeltaMode["TranslateY"]=1]="TranslateY";DeltaMode[DeltaMode["Expansion"]=2]="Expansion";DeltaMode[DeltaMode["Rotation"]=3]="Rotation"})(DeltaMode||(DeltaMode={}));var SelectionType;(function(SelectionType){SelectionType[SelectionType["column"]=1]="column";SelectionType[SelectionType["row"]=2]="row";SelectionType[SelectionType["range"]=3]="range"})(SelectionType||(SelectionType={}));var TouchZoomManager=(function(){function TouchZoomManager(){}TouchZoomManager.prototype._getTouchCanvas=function(width,height){var canvas=document.createElement("canvas");canvas.width=width;canvas.height=height;return canvas};TouchZoomManager.prototype.saveCanvas=function(srcCanvas,oldSheetLayout,oldZoomFactor){var self=this;var canvasWidth=srcCanvas.width,canvasHeight=srcCanvas.height;var canvas=self._getTouchCanvas(canvasWidth,canvasHeight);canvas.getContext("2d").drawImage(srcCanvas,0,0,canvasWidth,canvasHeight);self._canvas=canvas;self._oldSheetLayout=oldSheetLayout;self._oldZoomFactor=oldZoomFactor};TouchZoomManager.prototype.restoreCanvas=function(destCanvas,newZoomFactor,grayAreaBackColor,rowHeaderVisible,colHeaderVisible){var self=this;var canvasWidth=destCanvas.width,canvasHeight=destCanvas.height;var viewportX=self._oldSheetLayout.frozenX,viewportY=self._oldSheetLayout.frozenY,viewportWidth=canvasWidth-viewportX,viewportHeight=canvasHeight-viewportY;var cumulativeScale=newZoomFactor/self._oldZoomFactor;var ctx=destCanvas.getContext("2d");var canvas=self._canvas;ctx.save();ctx.fillStyle=grayAreaBackColor;ctx.fillRect(0,0,canvasWidth,canvasHeight);ctx.drawImage(canvas,viewportX,viewportY,viewportWidth,viewportHeight,viewportX,viewportY,viewportWidth*cumulativeScale,viewportHeight*cumulativeScale);if(rowHeaderVisible){ctx.drawImage(canvas,0,viewportY,viewportX,viewportHeight,0,viewportY,viewportX*cumulativeScale,viewportHeight*cumulativeScale)}if(colHeaderVisible){ctx.drawImage(canvas,viewportX,0,viewportWidth,viewportY,viewportX,0,viewportWidth*cumulativeScale,viewportY*cumulativeScale)}if(rowHeaderVisible&&colHeaderVisible){ctx.drawImage(canvas,0,0,viewportX,viewportY,0,0,viewportX*cumulativeScale,viewportY*cumulativeScale)}ctx.restore()};return TouchZoomManager})();var TouchScrollManager=(function(){function TouchScrollManager(){this._waittime=-1}TouchScrollManager.prototype._getTouchCanvas=function(width,height){var canvas=document.createElement("canvas");canvas.width=width;canvas.height=height;return canvas};TouchScrollManager.prototype._translatePaint=function(ctx,clipRect,xOffset,yOffset){if(clipRect.width>0&&clipRect.height>0){ctx.translate(xOffset,yOffset);this._paint(ctx,clipRect);ctx.translate(-xOffset,-yOffset)}};TouchScrollManager.prototype._paint=function(ctx,clipRect){var sheet=this._sheet,render=sheet._render;if(!ctx||sheet._layoutSuspended>0){return}render.paintBody(ctx,clipRect);this._paintAdornment(ctx,clipRect)};TouchScrollManager.prototype._paintAdornment=function(ctx,clipRect){var sheet=this._sheet,render=sheet._render;if(!ctx||sheet._layoutSuspended>0){return}if(!sheet._hoverCell){var layout=sheet._getSheetLayout(),rect;for(var r=0;r<=2;r++){for(var c=0;c<=2;c++){rect=layout.viewportRect(r,c);if(!rect||rect.width===0||rect.height===0){continue}if(!clipRect||rect.intersectRect(clipRect)){render.paintSelection(ctx,r,c,clipRect)}}}render.paintResizeLine(ctx)}};TouchScrollManager.prototype._restoreColHeaderFrozenRows=function(ctx,canvas,sheetLayout){var x=0,y=0,width=ctx.canvas.width,height=sheetLayout.viewportY;ctx.drawImage(canvas,x,y,width,height,x,y,width,height)};TouchScrollManager.prototype._restorePartViewportScrollTop=function(ctx,canvas,sheetLayout,translationY){var x=0,y=sheetLayout.viewportY,y2=y+translationY,width=ctx.canvas.width,height=sheetLayout.viewportHeight-translationY;if(height>0){ctx.drawImage(canvas,x,y,width,height,x,y2,width,height)}return new _spread.Rect(x,y2,width,height)};TouchScrollManager.prototype._restorePartViewportScrollBottom=function(ctx,canvas,sheetLayout,translationY,trailingFreezelineHeight){var x=0,y2=sheetLayout.viewportY,y=y2+translationY,width=ctx.canvas.width,height=sheetLayout.viewportHeight-translationY-trailingFreezelineHeight;if(height>0){ctx.drawImage(canvas,x,y,width,height,x,y2,width,height)}return new _spread.Rect(x,y2,width,height)};TouchScrollManager.prototype._restoreTrailingFrozenRows=function(ctx,canvas,sheetLayout,trailingFreezelineHeight){var x=0,y=sheetLayout.frozenTrailingY-trailingFreezelineHeight,width=ctx.canvas.width,height=sheetLayout.frozenTrailingHeight+trailingFreezelineHeight;if(height>0){ctx.drawImage(canvas,x,y,width,height,x,y,width,height)}};TouchScrollManager.prototype._restoreRowHeaderFrozenCols=function(ctx,canvas,sheetLayout){var x=0,y=0,width=sheetLayout.viewportX,height=ctx.canvas.height;ctx.drawImage(canvas,x,y,width,height,x,y,width,height)};TouchScrollManager.prototype._restorePartViewportScrollLeft=function(ctx,canvas,sheetLayout,translationX){var x=sheetLayout.viewportX,x2=x+translationX,y=0,width=sheetLayout.viewportWidth-translationX,height=ctx.canvas.height;if(width>0){ctx.drawImage(canvas,x,y,width,height,x2,y,width,height)}return new _spread.Rect(x2,y,width,height)};TouchScrollManager.prototype._restorePartViewportScrollRight=function(ctx,canvas,sheetLayout,translationX,trailingFreezelineWidth){var x2=sheetLayout.viewportX,x=x2+translationX,y=0,width=sheetLayout.viewportWidth-translationX-trailingFreezelineWidth,height=ctx.canvas.height;if(width>0){ctx.drawImage(canvas,x,y,width,height,x2,y,width,height)}return new _spread.Rect(x2,y,width,height)};TouchScrollManager.prototype._restoreTrailingFrozenCols=function(ctx,canvas,sheetLayout,trailingFreezelineWidth){var x=sheetLayout.frozenTrailingX-trailingFreezelineWidth,y=0,width=sheetLayout.frozenTrailingWidth+trailingFreezelineWidth,height=ctx.canvas.height;if(width>0){ctx.drawImage(canvas,x,y,width,height,x,y,width,height)}};TouchScrollManager.prototype.saveTopRowLeftCol=function(sheet){var self=this;self._lastTime=0;self._sheet=sheet;self.oldTopRow=sheet._scrollTopRow;self.oldLeftColumn=sheet._scrollLeftCol};TouchScrollManager.prototype.saveCanvas=function(srcCanvas){var canvasWidth=srcCanvas.width,canvasHeight=srcCanvas.height;var canvas=this._getTouchCanvas(canvasWidth,canvasHeight);canvas.getContext("2d").drawImage(srcCanvas,0,0,canvasWidth,canvasHeight);this._canvas=canvas};TouchScrollManager.prototype.saveCanvasWithInertia=function(srcCanvas){var canvasWidth=srcCanvas.width,canvasHeight=srcCanvas.height;var canvas=this._getTouchCanvas(canvasWidth,canvasHeight);canvas.getContext("2d").drawImage(srcCanvas,0,0,canvasWidth,canvasHeight);this._canvasWithInertia=canvas};TouchScrollManager.prototype.restoreCanvas=function(destCanvas,translationX,translationY,availableWidth,availableHeight,grayAreaBackColor){var self=this;var thisTime=(new Date).valueOf();if(thisTime-self._lastTime<self._waittime){return}else
{self._lastTime=thisTime}if(!self._canvas||!self._sheet){return}var sheet=self._sheet;var canvas=self._canvas;var sheetLayout=sheet._getSheetLayout();var canvasWidth=destCanvas.width,canvasHeight=destCanvas.height;var x,y,width,height,xOffset,yOffset,trailingFreezelineWidth=sheet.getFrozenTrailingColumnCount()>0?1:0,trailingFreezelineHeight=sheet.getFrozenTrailingRowCount()>0?1:0;if(translationX!==0||translationY!==0){var ctx=destCanvas.getContext("2d");ctx.save();ctx.fillStyle=grayAreaBackColor;ctx.fillRect(0,0,canvasWidth,canvasHeight);if(Math_abs(translationX)>Math_abs(translationY)){y=0;height=canvasHeight;if(translationX>0){self._restorePartViewportScrollLeft(ctx,canvas,sheetLayout,translationX);xOffset=translationX-availableWidth;if(sheetLayout.viewportWidth<=translationX){xOffset=0}width=availableWidth;x=sheetLayout.viewportX;sheet.invalidateLayout();self._translatePaint(ctx,new _spread.Rect(x,y,width,height),xOffset,0)}else if(translationX<0){self._restorePartViewportScrollRight(ctx,canvas,sheetLayout,Math_abs(translationX),trailingFreezelineWidth);xOffset=translationX-availableWidth;if(sheetLayout.viewportWidth<=Math_abs(translationX)){xOffset=0}sheet.invalidateLayout();width=Math_abs(availableWidth);x=sheetLayout.frozenTrailingX-width-trailingFreezelineWidth;self._translatePaint(ctx,new _spread.Rect(x,y,width,height),xOffset,0)}self._restoreRowHeaderFrozenCols(ctx,canvas,sheetLayout);self._restoreTrailingFrozenCols(ctx,canvas,sheetLayout,trailingFreezelineWidth)}else
{x=0;width=canvasWidth;if(translationY>0){self._restorePartViewportScrollTop(ctx,canvas,sheetLayout,translationY);yOffset=translationY-availableHeight;if(sheetLayout.viewportHeight<=translationY){yOffset=0}height=availableHeight;y=sheetLayout.viewportY;sheet.invalidateLayout();self._translatePaint(ctx,new _spread.Rect(x,y,width,height),0,yOffset)}else if(translationY<0){self._restorePartViewportScrollBottom(ctx,canvas,sheetLayout,Math_abs(translationY),trailingFreezelineHeight);yOffset=translationY-availableHeight;if(sheetLayout.viewportHeight<=Math_abs(translationY)){yOffset=0}sheet.invalidateLayout();height=Math_abs(availableHeight);y=sheetLayout.frozenTrailingY-height-trailingFreezelineHeight;self._translatePaint(ctx,new _spread.Rect(x,y,width,height),0,yOffset)}self._restoreColHeaderFrozenRows(ctx,canvas,sheetLayout);self._restoreTrailingFrozenRows(ctx,canvas,sheetLayout,trailingFreezelineHeight)}ctx.restore();self.saveCanvasWithInertia(destCanvas);if(self._waittime<0){var time=(new Date).valueOf()-thisTime;if(time<20){self._waittime=0}else
{self._waittime=60}}}};TouchScrollManager.prototype.restoreCanvasWithInertia=function(destCanvas,translationX,translationY,availableWidth,availableHeight,deltaTranslationX,deltaTranslationY,grayAreaBackColor){var self=this;if(!self._canvasWithInertia||!self._sheet){return}var sheet=self._sheet;var canvas=self._canvasWithInertia;var sheetLayout=sheet._getSheetLayout();var canvasWidth=destCanvas.width,canvasHeight=destCanvas.height;var x,y,width,height,xOffset,yOffset,trailingFreezelineWidth=sheet.getFrozenTrailingColumnCount()>0?1:0,trailingFreezelineHeight=sheet.getFrozenTrailingRowCount()>0?1:0;if((translationX!==0&&deltaTranslationX!==0)||(translationY!==0&&deltaTranslationY!==0)){var ctx=destCanvas.getContext("2d");ctx.save();ctx.fillStyle=grayAreaBackColor;ctx.fillRect(0,0,canvasWidth,canvasHeight);if(Math_abs(translationX)>Math_abs(translationY)){y=0;height=canvasHeight;if(translationX>0){var rect=self._restorePartViewportScrollLeft(ctx,canvas,sheetLayout,deltaTranslationX);xOffset=translationX-availableWidth;width=availableWidth;x=sheetLayout.viewportX;sheet.invalidateLayout();var imageLeftX=rect.x-xOffset;if(x+width>imageLeftX){width=imageLeftX-x+trailingFreezelineWidth}self._translatePaint(ctx,new _spread.Rect(x,y,width,height),xOffset,0)}else if(translationX<0){var rect=self._restorePartViewportScrollRight(ctx,canvas,sheetLayout,Math_abs(deltaTranslationX),trailingFreezelineWidth);xOffset=translationX-availableWidth;sheet.invalidateLayout();width=Math_abs(availableWidth);x=sheetLayout.frozenTrailingX-width-trailingFreezelineWidth;var imageRightX=rect.x+rect.width-xOffset;var lastCol=sheet._getScrollableColumn(sheet.getColumnCount(),true);var lastColLayout=sheet._getViewportColumnLayout(1).findCol(lastCol);if(lastColLayout){var lastColRightX=lastColLayout.x+lastColLayout.width-xOffset;if(imageRightX>lastColRightX){imageRightX=lastColRightX}}if(x<imageRightX){width=sheetLayout.frozenTrailingX-imageRightX;x=imageRightX-trailingFreezelineWidth}self._translatePaint(ctx,new _spread.Rect(x,y,width,height),xOffset,0)}self._restoreRowHeaderFrozenCols(ctx,canvas,sheetLayout);self._restoreTrailingFrozenCols(ctx,canvas,sheetLayout,trailingFreezelineWidth)}else
{x=0;width=canvasWidth;if(translationY>0){var rect=self._restorePartViewportScrollTop(ctx,canvas,sheetLayout,deltaTranslationY);yOffset=translationY-availableHeight;height=availableHeight;y=sheetLayout.viewportY;sheet.invalidateLayout();var imageTopY=rect.y-yOffset;if(y+height>imageTopY){height=imageTopY-y+trailingFreezelineHeight}self._translatePaint(ctx,new _spread.Rect(x,y,width,height),0,yOffset)}else if(translationY<0){var rect=self._restorePartViewportScrollBottom(ctx,canvas,sheetLayout,Math_abs(deltaTranslationY),trailingFreezelineHeight);yOffset=translationY-availableHeight;sheet.invalidateLayout();height=Math_abs(availableHeight);y=sheetLayout.frozenTrailingY-height-trailingFreezelineHeight;var imageBottomY=rect.y+rect.height-yOffset;var lastRow=sheet._getScrollableRow(sheet.getRowCount(),true);var lastRowLayout=sheet._getViewportRowLayout(1).findRow(lastRow);if(lastRowLayout){var lastRowBottomX=lastRowLayout.y+lastRowLayout.height-yOffset;if(imageBottomY>lastRowBottomX){imageBottomY=lastRowBottomX}}if(y<imageBottomY){height=sheetLayout.frozenTrailingY-imageBottomY;y=imageBottomY-trailingFreezelineHeight}self._translatePaint(ctx,new _spread.Rect(x,y,width,height),0,yOffset)}self._restoreColHeaderFrozenRows(ctx,canvas,sheetLayout);self._restoreTrailingFrozenRows(ctx,canvas,sheetLayout,trailingFreezelineHeight)}ctx.restore();self.saveCanvasWithInertia(destCanvas)}};return TouchScrollManager})();var TouchEventHandler=(function(){function TouchEventHandler(sheet){this._touchZoomManager=new TouchZoomManager;this._touchScrollManager=new TouchScrollManager;this.sheet=sheet}TouchEventHandler.prototype.doManipulationStarting=function(e){var target=this._touchHitTest(e.Position.X,e.Position.Y);if(target&&(target.resizeInfo||(target.dragInfo&&target.dragInfo.side==="corner")||target.selectionHitInfo)){e.Mode=1|2}else
{e.Mode=1|2|4|8|64|32|256}};TouchEventHandler.prototype.doManipulationStarted=function(e){var self=this;if(self._scrollInterval){clearInterval(self._scrollInterval);self._scrollInterval=keyword_null}var sheet=self.sheet;var eventHandler=sheet._eventHandler;var render=sheet._render;var target=self._touchHitTest(e.Position.X,e.Position.Y);sheet._currentTarget=target;if(target.resizeInfo){eventHandler.startResizing(target)}else if(target.dragInfo&&target.dragInfo.side==="corner"){eventHandler.startDragFill(target)}else if(target.selectionHitInfo){var selectionHitInfo=target.selectionHitInfo;var isHeader=selectionHitInfo.isHeader,isFirstIndicator=selectionHitInfo.isFirstIndicator,selectionType=selectionHitInfo.type;if(isHeader){eventHandler._startSelectingCore(target,true)}var hitTestType=target.hitTestType;target.hitTestType=target.selectionHitInfo.type;eventHandler._startSelectingScroll(target);target.hitTestType=hitTestType;self._changeActiveCellBeforeSelect(isHeader,isFirstIndicator,selectionType);render._showTouchSelectionIndicator=false;render.refreshTouchSelectionIndicator()}else
{var sheetLayout=sheet._getSheetLayout();var ctx=render._getCtx();if(ctx){if(!sheet.endEdit()){return}render._showTouchSelectionIndicator=false;render.refreshTouchSelectionIndicator();self._touchZoomManager.saveCanvas(ctx.canvas,sheetLayout,sheet._zoomFactor);self._oldZoomFactor=sheet._zoomFactor;var touchScrollManager=self._touchScrollManager;touchScrollManager.saveTopRowLeftCol(sheet);touchScrollManager.saveCanvas(ctx.canvas);touchScrollManager.saveCanvasWithInertia(ctx.canvas)}}};TouchEventHandler.prototype.doManipulationDelta=function(e,fromCompleted){var self=this;var sheet=self.sheet,render=sheet._render;var eventHandler=sheet._eventHandler;var positionX=e.Position.X,positionY=e.Position.Y;if(sheet._currentTarget){var currentTarget=sheet._currentTarget;if(currentTarget.resizeInfo){eventHandler.mousePosition={e:e,x:positionX,y:positionY};eventHandler.continueResizing()}else if(currentTarget.dragInfo&¤tTarget.dragInfo.side==="corner"){eventHandler.mousePosition={e:e,x:positionX,y:positionY};eventHandler.continueDragFill()}else if(currentTarget.selectionHitInfo||eventHandler.isSelecting){var selectionHitInfo=currentTarget.selectionHitInfo;if(selectionHitInfo){if(!eventHandler.startHitInfo||!eventHandler.isWorking){return}if(eventHandler._forceCancelSelectiong===true){return}var selectionType=selectionHitInfo.type;eventHandler.mousePosition={e:e,x:positionX,y:positionY};if(selectionType===3){eventHandler.continueCellSelecting()}else if(selectionType===2){eventHandler.continueRowSelecting()}else if(selectionType===1){eventHandler.continueColumnSelecting()}}}else
{var ctx=render._getCtx();var scale=e.Cumulative.Scale;var grayAreaBackColor=render._getGrayAreaBackColor(false),rowHeaderVisible=sheet.getRowHeaderVisible(),colHeaderVisible=sheet.getColumnHeaderVisible();if(scale!==1&&sheet.parent&&sheet.parent._allowUserZoom){var newZoomFactor=self._getNewZoomFactor(scale,sheet._zoomFactor);if(ctx){self._touchZoomManager.restoreCanvas(ctx.canvas,newZoomFactor,grayAreaBackColor,rowHeaderVisible,colHeaderVisible)}if(self._oldZoomFactor!==newZoomFactor){sheet._trigger(_spread.Events.UserZooming,{sheet:sheet,sheetName:sheet._name,oldZoomFactor:self._oldZoomFactor,newZoomFactor:newZoomFactor});self._oldZoomFactor=newZoomFactor;render._paintFloatingObject(keyword_null,newZoomFactor)}}else
{var translationY=e.Cumulative.Translation.Y,translationX=e.Cumulative.Translation.X,deltaTranslationY=e.Delta.Translation.Y,deltaTranslationX=e.Delta.Translation.X;var touchScrollManager=self._touchScrollManager;var availableWidth,availableHeight,leftColumnInfo,topRowInfo,minColumn,maxColumn,minRow,maxRow,defaultColWidth=sheet.defaults.colWidth,defaultRowHeight=sheet.defaults.rowHeight;if(Math_abs(translationX)>Math_abs(translationY)){leftColumnInfo=self._getNewLeftColumnInfo(translationX,touchScrollManager.oldLeftColumn);sheet._scrollLeftCol=leftColumnInfo.col;sheet._syncHScollbarPosition();availableWidth=leftColumnInfo.width;minColumn=sheet._getScrollableColumn(-1);maxColumn=sheet._getScrollableColumn(sheet.getColumnCount(),true);if(translationX>0&&touchScrollManager.oldLeftColumn===minColumn&&sheet._scrollLeftCol===minColumn){availableWidth=0}else if(translationX<0&&touchScrollManager.oldLeftColumn===maxColumn&&sheet._scrollLeftCol===maxColumn){availableWidth=0}if(translationX>0&&translationX>availableWidth+defaultColWidth){translationX=availableWidth+defaultColWidth;deltaTranslationX=0;if(self._reachMaxTranslationX&&e.IsInertia){e.IsComplete=true;return}self._reachMaxTranslationX=true}else if(translationX<0&&translationX<availableWidth-defaultColWidth){translationX=availableWidth-defaultColWidth;deltaTranslationX=0;if(self._reachMaxTranslationX&&e.IsInertia){e.IsComplete=true;return}self._reachMaxTranslationX=true}else
{self._reachMaxTranslationX=false}translationY=0;deltaTranslationY=0;translationX=Math_round(translationX);deltaTranslationX=Math_round(deltaTranslationX);if(!fromCompleted){self._xOffset=availableWidth-translationX;self._yOffset=0;self._lastDeltaEventArgs=e}}else
{topRowInfo=self._getNewTopRowInfo(translationY,touchScrollManager.oldTopRow);sheet._scrollTopRow=topRowInfo.row;sheet._syncVScrollbarPosition();availableHeight=topRowInfo.height;minRow=sheet._getScrollableRow(-1);maxRow=sheet._getScrollableRow(sheet.getRowCount(),true);if(translationY>0&&touchScrollManager.oldTopRow===minRow&&sheet._scrollTopRow===minRow){availableHeight=0}else if(translationY<0&&touchScrollManager.oldTopRow===maxRow&&sheet._scrollTopRow===maxRow){availableHeight=0}if(translationY>0&&translationY>availableHeight+defaultRowHeight){translationY=availableHeight+defaultRowHeight;deltaTranslationY=0;if(self._reachMaxTranslationY&&e.IsInertia){e.IsComplete=true;return}self._reachMaxTranslationY=true}else if(translationY<0&&translationY<availableHeight-defaultRowHeight){translationY=availableHeight-defaultRowHeight;deltaTranslationY=0;if(self._reachMaxTranslationY&&e.IsInertia){e.IsComplete=true;return}self._reachMaxTranslationY=true}else
{self._reachMaxTranslationY=false}translationX=0;deltaTranslationX=0;translationY=Math_round(translationY);deltaTranslationY=Math_round(deltaTranslationY);if(!fromCompleted){self._xOffset=0;self._yOffset=availableHeight-translationY;self._lastDeltaEventArgs=e}}if(ctx){if(e.IsInertia){touchScrollManager.restoreCanvasWithInertia(ctx.canvas,translationX,translationY,availableWidth,availableHeight,deltaTranslationX,deltaTranslationY,grayAreaBackColor)}else
{touchScrollManager.restoreCanvas(ctx.canvas,translationX,translationY,availableWidth,availableHeight,grayAreaBackColor)}}}}}};TouchEventHandler.prototype.doManipulationInertiaStarting=function(e){};TouchEventHandler.prototype.doManipulationCompleted=function(e){var self=this;var sheet=self.sheet;var eventHandler=sheet._eventHandler;var render=sheet._render;render._showTouchSelectionIndicator=true;var currentTarget=sheet._currentTarget;if(currentTarget.resizeInfo){eventHandler.stopResizing()}else if(currentTarget.dragInfo&&eventHandler.isDraggingFill){eventHandler.endDragFill();sheet.parent.touchToolStrip._closeAutoFillIndicator()}else if(currentTarget.selectionHitInfo||eventHandler.isSelecting){eventHandler.stopSelecting();var selectionHitInfo=currentTarget.selectionHitInfo;if(selectionHitInfo){var isHeader=selectionHitInfo.isHeader,isFirstIndicator=selectionHitInfo.isFirstIndicator,selectionType=selectionHitInfo.type;self._changeActiveCellAfterSelect(isHeader,isFirstIndicator,selectionType)}render.repaintSelection()}else
{var scale=e.Cumulative.Scale;if(scale!==1&&sheet.parent&&sheet.parent._allowUserZoom){sheet._zoomFactor=self._getNewZoomFactor(scale,sheet._zoomFactor);sheet.invalidateLayout();sheet.repaint()}else
{var xOffset=self._xOffset,yOffset=self._yOffset,deltaEventArgs=self._lastDeltaEventArgs;if(deltaEventArgs){var remainingTime=160,interval=20,cycleTimes=remainingTime/interval+1;self._scrollInterval=setInterval(function(){if(self._scrollInterval&&remainingTime<=0){sheet.invalidateLayout();sheet.repaint();sheet._syncHScollbarPosition();sheet._syncVScrollbarPosition();clearInterval(self._scrollInterval);self._scrollInterval=keyword_null;return}var cumulativeTranslation=deltaEventArgs.Cumulative.Translation,deltaTranslation=deltaEventArgs.Delta.Translation,deltaTranslationY=yOffset/cycleTimes,deltaTranslationX=xOffset/cycleTimes;cumulativeTranslation.Y+=deltaTranslationY;deltaTranslation.Y=deltaTranslationY;cumulativeTranslation.X+=deltaTranslationX;deltaTranslation.X=deltaTranslationX;self.doManipulationDelta(deltaEventArgs,true);remainingTime-=interval},interval)}}}};TouchEventHandler.prototype.doTapped=function(e){var self=this;var sheet=self.sheet;var cellTypeCauseSelectionChanged=false;self._clearTouchToolStripTimeout();if(typeof sheet.unSelectAllFloatingObjects==='function'){sheet.unSelectAllFloatingObjects()}var commentManager=sheet._commentManager;if(commentManager){commentManager.deactivateComment()}var eventHandler=sheet._eventHandler;var target=self._touchHitTest(e.Position.X,e.Position.Y,true);var row=target.row,col=target.col;var hitInfo=target.groupHitInfo;if(hitInfo){if(!sheet.isEditing()){eventHandler._doClickRangeGroup(hitInfo)}}else
{sheet._currentTarget=target;if(target.filterButtonHitInfo){if(!sheet.endEdit()){return}eventHandler._openFilterDialog(target.filterButtonHitInfo)}else if(target.resizeInfo){}else
{var render=sheet._render;if(render._existTouchDragFillIndicator&&!eventHandler.isDraggingFill){sheet.parent.touchToolStrip._closeAutoFillIndicator()}var oldActiveRow=sheet.getActiveRowIndex();var oldActiveCol=sheet.getActiveColumnIndex();if(target.cellTypeHitInfo){if(row!==oldActiveRow||col!==oldActiveCol){var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);if(!sheet.endEdit()){return}var args={sheet:sheet,sheetName:sheet._name,row:oldActiveRow,col:oldActiveCol,cancel:false};sheet._trigger(_spread.Events.LeaveCell,args);if(args&&args.cancel===true){return}var oldSels=sheet._selectionModel.toArray();var newSels=keyword_null;var span=sheet._spanModel.find(row,col);if(span){newSels=[new _spread.Range(span.row,span.col,span.rowCount,span.colCount)]}else
{newSels=[new _spread.Range(row,col,1,1)]}sheet._trigger(_spread.Events.SelectionChanging,{sheet:sheet,sheetName:sheet._name,oldSelections:oldSels,newSelections:newSels});var isFocusAware=target.cellTypeHitInfo.isReservedLocation&&target.cellTypeHitInfo.isFocusAware;sheet._setActiveCellAndSelection(row,col,undefined,undefined,isFocusAware);sheet._trigger(_spread.Events.EnterCell,{sheet:sheet,sheetName:sheet._name,row:row,col:col});sheet._trigger(_spread.Events.SelectionChanged,{sheet:sheet,sheetName:sheet._name});eventHandler._updateValidationUI(row,col);sheet.isPaintSuspended(oldState);cellTypeCauseSelectionChanged=true}else
{render.refreshTouchSelectionIndicator()}var ct=sheet.getCellType(row,col,target.hitTestType);if(!target.cellTypeHitInfo.sheet){target.cellTypeHitInfo.sheet=sheet}ct.processMouseDown(target.cellTypeHitInfo);ct.processMouseUp(target.cellTypeHitInfo)}if(target.cellTypeHitInfo&&target.cellTypeHitInfo.isReservedLocation){return true}else
{sheet._trigger(_spread.Events.CellClick,{sheet:sheet,sheetName:sheet._name,sheetArea:target.hitTestType,row:target.row,col:target.col});try
{eventHandler._hitTestResult=target;if(sheet.isEditing()&&oldActiveRow===sheet.getActiveRowIndex()&&oldActiveCol===sheet.getActiveColumnIndex()&&!sheet.endEdit()){return}}finally
{eventHandler._hitTestResult=keyword_null}if(target.hitTestType===3){eventHandler._updateValidationUI(row,col)}if(self._isTouchSelected(row,col,target.hitTestType)&&!cellTypeCauseSelectionChanged){self._touchToolStripTimeout=setTimeout(function(){var args={x:target.x,y:target.y,handled:false};var touchToolStrip=sheet.parent.touchToolStrip;sheet._trigger(_spread.Events.TouchToolStripOpening,args);if(!args.handled){touchToolStrip.open(target.x,target.y-const_toolbar_offset)}self._clearTouchToolStripTimeout()},TouchHelper.DoubleTappedTimeOffset+20)}else
{var oldSelections=sheet._selectionModel.toArray();eventHandler._startSelectingCore(target);var newSelections=sheet._selectionModel.toArray();if(eventHandler._notEqualSelecions(oldSelections,newSelections)){sheet._trigger(_spread.Events.SelectionChanging,{sheet:sheet,sheetName:sheet._name,oldSelections:oldSelections,newSelections:newSelections})}eventHandler.stopSelecting()}}}}};TouchEventHandler.prototype.doDoubleTapped=function(e){var sheet=this.sheet;this._clearTouchToolStripTimeout();var i,selectedRange,action;var currentTarget=sheet._currentTarget;if(currentTarget){sheet._trigger(_spread.Events.CellDoubleClick,{sheet:sheet,sheetName:sheet._name,sheetArea:currentTarget.hitTestType,row:currentTarget.row,col:currentTarget.col});var resizeInfo=currentTarget.resizeInfo;if(resizeInfo){if(resizeInfo.action==="sizeRow"){var rowList=[];if(sheet._isRowSelected(resizeInfo.index)){for(i=0;i<sheet._selectionModel.length;i++){selectedRange=sheet._selectionModel[i];if(selectedRange.col===-1){selectedRange=sheet._getActualRange(selectedRange);for(var r=0;r<selectedRange.rowCount;r++){rowList.push({row:selectedRange.row+r})}}}}else
{rowList.push({row:resizeInfo.index})}action=new _spread.UndoRedo.RowAutoFitUndoAction(sheet,rowList,resizeInfo.sheetArea===1);sheet._doCommand(action)}else
{var columnList=[];if(sheet._isColumnSelected(resizeInfo.index)){for(i=0;i<sheet._selectionModel.length;i++){selectedRange=sheet._selectionModel[i];if(selectedRange.row===-1){selectedRange=sheet._getActualRange(selectedRange);for(var c=0;c<selectedRange.colCount;c++){columnList.push({col:selectedRange.col+c})}}}}else
{columnList.push({col:resizeInfo.index})}action=new _spread.UndoRedo.ColumnAutoFitUndoAction(sheet,columnList,resizeInfo.sheetArea===2);sheet._doCommand(action)}return}}var target=this._touchHitTest(e.Position.X,e.Position.Y,true);if(target&&target.row>=0&&target.col>=0&&target.rowViewportIndex>=0&&target.colViewportIndex>=0&&!target.resizeInfo){sheet._clearSelectionImp();sheet.addSelection(target.row,target.col,1,1);sheet._eventHandler.resumeFocus(false);sheet._startEditImp(sheet._getCanvas(),target.row,target.col)}};TouchEventHandler.prototype.doRightTapped=function(e){};TouchEventHandler.prototype.doTouchOperatorStart=function(e){var sheet=this.sheet;var target=this._touchHitTest(e.Position.X,e.Position.Y);if(!sheet.isEditing()){this._target=target;var targetWithoutSelection=this._touchHitTest(e.Position.X,e.Position.Y,true);if(targetWithoutSelection&&(targetWithoutSelection.cellTypeHitInfo&&targetWithoutSelection.cellTypeHitInfo.isEditting)){}else
{sheet._eventHandler.releaseFocus(targetWithoutSelection)}}else if(target.row!==sheet._activeRowIndex||target.col!==sheet._activeColIndex){sheet._eventHandler.releaseFocus(target)}};TouchEventHandler.prototype.doTouchOperatorEnd=function(e){var sheet=this.sheet;if(!sheet.isEditing()){var target=this._target;var resumeFocus=true;if(target){if(target.cellTypeHitInfo&&target.cellTypeHitInfo.isReservedLocation){resumeFocus=false}else
{var ct=sheet.getCellType(target.row,target.col);if(ct&&ct.isEditting()){resumeFocus=false}}}if(resumeFocus){sheet._eventHandler.resumeFocus()}}};TouchEventHandler.prototype._touchHitTest=function(x,y,ignoreSelection){var self=this;var sheet=self.sheet,render=sheet._render;sheet._getSheetLayout();var target={x:x,y:y,rowViewportIndex:keyword_null,colViewportIndex:keyword_null,row:-1,col:-1,resizeInfo:keyword_null,hitTestType:keyword_null,groupHitInfo:keyword_null,filterButtonHitInfo:keyword_null,dragInfo:keyword_null,cellTypeHitInfo:keyword_null,selectionHitInfo:keyword_null};var hitInfo=render.groupHitTest(x,y),rowViewportIndex,colViewportIndex;if(hitInfo){target.groupHitInfo=hitInfo}else
{rowViewportIndex=sheet._getRowViewportIndexFromY(y);colViewportIndex=sheet._getColumnViewportIndexFromX(x);target.rowViewportIndex=rowViewportIndex;target.colViewportIndex=colViewportIndex;target.row=sheet._getRowIndexFromY(y,rowViewportIndex);target.col=sheet._getColumnIndexFromX(x,colViewportIndex);if(rowViewportIndex>=0&&rowViewportIndex<=2&&colViewportIndex>=0){var cellLayout=sheet._getCellLayoutByCell(rowViewportIndex,colViewportIndex,keyword_undefined,target.row,target.col);if(cellLayout){target.row=cellLayout.row;target.col=cellLayout.col}}target.hitTestType=sheet._getSheetArea(rowViewportIndex,colViewportIndex);var resizeInfo,dragInfo,filterButtonHitInfo,selectionHitInfo;if(resizeInfo=self._getTouchResizeInfo(target,x,y,10)){target.resizeInfo=resizeInfo}else if(render._existTouchDragFillIndicator&&(dragInfo=self._getDragFillInfo(target,x,y))){target.dragInfo=dragInfo}else if(filterButtonHitInfo=sheet._getFilterButtonHitInfo(target,x,y)){target.filterButtonHitInfo=filterButtonHitInfo}else if(!ignoreSelection&&(selectionHitInfo=self._getSelectionHitInfo(target,x,y))){target.selectionHitInfo=selectionHitInfo}else
{target.cellTypeHitInfo=sheet._getCellTypeHitInfo(target,x,y)}}return target};TouchEventHandler.prototype._getTouchResizeInfo=function(target,x,y,resizeArea){var sheet=this.sheet,eventHandler=sheet._eventHandler;var selections=sheet.getSelections();var op=keyword_null;if(sheet._isTouchMode&&selections.length>0){var selection=selections[selections.length-1];var row=selection.row,lastRow=selection.row+selection.rowCount-1,col=selection.col,lastCol=selection.col+selection.colCount-1;if(!sheet.parent||sheet.parent._allowUserResize){if(row!==-1&&col===-1&&target.rowViewportIndex>=0&&target.colViewportIndex<0&&sheet.rowHeaderVisible){op=eventHandler._getResizeRowInfo(sheet,target,resizeArea,2,y);if(op&&op.action==="sizeRow"&&op.sheetArea===2&&op.index!==lastRow){op=keyword_null}}else if(row===-1&&col!==-1&&target.rowViewportIndex<0&&target.colViewportIndex>=0&&sheet.colHeaderVisible){op=eventHandler._getResizeColInfo(sheet,target,resizeArea,1,x);if(op&&op.action==="sizeCol"&&op.sheetArea===1&&op.index!==lastCol){op=keyword_null}}}}return op};TouchEventHandler.prototype._getSelectionHitInfo=function(target,x,y){var sheet=this.sheet;var selectionIndicatorRects=sheet._render.getSelectionIndicatorRects();var selections=sheet.getSelections();var type=3;if(sheet._isTouchMode&&selections.length>0){var selection=selections[selections.length-1];if(selection.row!==-1&&selection.col!==-1){type=3}else if(selection.row!==-1){type=2}else if(selection.col!==-1){type=1}}for(var i=0;i<selectionIndicatorRects.length;i++){var rect=selectionIndicatorRects[i];rect.x-=rect.width;rect.y-=rect.height;rect.width*=3;rect.height*=3;if(rect.contains(x,y)){return{x:x,y:y,type:type,isHeader:false,isFirstIndicator:i===0}}}if(target.hitTestType===1){return{x:x,y:y,type:1,isHeader:true}}else if(target.hitTestType===2){return{x:x,y:y,type:2,isHeader:true}}return keyword_null};TouchEventHandler.prototype._getDragFillInfo=function(target,x,y){var op=keyword_null;var rowViewportIndex=target.rowViewportIndex,colViewportIndex=target.colViewportIndex;if(typeof(rowViewportIndex)===const_undefined||rowViewportIndex===keyword_null||typeof(colViewportIndex)===const_undefined||colViewportIndex===keyword_null){return op}var sheet=this.sheet;var activeSelRange=sheet._getActiveSelectedRange();if(rowViewportIndex>=0&&colViewportIndex>=0&&sheet._selectionModel.length===1){var actualRange=sheet._getActualRange(activeSelRange);var frozenTrailingColCount=sheet._frozenTrailingColCount,frozenTrailingRowCount=sheet._frozenTrailingRowCount;var endCol=sheet.getColumnCount()-frozenTrailingColCount,endRow=sheet.getRowCount()-frozenTrailingRowCount;if(colViewportIndex===1&&frozenTrailingColCount>0&&actualRange.col<endCol&&actualRange.col+actualRange.colCount>endCol){var colLayoutModel=sheet._getColumnLayout(colViewportIndex);if(colLayoutModel&&colLayoutModel.length>0){var colLayout=colLayoutModel[colLayoutModel.length-1];if(x>colLayout.x+colLayout.width){return op}}}if(rowViewportIndex===1&&frozenTrailingRowCount>0&&actualRange.row<endRow&&actualRange.row+actualRange.rowCount>endRow){var rowLayoutModel=sheet._getRowLayout(rowViewportIndex);if(rowLayoutModel&&rowLayoutModel.length>0){var rowLayout=rowLayoutModel[rowLayoutModel.length-1];if(y>rowLayout.y+rowLayout.height){return op}}}}var rect=sheet._render.getTouchDragFillIndicatorRect();if(rect){if(!op){rect.x-=rect.width;rect.y-=rect.height;rect.width*=3;rect.height*=3;if(rect.contains(x,y)){op={action:"drag",side:"corner"}}}if(!sheet.canUserDragFill()){if(op&&op.side==="corner"){op.side=keyword_null}}}return op};TouchEventHandler.prototype._getNewZoomFactor=function(scale,oldZoomFactor){var newZoomFactor=scale*oldZoomFactor;if(newZoomFactor>4){newZoomFactor=4}else if(newZoomFactor<0.5){newZoomFactor=0.5}return newZoomFactor};TouchEventHandler.prototype._getNewTopRowInfo=function(translationY,oldTopRow){var sheet=this.sheet;var minRow=sheet._getScrollableRow(-1);var maxRow=sheet._getScrollableRow(sheet.getRowCount(),true);var r=oldTopRow,height=0;if(translationY>0){while(r>=minRow){if(height>=translationY){break}height+=sheet._getZoomRowHeight(r);r--}if(r<minRow){r=minRow}}else if(translationY<0){while(r<=maxRow){if(height<=translationY){break}height-=sheet._getZoomRowHeight(r);r++}if(r>maxRow){r=maxRow}}return{row:r,height:height}};TouchEventHandler.prototype._getNewLeftColumnInfo=function(translationX,oldLeftColumn){var sheet=this.sheet;var minColumn=sheet._getScrollableColumn(-1);var maxColumn=sheet._getScrollableColumn(sheet.getColumnCount(),true);var c=oldLeftColumn,width=0;if(translationX>0){while(c>=minColumn){if(width>=translationX){break}width+=sheet._getZoomColumnWidth(c);c--}if(c<minColumn){c=minColumn}}else if(translationX<0){while(c<=maxColumn){if(width<=translationX){break}width-=sheet._getZoomColumnWidth(c);c++}if(c>maxColumn){c=maxColumn}}return{col:c,width:width}};TouchEventHandler.prototype._clearTouchToolStripTimeout=function(){if(this._touchToolStripTimeout){clearTimeout(this._touchToolStripTimeout);this._touchToolStripTimeout=keyword_null}};TouchEventHandler.prototype._isTouchSelected=function(r,c,sheetArea){var selected=false;var sheet=this.sheet;var selectionModel=sheet._selectionModel;for(var i=0,count=selectionModel.length;i<count;i++){var sel=selectionModel[i];if(sheetArea===3||typeof(sheetArea)===keyword_undefined||sheetArea===keyword_null){sel=sheet._getActualRange(sel);selected=(sel.row<=r&&r<sel.row+sel.rowCount&&sel.col<=c&&c<sel.col+sel.colCount)}else if(sheetArea===2){selected=(sel.col===-1&&sel.row<=r&&r<sel.row+sel.rowCount)}else if(sheetArea===1){selected=(sel.row===-1&&sel.col<=c&&c<sel.col+sel.colCount)}else if(sheetArea===0){return selected}if(selected){return selected}}return selected};TouchEventHandler.prototype._changeActiveCellBeforeSelect=function(isHeader,isFirstIndicator,selectionType){if(isHeader){return}var sheet=this.sheet,selections=sheet.getSelections(),selection=selections[selections.length-1];if(isFirstIndicator){if(selectionType===3){sheet._activeRowIndex=selection.row+selection.rowCount-1;sheet._activeColIndex=selection.col+selection.colCount-1}else if(selectionType===2){sheet._activeRowIndex=selection.row+selection.rowCount-1;sheet._activeColIndex=0}else if(selectionType===1){sheet._activeRowIndex=0;sheet._activeColIndex=selection.col+selection.colCount-1}}else
{if(selectionType===3){sheet._activeRowIndex=selection.row;sheet._activeColIndex=selection.col}else if(selectionType===2){sheet._activeRowIndex=selection.row;sheet._activeColIndex=0}else if(selectionType===1){sheet._activeRowIndex=0;sheet._activeColIndex=selection.col}}};TouchEventHandler.prototype._changeActiveCellAfterSelect=function(isHeader,isFirstIndicator,selectionType){var sheet=this.sheet,selections=sheet.getSelections(),selection=selections[selections.length-1];if(isHeader||isFirstIndicator){if(selectionType===3){sheet._activeRowIndex=selection.row;sheet._activeColIndex=selection.col}else if(selectionType===2){sheet._activeRowIndex=selection.row;sheet._activeColIndex=0}else if(selectionType===1){sheet._activeRowIndex=0;sheet._activeColIndex=selection.col}}};return TouchEventHandler})();var TouchManager=(function(){function TouchManager(element,sheet,touchEventProvider){var self=this;self._touchEventProvider=touchEventProvider;self._touchMouseMessageFilter=new TouchMouseMessageFilter(sheet);self._touchEventHandler=new TouchEventHandler(sheet);self._touchTarget=new TouchTargetElement(element,"sheet",self._touchMouseMessageFilter,100,100);self._touchTarget.level=10;self._touchEventProvider.attachDettach(self._touchTarget,true)}TouchManager.prototype.attach=function(){var touchEventProvider=this._touchEventProvider;var touchEventHandler=this._touchEventHandler;var touchTarget=this._touchTarget;touchTarget.manipulationStarting=function(e){return touchEventHandler.doManipulationStarting(e)};touchTarget.manipulationStarted=function(e){return touchEventHandler.doManipulationStarted(e)};touchTarget.manipulationDelta=function(e){return touchEventHandler.doManipulationDelta(e)};touchTarget.manipulationInertiaStarting=function(e){return touchEventHandler.doManipulationInertiaStarting(e)};touchTarget.manipulationCompleted=function(e){return touchEventHandler.doManipulationCompleted(e)};touchTarget.tapped=function(e){return touchEventHandler.doTapped(e)};touchTarget.doubleTapped=function(e){return touchEventHandler.doDoubleTapped(e)};touchTarget.rightTapped=function(e){return touchEventHandler.doRightTapped(e)};touchTarget.touchOperatorStart=function(e){return touchEventHandler.doTouchOperatorStart(e)};touchTarget.touchOperatorEnd=function(e){return touchEventHandler.doTouchOperatorEnd(e)}};TouchManager.prototype.detach=function(){this._touchEventProvider.attachDettach(this._touchTarget,false)};TouchManager.prototype.preProcessMouseDown=function(event){return this._touchMouseMessageFilter.preProcessMouseDown(event)};TouchManager.prototype.preProcessMouseUp=function(event){return this._touchMouseMessageFilter.preProcessMouseUp(event)};TouchManager.prototype.preProcessMouseMove=function(event){return this._touchMouseMessageFilter.preProcessMouseMove(event)};return TouchManager})();_spread.TouchManager=TouchManager;var BuildInToolStripItem;(function(BuildInToolStripItem){BuildInToolStripItem[BuildInToolStripItem["paste"]=0]="paste";BuildInToolStripItem[BuildInToolStripItem["cut"]=1]="cut";BuildInToolStripItem[BuildInToolStripItem["copy"]=2]="copy";BuildInToolStripItem[BuildInToolStripItem["autoFill"]=3]="autoFill"})(BuildInToolStripItem||(BuildInToolStripItem={}));var TouchToolStrip=(function(_super){__extends(TouchToolStrip,_super);function TouchToolStrip(spread){_super.call(this);var self=this;self._useWijmoTheme=false;self._touchEventNamespace=".touchToolStrip";self._domButton="button";self._buttonClass="toolstrip-button";self._buttonStyleClass="toolstrip-button-style";self._textClass="toolstrip-text";self._imageClass="wijspread-toolstrip-image";self._itemClass="toolstrip-item";self._domSpan="span";self._seprateLineClass="touch-sperate-line";self._defaultSeprateLineColor="#CCC";self._domDiv="div";self._imageAreaHeight=32;self._separatorHeight=45;self._itemMinWidth=60;self.menuItems={};self.pasteName="wijspread_toolstrip_paste";self.copyName="wijspread_toolstrip_copy";self.cutName="wijspread_toolstrip_cut";self.autoFillName="wijspread_toolstrip_autofill";self._isOpen=false;self.spreadHost=spread;self._initDialog()}TouchToolStrip.prototype.open=function(x,y){var self=this;var sheet=self.spreadHost.getActiveSheet();if(!sheet){return}window.gcGlobal.activeElement=keyword_null;var t=$(sheet._getCanvas()).offset();x+=t.left;y+=t.top;self._toolStripDialog.css({left:x,top:y});self.show();self._isOpen=true;self.resetDialogPosition();if(!self._isEmpty(self.menuItems)){var items=self.menuItems;for(var name in items){var item=items[name];var display=item.canExecute?item.canExecute.call(self):true;if(display){$("#"+name).show()}else
{$("#"+name).hide()}}}};TouchToolStrip.prototype.add=function(item){if(!item){return}var self=this;var menuItems=self.menuItems;if(item instanceof TouchToolStripSeparator){var separatorName=item.name();if(separatorName){menuItems[separatorName]=item;var content=self._getMenuItemString(item,separatorName);if(content){self._addDom(content)}}}else if(item instanceof TouchToolStripItem){var name=item.name();if(!self.getItem(name)){menuItems[name]=item;var content=self._getMenuItemString(item);if(content){self._addDom(content)}}}};TouchToolStrip.prototype.getItem=function(name){return this.menuItems[name]};TouchToolStrip.prototype.getItems=function(){var self=this;var items=[];if(!self._isEmpty(self.menuItems)){for(var name in self.menuItems){items.push(self.menuItems[name])}return items}return keyword_null};TouchToolStrip.prototype.remove=function(name){if(this.getItem(name)){$("#"+name).parent().remove();var item=this.menuItems[name];delete this.menuItems[name];return item}return keyword_null};TouchToolStrip.prototype.clear=function(){if(this._toolStripDialog){this._toolStripDialog.find("td."+this._itemClass).remove();this.menuItems={}}};TouchToolStrip.prototype.close=function(){var self=this;window.gcGlobal.resumeEvent();if(self._toolStripDialog){self._toolStripDialog.hide()}self._isOpen=false;self.closeOverlay();var sheet=self.spreadHost.getActiveSheet();if(!sheet){return}var render=sheet._render;sheet.setFocus();var sels=sheet.getSelections();if(render&&!render._existTouchDragFillIndicator){if(sels[0].row===-1&&sels[0].col===-1){sheet._clearSelectionImp()}}};TouchToolStrip.prototype.imageAreaHeight=function(height){var self=this;if(arguments.length===0){return self._imageAreaHeight}if(height<=0){return}self._imageAreaHeight=height;self._toolStripDialog.find("span."+self._imageClass).css("height",height+"px");return self};TouchToolStrip.prototype.itemHeight=function(height){var items=this._toolStripDialog.find("button."+this._buttonClass);if(arguments.length===0){return parseFloat(items.css("height"))}if(height<=0){return}items.css("height",height+"px");return this};TouchToolStrip.prototype.itemWidth=function(width){var items=this._toolStripDialog.find("button."+this._buttonClass);if(arguments.length===0){return parseFloat(items.css("width"))}if(width<0){return}var minWidth=parseFloat(items.css("min-width"));if(minWidth>width){items.css("min-width",width)}items.css("width",width+"px");return this};TouchToolStrip.prototype.separatorHeight=function(height){var self=this;if(arguments.length===0){return self._separatorHeight}if(height<=0){return}self._separatorHeight=height;self._toolStripDialog.find("div."+self._seprateLineClass).css("height",height+"px");return self};TouchToolStrip.prototype.useWijmoTheme=function(value){var self=this;if(typeof value==="undfined"){return self._useWijmoTheme}if(typeof value==='boolean'&&self._useWijmoTheme!==value){_super.prototype.useWijmoTheme.call(this,value);var toolStripDialog=self._toolStripDialog,text=toolStripDialog.find("span."+self._textClass),toolstripButton=toolStripDialog.find("button."+self._buttonClass),separatorLine=toolStripDialog.find("div."+self._seprateLineClass),toolStripDialogWijmoClass="ui-state-default",toolStripDialogNotWijmoClass="toolstrip-default",toolstripButtonWijmoClass="ui-state-default ui-widget",toolstripButtonNotWijmoClass=self._buttonStyleClass;toolStripDialog.removeClass(value?toolStripDialogNotWijmoClass:toolStripDialogWijmoClass);toolStripDialog.addClass(value?toolStripDialogWijmoClass:toolStripDialogNotWijmoClass);toolstripButton.addClass(value?toolstripButtonWijmoClass:toolstripButtonNotWijmoClass);toolstripButton.removeClass(value?toolstripButtonNotWijmoClass:toolstripButtonWijmoClass);separatorLine.css("background-color",value?text.css("color"):self._defaultSeprateLineColor);return self}return keyword_null};TouchToolStrip.prototype.repaint=function(){this.useWijmoTheme(this.spreadHost.useWijmoTheme)};TouchToolStrip.prototype._createLayoutTable=function(){var table=$("<table>").css({padding:0,display:"table"}).attr({cellspacing:0,cellpadding:0});this._tableRow=$("<tr>").appendTo(table);table.appendTo(this._toolStripDialog)};TouchToolStrip.prototype._dispose=function(){var self=this,toolStripDialog=self._toolStripDialog;if(toolStripDialog){if(self._isOpen){window.gcGlobal.resumeEvent()}toolStripDialog.remove();self.closeOverlay();toolStripDialog=keyword_null}};TouchToolStrip.prototype._isEmpty=function(obj){if(!obj||JSON.stringify(obj)==="{}"){return true}return false};TouchToolStrip.prototype._initDialog=function(){var self=this;if(!self._toolStripDialog){(self._toolStripDialog=self.getContainer()).addClass("toolstrip-default").appendTo(document.body).hide();self._createLayoutTable();self._setDefaultCellDomString();self._attachEvent()}};TouchToolStrip.prototype._attachEvent=function(){var self=this;this._toolStripDialog.bind("click",function(e){var item=e.target;var tagName=$(item).get(0).tagName.toLowerCase();var name;if(tagName==="button"){name=$(item).attr("id")}else
{name=$(item).parents("button").attr("id")}var menuItem=self.menuItems[name];if(name&&menuItem){menuItem.command.call(self)}})};TouchToolStrip.prototype._addDom=function(domStr){var activeSheet=this.spreadHost.getActiveSheet();if(!activeSheet){return}if(!this._toolStripDialog||!domStr){return}$("<td>").append($(domStr)).appendTo(this._tableRow).addClass(this._itemClass)};TouchToolStrip.prototype._setDefaultCellDomString=function(){var self=this;var pasteRes=TouchToolStrip._getImageSrc(0);var cutRes=TouchToolStrip._getImageSrc(1);var copyRes=TouchToolStrip._getImageSrc(2);var autoFillRes=TouchToolStrip._getImageSrc(3);self._pasteItem=new TouchToolStripItem(self._getItemName(self.pasteName),_spread.SR.ToolStrip_PasteText,pasteRes,self._doTapPaste);self._cutItem=new TouchToolStripItem(self._getItemName(self.cutName),_spread.SR.ToolStrip_CutText,cutRes,self._doTapCut);self._copyItem=new TouchToolStripItem(self._getItemName(self.copyName),_spread.SR.ToolStrip_CopyText,copyRes,self._doTapCopy);self._autoFillItem=new TouchToolStripItem(self._getItemName(self.autoFillName),_spread.SR.ToolStrip_AutoFillText,autoFillRes,self._showAutoFillIndicator,self._hideAutoFill);self.add(self._pasteItem);self.add(self._cutItem);self.add(self._copyItem);self.add(new TouchToolStripSeparator(self._hideAutoFill));self.add(self._autoFillItem)};TouchToolStrip.prototype._hideAutoFill=function(){var sheet=this.spreadHost.getActiveSheet();if(!sheet){return false}var selections=sheet.getSelections();for(var i=0;i<selections.length;i++){var sel=selections[i];if(sel.row===-1&&sel.col===-1){return false}}return true};TouchToolStrip.prototype._showAutoFillIndicator=function(){this.close();var activeSheet=this.spreadHost.getActiveSheet();if(!activeSheet){return}var length=activeSheet.getSelections().length;if(length>1){return}var render=activeSheet._render;render._existTouchDragFillIndicator=true;render.repaintSelection()};TouchToolStrip.prototype._closeAutoFillIndicator=function(){var activeSheet=this.spreadHost.getActiveSheet();if(!activeSheet){return}var render=activeSheet._render;render._existTouchDragFillIndicator=false;render.repaintSelection()};TouchToolStrip.prototype._doTapCopy=function(){var sheet=this.spreadHost.getActiveSheet();if(sheet){this._clipboardTouchData=sheet._doCopy(true)}this.close()};TouchToolStrip.prototype._doTapCut=function(){var sheet=this.spreadHost.getActiveSheet();if(sheet){this._clipboardTouchData=sheet._doCut(true)}this.close()};TouchToolStrip.prototype._doTapPaste=function(){var self=this;var sheet=self.spreadHost.getActiveSheet();if(sheet){if(typeof self._clipboardTouchData!==const_undefined){sheet._doPaste(self._clipboardTouchData)}}self.close()};TouchToolStrip.prototype._getMenuItemString=function(item,name){var self=this;var imgSpan="";var textSpan="";var fontStyle="";var foreColorStyle="";if(item.name){name=item.name()}if(item.image){imgSpan=self._getDomElementString(self._domSpan,name+"Image",keyword_null,{"class":self._imageClass,style:"background-image: url(\""+item.image()+"\");"+"background-repeat: no-repeat;"+"display: block;"+"height:"+self._imageAreaHeight+"px;"+"background-position-x:50%"})}if(item._font){fontStyle+="font:"+item._font+";"}if(item.text&&name){textSpan=self._getDomElementString(self._domSpan,name+"Text",item.text(),{"class":self._textClass,style:fontStyle})}if(imgSpan&&name){var buttonStyleClass;if(self._useWijmoTheme){buttonStyleClass="ui-state-default ui-widget"}else
{buttonStyleClass=self._buttonStyleClass}var buttonDom=self._getDomElementString(self._domButton,name,imgSpan+textSpan,{"class":self._buttonClass+" "+buttonStyleClass,style:"border: 0px;"+"padding:4px;"+"margin:3px;"+"min-width:"+self._itemMinWidth+"px;"});return buttonDom}else
{if(item instanceof TouchToolStripSeparator){return self._getDomElementString(self._domDiv,name,keyword_null,{"class":self._seprateLineClass,style:"width:1px;"+"height:"+self._separatorHeight+"px;"+"display:inline-block;"+"background-color:"+self._defaultSeprateLineColor+";"+"margin-left:5px;"+"margin-right:5px;"+"opacity:0.6"})}}};TouchToolStrip.prototype._getDomElementString=function(name,id,content,attrPairs,noCloseTag){var tag="<"+name+" ";if(id){tag+="id='"+id+"' "}if(attrPairs){$.each(attrPairs,function(i,v){tag+=i+"='"+v+"' "})}if(content){tag+=">"+content+"</"+name+">"}else
{if(noCloseTag===keyword_undefined){tag+=">"+"</"+name+">"}else
{tag+=(noCloseTag===true)?">":"/>"}}return tag};TouchToolStrip.prototype._getItemName=function(name){var num=0;var itemName=name+num;while(document.getElementById(itemName)){num++;itemName=name+num}return itemName};TouchToolStrip.prototype._updateResource=function(){var self=this,textClass=self._textClass;$("#"+self._pasteItem._name).find("span."+textClass).text(_spread.SR.ToolStrip_PasteText);$("#"+self._cutItem._name).find("span."+textClass).text(_spread.SR.ToolStrip_CutText);$("#"+self._copyItem._name).find("span."+textClass).text(_spread.SR.ToolStrip_CopyText);$("#"+self._autoFillItem._name).find("span."+textClass).text(_spread.SR.ToolStrip_AutoFillText)};TouchToolStrip._getImageSrc=function(state){switch(state){case 0:return'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c'+'6QAAAARnQU1BAACxjwv8YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA8ElEQV'+'RIS92VwQ3CMAxFe + qZERiHY8dgDI4cYYNOhDhwY4ayQviW4q / Eddu0KRe + 9CQ72P8rEpAmhPBT3ENLd'+'76EiPv5HO5hSmK + KYTFsz + 04A4G9NZ0hAizn7jTos2MFRYYugFZQlscoFzRZsYKCwwNulAqnZddtJmxwi'+'IZ3oT6WFh4S2tQHwsLb2kN6mNh4S2tQX0sLLwly4IyY4WFZ2gReV / ZhBOQH2ddgKcYwBAc7R / weL0ZgqO6g'+'GPXE1E0JlBdwJx2CUhvkCL63xvw33QKUc0N + B5MIaq5gb5o8kotBszJDShFlkvQ + ZHBvoTmC + fiVfoq / m86AAAAAElFTkSuQmCC';case 1:return'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8'+'YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABkklEQVRIS7WTUXECQRBEcYCF'+'OIiESAAH / OYPCcQBEogDJCABCUhAwqXf1QzVM0cojko + Xt3ObG / 33t7eYhiGf6UU68 + vneD5Mu4HpZDg'+'Kja + YCYH94NSSHAUg3glZC9k8zgAYwLmhuS6o / tBKUJ8CTGsoveIsin3g1LEAkxzAd / kXbihwxwatGys'+'+ EEpEAT5LR6FuDmMb + t + UAoEwVL44h7CvB8lGxrn3A9KkaLAj8pDMD9HL / v0ZgfAQfSAk / WgXAT3g1K4'+'MPCj2AoPhNvRJO4HpejigF1jxtjNy9Ek7gel6GIjfzoP + Ihewf2gFPcWNNL817 / c / aAUKXpbfy / FXlzF'+'IM6gOYy3Gp + iz / xBPHeLQGLAMI2PNmYOw1uojZfdCyYNCXexiGcGpiljdp9hsBGjvnvBpCHhRbgBZChj'+'Agj0eXrX7gWThoR992lAMGOOLMfJuIHuBZMGQuE75KN66Cpq14xH2L1g0kixyLNm3I8sNbwJulHfvWDS'+'kJArmou4hlxXeh4AvBEBuZnnbtHfMix + AHqkr6wgQ4Q7AAAAAElFTkSuQmCC';case 2:return'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8'+'YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA3UlEQVRIS72PwQ3CMAxFOwrj'+'cOyZCTgyAjfWYCJO3JiCCVL / iFSO9W0MDTzpqYob + ztTKeWn0uJIadE6H8 / ljXsR96q6tzt4YogH / olP'+'cQ2R8mp3CHRBwO3 + 6EKkvNodcDkSgyyoAx0iRz / AA / 8Op0sdtJuv1Va3Ct8FYHgL8dgUAGxIe41 + kRAH'+'6CbdaGW86nFAhnaXLSLEAbqJCbxlUgEZ2DIgFaCbmMBbJhWQgS0DUgG6iQm8ZVIBGTYFsK21oN3F1yrE'+'ARnsIM / u8JeAT9S9nrQ4UlocKS2Os0wLtkPMdu9POt0AAAAASUVORK5CYII =';case 3:return'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAXCAIAAABrvZPKAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO'+'wwAADsMBx2 + oZAAAAIdJREFUOE / tzEEKgCAQheEOWLdx351adYc8Qgs3rbuAUC9nkkF0BKNN9CMy0Xx2'+'5llf8Edr7d57j / tlP4wTHf4W / b7gsT0vLs7Sz9bFWfM9nrDXE9ITphlVPO512wkkM++FNF86vBfKeKR4'+'3rjLe5QwOvxPVPSoipHmkY5RxSMFo7rXY9 + eMSdet07b6c / bnwAAAABJRU5ErkJggg =='}};return TouchToolStrip})(_spread.BaseDialog);_spread.TouchToolStrip=TouchToolStrip;var TouchToolStripItem=(function(){function TouchToolStripItem(name,text,image,command,canExecute){this._font="normal 12px Arial";var self=this;self._name=name;self._text=text;self._image=image;if(command){self.command=command}if(canExecute){self.canExecute=canExecute}}TouchToolStripItem.prototype.name=function(value){var self=this;if(arguments.length===0){return self._name}$("#"+self._name).attr("id",value);$("#"+self._name+"Text").attr("id",value+"Text");$("#"+self._name+"Image").attr("id",value+"Image");self._name=value;return self};TouchToolStripItem.prototype.text=function(value){var self=this;if(arguments.length===0){return self._text}self._text=value;$("#"+self.name()+"Text").text(value);return self};TouchToolStripItem.prototype.font=function(value){var self=this;var text=$("#"+self.name()+"Text");if(arguments.length===0){return self._font}self._font=value;text.css("font",value);return self};TouchToolStripItem.prototype.foreColor=function(value){var self=this;var text=$("#"+self.name()+"Text");if(arguments.length===0){if(self._foreColor){return self._foreColor}else
{return text.css("color")}}text.css("color",value);return self};TouchToolStripItem.prototype.image=function(value){var self=this;if(arguments.length===0){return self._image}self._image=value;$("#"+self.name()+"Image").css("background-image","url("+value+")");return self};return TouchToolStripItem})();_spread.TouchToolStripItem=TouchToolStripItem;var TouchToolStripSeparator=(function(){function TouchToolStripSeparator(canExecute){this._name=this._getSeparatorName();if(canExecute){this.canExecute=canExecute}}TouchToolStripSeparator.prototype.name=function(){return this._name};TouchToolStripSeparator.prototype._getSeparatorName=function(){var num=0;var separatorName="separator"+num;while(document.getElementById(separatorName)){num++;separatorName="separator"+num}return separatorName};return TouchToolStripSeparator})();_spread.TouchToolStripSeparator=TouchToolStripSeparator;var TouchMouseMessageFilter=(function(){function TouchMouseMessageFilter(owner){this.owner=owner}TouchMouseMessageFilter.prototype.preProcessManipulationStarting=function(){this.eventMode=2;this.owner._isTouchMode=true};TouchMouseMessageFilter.prototype.postProcessManipulationComplete=function(){this.eventMode=0;this.touchCompleteTimestamp=(new Date).valueOf()};TouchMouseMessageFilter.prototype.preProcessPointerDown=function(){return this.eventMode===1};TouchMouseMessageFilter.prototype.preProcessPointerUp=function(){return this.eventMode===1};TouchMouseMessageFilter.prototype.preProcessPointerMove=function(){return this.eventMode===1};TouchMouseMessageFilter.prototype.preProcessMouseDown=function(event){var self=this;if(self.eventMode===2){return true}else if(self.touchCompleteTimestamp){if((new Date).valueOf()-self.touchCompleteTimestamp<=200){self.mouseDownHandled++;return true}else
{self.touchCompleteTimestamp=0;self.mouseDownHandled=0;self.eventMode=1}}else
{self.eventMode=1}self.owner._isTouchMode=false;return false};TouchMouseMessageFilter.prototype.preProcessMouseUp=function(event){var self=this;if(self.mouseDownHandled){self.mouseDownHandled--;return true}if(self.eventMode===2){return true}self.eventMode=0;return false};TouchMouseMessageFilter.prototype.preProcessMouseMove=function(event){return this.eventMode===2};return TouchMouseMessageFilter})();_spread.TouchMouseMessageFilter=TouchMouseMessageFilter;var EventMode;(function(EventMode){EventMode[EventMode["None"]=0]="None";EventMode[EventMode["MouseMode"]=1]="MouseMode";EventMode[EventMode["TouchMode"]=2]="TouchMode"})(EventMode||(EventMode={}));var TabStripTouchEventHandler=(function(){function TabStripTouchEventHandler(tab){this._tab=tab}TabStripTouchEventHandler.prototype.doManipulationStarting=function(e){};TabStripTouchEventHandler.prototype.doManipulationStarted=function(e){var self=this;var tab=self._tab;var activeSheet=tab._spread.getActiveSheet();if(tab._tabNameEditor){tab.endSheetTabEditing(activeSheet,false)}var hit_element_resizebar="resizeBar",hit_element_tab="tab",hit_element_newTab="newTab";var hitTestInfo=tab._hitTest(e.Position.X,e.Position.Y);if(hitTestInfo.element===hit_element_resizebar){tab.resizeTab=true;tab.activeX=e.Position.X}else if(hitTestInfo.element===hit_element_tab||hitTestInfo.element===hit_element_newTab||hitTestInfo.element===""){var srcCanvas=tab.canvas,canvasWidth=srcCanvas.width,canvasHeight=srcCanvas.height;var canvas=self._getTouchCanvas(canvasWidth,canvasHeight);canvas.getContext("2d").drawImage(srcCanvas,0,0,canvasWidth,canvasHeight);self._canvas=canvas;self._oldFirstTab=tab._firstTab}self._minFirstTabIndex=tab._getNextVisibleIndex(-1);self._maxFirstTabIndex=tab._reCalculateFirstTabIndex(tab._getVisibleTabs())};TabStripTouchEventHandler.prototype.doManipulationDelta=function(e){var self=this;var tab=self._tab;if(tab.resizeTab){var d=e.Position.X-tab.activeX;var ss=tab._spread;var totalWidth=ss._vp.clientWidth;ss.setTabStripRatio(ss._getActualTabStripRatio()+d/totalWidth,true);var minRatio=tab._resizeBarWidth/totalWidth;var maxRatio=1;if(ss._getActualTabStripRatio()<minRatio){ss.setTabStripRatio(minRatio,true);tab.activeX=tab._resizeBarWidth}else if(ss._getActualTabStripRatio()>=maxRatio){ss.setTabStripRatio(maxRatio,true);tab.activeX=totalWidth}else
{tab.activeX=e.Position.X}}else
{var srcCanvas=self._canvas,oldFirstTab=self._oldFirstTab;if(!srcCanvas||typeof(oldFirstTab)===const_undefined||oldFirstTab===keyword_null){return}var minFirstTabIndex=self._minFirstTabIndex,maxFirstTabIndex=self._maxFirstTabIndex,newTabSize=tab._newTabSize,tabStartPosition=tab._getTabStartPosition(),translationX=e.Cumulative.Translation.X;var firstTabInfo=self._getNewFirstTabInfo(translationX,oldFirstTab);tab._firstTab=firstTabInfo.firstTab;var availableWidth=firstTabInfo.width;if(translationX>0&&oldFirstTab===minFirstTabIndex&&tab._firstTab===minFirstTabIndex){availableWidth=0}else if(translationX<0&&oldFirstTab===maxFirstTabIndex&&tab._firstTab===maxFirstTabIndex){availableWidth=0}if(translationX>0&&translationX>availableWidth+newTabSize){translationX=availableWidth+newTabSize}else if(translationX<0&&translationX<availableWidth-newTabSize){translationX=availableWidth-newTabSize}if(translationX!==0){var destCanvas=tab.canvas,ctx=destCanvas.getContext("2d");ctx.save();ctx.clearRect(0,0,destCanvas.width,destCanvas.height);var rect=tab.getBounds();ctx.fillStyle=tab._getTabStripBackColor(ctx,rect);ctx.fillRect(rect.x,rect.y,rect.width,rect.height);var x,y=0,width,height=rect.height,x2,xOffset;if(translationX>0){x=tabStartPosition;x2=x+translationX;width=rect.x+rect.width-tab._resizeBarWidth-x2;if(width>0){ctx.drawImage(srcCanvas,x,y,width,height,x2,y,width,height)}xOffset=translationX-availableWidth;if(rect.x+rect.width-tab._resizeBarWidth-tabStartPosition<=translationX){xOffset=0}width=availableWidth;x=tabStartPosition;if(width>0){ctx.translate(xOffset,0);tab.paintTabs(ctx,new _spread.Rect(x,y,width,height));ctx.translate(-xOffset,0)}}else if(translationX<0){x2=tabStartPosition;x=x2+Math_abs(translationX);width=rect.x+rect.width-tab._resizeBarWidth-x;if(width>0){ctx.drawImage(srcCanvas,x,y,width,height,x2,y,width,height)}xOffset=translationX-availableWidth;if(rect.x+rect.width-tab._resizeBarWidth-tabStartPosition<=Math_abs(translationX)){xOffset=0}width=Math_abs(availableWidth);x=rect.x+rect.width-tab._resizeBarWidth-width;if(width>0){ctx.translate(xOffset,0);tab.paintTabs(ctx,new _spread.Rect(x,y,width,height));ctx.translate(-xOffset,0)}}x=0;width=tabStartPosition;ctx.drawImage(srcCanvas,x,y,width,height,x,y,width,height);x=rect.width-tab._resizeBarWidth;width=tab._resizeBarWidth;ctx.drawImage(srcCanvas,x,y,width,height,x,y,width,height);ctx.restore()}}};TabStripTouchEventHandler.prototype.doManipulationInertiaStarting=function(e){};TabStripTouchEventHandler.prototype.doManipulationCompleted=function(e){var tab=this._tab;if(tab.resizeTab){tab.resizeTab=false;tab._spread._doTabHSResize()}else
{tab.repaint()}};TabStripTouchEventHandler.prototype.doTapped=function(e){var tab=this._tab,sp=tab._spread;var activeSheet=sp.getActiveSheet();if(tab._tabNameEditor){tab.endSheetTabEditing(activeSheet,false)}var hit_element_navbutton="navButton",hit_element_tab="tab",hit_element_newTab="newTab";var hitTestInfo=tab._hitTest(e.Position.X,e.Position.Y);sp._suspendSetFocus=true;try
{if(hitTestInfo.element===hit_element_navbutton){tab.doNavButtonClick(hitTestInfo.index,true)}else if(hitTestInfo.element===hit_element_tab){tab.doSheetTabClick(hitTestInfo.index,hitTestInfo.position)}else if(hitTestInfo.element===hit_element_newTab){tab.doNewTabClick(hitTestInfo.position)}}finally
{sp._suspendSetFocus=false;var newActiveSheet=sp.getActiveSheet();if(newActiveSheet!==activeSheet){newActiveSheet._isTouchMode=true;newActiveSheet.setFocus()}}};TabStripTouchEventHandler.prototype.doDoubleTapped=function(e){return this._tab._doMouseDbClickImp(e.Position.X,e.Position.Y)};TabStripTouchEventHandler.prototype.doRightTapped=function(e){};TabStripTouchEventHandler.prototype._getTouchCanvas=function(width,height){var canvas=document.createElement("canvas");canvas.width=width;canvas.height=height;return canvas};TabStripTouchEventHandler.prototype._getNewFirstTabInfo=function(translationX,oldFirstTab){var tab=this._tab,tabSizes=tab._tabSizes,min=this._minFirstTabIndex,max=this._maxFirstTabIndex;var c=oldFirstTab,width=0;if(translationX>0){while(c>=min){if(width>translationX){break}width+=tabSizes[c];c--}if(c<min){c=min}}else if(translationX<0&&max!==-1){while(c<=max){if(width<translationX){break}width-=tabSizes[c];c++}if(c>max){c=max}}return{firstTab:c,width:width}};return TabStripTouchEventHandler})();var TabStripTouchManager=(function(){function TabStripTouchManager(element,tab,touchEventProvider){var self=this;self._touchMouseMessageFilter=new TouchMouseMessageFilter(self);self._touchTarget=new TouchTargetElement(element,"tabStrip",self._touchMouseMessageFilter,1,-1);self._touchEventProvider=touchEventProvider;self._touchEventHandler=new TabStripTouchEventHandler(tab);var touchEventHandler=self._touchEventHandler;var touchTarget=self._touchTarget;touchTarget.manipulationStarting=function(e){return touchEventHandler.doManipulationStarting(e)};touchTarget.manipulationStarted=function(e){return touchEventHandler.doManipulationStarted(e)};touchTarget.manipulationDelta=function(e){return touchEventHandler.doManipulationDelta(e)};touchTarget.manipulationInertiaStarting=function(e){return touchEventHandler.doManipulationInertiaStarting(e)};touchTarget.manipulationCompleted=function(e){return touchEventHandler.doManipulationCompleted(e)};touchTarget.tapped=function(e){return touchEventHandler.doTapped(e)};touchTarget.doubleTapped=function(e){return touchEventHandler.doDoubleTapped(e)};touchTarget.rightTapped=function(e){return touchEventHandler.doRightTapped(e)}}TabStripTouchManager.prototype.bindTouchEvents=function(){if(this._touchEventProvider){this._touchEventProvider.attachDettach(this._touchTarget,true)}};TabStripTouchManager.prototype.unbindTouchEvents=function(){if(this._touchEventProvider){this._touchEventProvider.attachDettach(this._touchTarget,false)}};TabStripTouchManager.prototype.preProcessMouseDown=function(event){return this._touchMouseMessageFilter.preProcessMouseDown(event)};TabStripTouchManager.prototype.preProcessMouseUp=function(event){return this._touchMouseMessageFilter.preProcessMouseUp(event)};TabStripTouchManager.prototype.preProcessMouseMove=function(event){return this._touchMouseMessageFilter.preProcessMouseMove(event)};return TabStripTouchManager})();_spread.TabStripTouchManager=TabStripTouchManager;var FloatingObjectTouchManager=(function(){function FloatingObjectTouchManager(element,floatingObject,touchEventProvider){var self=this;self._touchMouseMessageFilter=new TouchMouseMessageFilter(self);self._touchTarget=new TouchTargetElement(element,"FL_"+floatingObject.name,self._touchMouseMessageFilter,1,200);self._touchEventProvider=touchEventProvider;self._touchEventHandler=new FloatingObjectTouchEventHandler(element,floatingObject);var touchEventHandler=self._touchEventHandler;var touchTarget=self._touchTarget;touchTarget.canDoManipulation=function(){return floatingObject.floatingObject().isSelected()};touchTarget.canDoTap=function(){return true};touchTarget.manipulationStarting=function(e){return touchEventHandler.doManipulationStarting(e)};touchTarget.manipulationStarted=function(e){return touchEventHandler.doManipulationStarted(e)};touchTarget.manipulationDelta=function(e){return touchEventHandler.doManipulationDelta(e)};touchTarget.manipulationInertiaStarting=function(e){return touchEventHandler.doManipulationInertiaStarting(e)};touchTarget.manipulationCompleted=function(e){return touchEventHandler.doManipulationCompleted(e)};touchTarget.tapped=function(e){return touchEventHandler.doTapped(e)};touchTarget.doubleTapped=function(e){return touchEventHandler.doDoubleTapped(e)};touchTarget.rightTapped=function(e){return touchEventHandler.doRightTapped(e)}}FloatingObjectTouchManager.prototype.attach=function(){if(this._touchEventProvider){this._touchEventProvider.attachDettach(this._touchTarget,true)}};FloatingObjectTouchManager.prototype.detach=function(){if(this._touchEventProvider){this._touchEventProvider.attachDettach(this._touchTarget,false)}};FloatingObjectTouchManager.prototype.preProcessMouseDown=function(event){return this._touchMouseMessageFilter.preProcessMouseDown(event)};FloatingObjectTouchManager.prototype.preProcessMouseUp=function(event){return this._touchMouseMessageFilter.preProcessMouseUp(event)};FloatingObjectTouchManager.prototype.preProcessMouseMove=function(event){return this._touchMouseMessageFilter.preProcessMouseMove(event)};return FloatingObjectTouchManager})();_spread.FloatingObjectTouchManager=FloatingObjectTouchManager;var FloatingObjectTouchEventHandler=(function(){function FloatingObjectTouchEventHandler(element,floatingObject){this._floatingObjectRender=floatingObject;this._floatingObject=floatingObject.floatingObject();this._containerElement=element}FloatingObjectTouchEventHandler.prototype._positionToPage=function(originalSource,position){var newPosition=new TouchPoint(position.X,position.Y);var t=$(this._containerElement).offset();if(t){if(!isNaN(document.body.clientTop)){t.top+=document.body.clientTop}if(!isNaN(document.body.clientLeft)){t.left+=document.body.clientLeft}newPosition.X+=t.left;newPosition.Y+=t.top}return newPosition};FloatingObjectTouchEventHandler.prototype.doManipulationStarting=function(e){e.Mode=1|2};FloatingObjectTouchEventHandler.prototype.doManipulationStarted=function(e){var pagePosition=this._positionToPage(e.OriginalSource,e.Position);this._floatingObjectRender._doMouseDown({isTouch:true,button:0,pageX:pagePosition.X,pageY:pagePosition.Y,stopPropagation:function(){}})};FloatingObjectTouchEventHandler.prototype.doManipulationDelta=function(e){var pagePosition=this._positionToPage(e.OriginalSource,e.Position);this._floatingObjectRender._doMouseMove({isTouch:true,button:0,pageX:pagePosition.X,pageY:pagePosition.Y,stopPropagation:function(){}})};FloatingObjectTouchEventHandler.prototype.doManipulationInertiaStarting=function(e){};FloatingObjectTouchEventHandler.prototype.doManipulationCompleted=function(e){var pagePosition=this._positionToPage(e.OriginalSource,e.Position);this._floatingObjectRender._doMouseUp({isTouch:true,button:0,pageX:pagePosition.X,pageY:pagePosition.Y,stopPropagation:function(){}})};FloatingObjectTouchEventHandler.prototype.doTapped=function(e){try
{var sheet=this._floatingObjectRender._sheet;var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);if(!this._floatingObject.isSelected()){sheet.unSelectAllFloatingObjects();this._floatingObject.isSelected(true);window.gcGlobal.activeElement=sheet}sheet.clearSelection()}finally
{sheet.isPaintSuspended(oldState)}};FloatingObjectTouchEventHandler.prototype.doDoubleTapped=function(e){};FloatingObjectTouchEventHandler.prototype.doRightTapped=function(e){};return FloatingObjectTouchEventHandler})();var TouchTargetElement=(function(){function TouchTargetElement(element,eventFlag,messageFilter,maxPointer,level){var self=this;self.element=element;self.messageFilter=messageFilter;self.eventFlag=eventFlag;self.maxPointer=maxPointer;self.level=level}return TouchTargetElement})();_spread.TouchTargetElement=TouchTargetElement;var _SimulateMouseEvents=(function(){function _SimulateMouseEvents(){}_SimulateMouseEvents.prototype.simulateMouseEvent=function(event,simulatedType){var originalEvent=event.originalEvent;if(originalEvent.isPrimary===false){return}if(originalEvent.touches&&originalEvent.touches.length>=1&&originalEvent.targetTouches&&originalEvent.targetTouches.length>=1){if(originalEvent.touches[0].clientX!==originalEvent.targetTouches[0].clientX||originalEvent.touches[0].clientY!==originalEvent.targetTouches[0].clientY){return}}_spread.util.cancelDefault(event);var touchPoint=typeof originalEvent.changedTouches!==const_undefined?originalEvent.changedTouches[0]:originalEvent,simulatedEvent=document.createEvent('MouseEvents');simulatedEvent.initMouseEvent(simulatedType,true,true,window,1,touchPoint.screenX,touchPoint.screenY,touchPoint.clientX,touchPoint.clientY,false,false,false,false,0,keyword_null);event.target.dispatchEvent(simulatedEvent)};_SimulateMouseEvents.prototype.down=function(event){if(!event.pointerType||(event.pointerType===event.MSPOINTER_TYPE_TOUCH||event.pointerType==="touch")){var self=event.data;if(self.touchHandled){return}self.touchHandled=true;self._touchMoved=false;self.simulateMouseEvent(event,'mouseover');self.simulateMouseEvent(event,'mousemove');self.simulateMouseEvent(event,'mousedown')}};_SimulateMouseEvents.prototype.move=function(event){if(!event.pointerType||(event.pointerType===event.MSPOINTER_TYPE_TOUCH||event.pointerType==="touch")){var self=event.data;if(!self.touchHandled){return}self._touchMoved=true;self.simulateMouseEvent(event,'mousemove')}};_SimulateMouseEvents.prototype.up=function(event){if(!event.pointerType||(event.pointerType===event.MSPOINTER_TYPE_TOUCH||event.pointerType==="touch")){var self=event.data;if(!self.touchHandled){return}self.simulateMouseEvent(event,'mouseup');self.simulateMouseEvent(event,'mouseout');if(!self._touchMoved){self.simulateMouseEvent(event,'click')}self.touchHandled=false}};_SimulateMouseEvents.prototype.bindUnBindTouchEvents=function(element,isBind,eventNamespace){var self=this;var firstChar=eventNamespace.charAt(0);if(firstChar!=='.'){eventNamespace='.'+eventNamespace}var _msPointerDown="MSPointerDown"+eventNamespace,_msPointerMove="MSPointerMove"+eventNamespace,_msPointerUp="MSPointerUp"+eventNamespace,_pointerdown="pointerdown"+eventNamespace,_pointermove="pointermove"+eventNamespace,_pointerup="pointerup"+eventNamespace,_touchStart="touchstart"+eventNamespace,_touchMove="touchmove"+eventNamespace,_touchEnd="touchend"+eventNamespace;if(isBind){if(window.navigator.msPointerEnabled){if(element.style.msTouchAction!==keyword_null&&typeof(element.style.msTouchAction)!==const_undefined){element.style.msTouchAction="none"}$(element).bind(_msPointerDown,self,self.down).bind(_pointerdown,self,self.down);$(document).bind(_msPointerMove,self,self.move).bind(_pointermove,self,self.move).bind(_msPointerUp,self,self.up).bind(_pointerup,self,self.up)}else
{$(element).bind(_touchStart,self,self.down).bind(_touchMove,self,self.move).bind(_touchEnd,self,self.up)}}else
{if(window.navigator.msPointerEnabled){$(element).unbind(_msPointerDown).unbind(_pointerdown);$(document).unbind(_msPointerMove).unbind(_pointermove).unbind(_msPointerUp).unbind(_pointerup)}else
{$(element).unbind(_touchStart).unbind(_touchMove).unbind(_touchEnd)}}};return _SimulateMouseEvents})();_spread._SimulateMouseEvents=_SimulateMouseEvents})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var __extends=this.__extends||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __};var wijmo;(function(wijmo){(function(spread){spread.feature("floatingObject",["core.common","core.stringResource","core.sheet_action","core.imageLoader"]);var keyword_null=null,keyword_undefined=undefined,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_max=Math.max,Math_min=Math.min,Math_abs=Math.abs;var DEBUG_BACKGROUND_COLOR='#044062';var FROZEN_VIEWPORTINDEX=0;var VIEWPORTINDEX=1;var TRAIL_VIEWPORTINDEX=2;var MAX_NUMBER=9007199254740992;var GAPSTRIPSIZE_CONST=4;var FLOATINGOBJECT_CONTENT_MARGIN=7;var CSS_ZINDEXDEFAULTVALUE=700;var CSS_CONTAINERZINDEXVALUE=701;var CSS_POSITION='position';var CSS_POSITION_ABSOLUTE='absolute';var CSS_PERCENT_100='100%';var CSS_BACKGROUND_COLOR='background';var CSS_BACKGROUND_IMAGE='background-image';var CSS_CLASS_FLOATINGOBJECT_SELECTED='floatingobject-selected';var CSS_CLASS_FLOATINGOBJECT_UNSELECTED='floatingobject-unselected';var CSS_CLASS_RESIZE_INDICATOR_SELECT='floatingobject-resize-indicator-select';var CSS_CLASS_RESIZE_INDICATOR_UNSELECT='floatingobject-resize-indicator-unSelect';var CSS_CLASS_NONE_USER_SELECT='floatingobject-none-user-select';var CSS_CLASS_FLOATINGOBJECT_CONTENT_CONTAINER='floatingobject-content-container';var CSS_CLASS_FLOATINGOBJECT_CONTAINER='floatingobject-container';var CSS_CLASS_FLOATINGOBJECT_MOVING_CONTAINER='floatingobject-moving-container';var CSS_CLASS_FLOATINGOBJECT_MOVING_DIV='floatingobject-moving-div';var CSS_CLASS_FLOATINGOBJECT_BACKGROUND_COVER='floatingobject-background-cover';var CSS_SELECTOR_RESIZE_INDICATOR='.floatingobject-resize-indicator';var CSS_SELECTOR_TOP_LEFT_RESIZE_INDICATOR='div.floatingobject-resize-indicator.floatingobject-top.floatingobject-left';var CSS_SELECTOR_MIDDLE_LEFT_RESIZE_INDICATOR='div.floatingobject-resize-indicator.middle.floatingobject-left';var CSS_SELECTOR_BOTTOM_LEFT_RESIZE_INDICATOR='div.floatingobject-resize-indicator.floatingobject-bottom.floatingobject-left';var CSS_SELECTOR_TOP_CENTER_RESIZE_INDICATOR='div.floatingobject-resize-indicator.floatingobject-top.floatingobject-center';var CSS_SELECTOR_BOTTOM_CENTER_RESIZE_INDICATOR='div.floatingobject-resize-indicator.floatingobject-bottom.floatingobject-center';var CSS_SELECTOR_TOP_RIGHT_RESIZE_INDICATOR='div.floatingobject-resize-indicator.floatingobject-top.floatingobject-right';var CSS_SELECTOR_MIDDLE_RIGHT_RESIZE_INDICATOR='div.floatingobject-resize-indicator.middle.floatingobject-right';var CSS_SELECTOR_BOTTOM_RIGHT_RESIZE_INDICATOR='div.floatingobject-resize-indicator.floatingobject-bottom.floatingobject-right';var HTML_RESIZE_INDICATOR='<div class="floatingobject-resize-indicator floatingobject-top floatingobject-left floatingobject-absolute"></div><div class="floatingobject-resize-indicator floatingobject-top floatingobject-center floatingobject-absolute"></div><div class="floatingobject-resize-indicator floatingobject-top floatingobject-right floatingobject-absolute"></div><div class="floatingobject-resize-indicator middle floatingobject-left floatingobject-absolute"></div><div class="floatingobject-resize-indicator middle floatingobject-right floatingobject-absolute"></div><div class="floatingobject-resize-indicator floatingobject-bottom floatingobject-left floatingobject-absolute"></div><div class="floatingobject-resize-indicator floatingobject-bottom floatingobject-center floatingobject-absolute"></div><div class="floatingobject-resize-indicator floatingobject-bottom floatingobject-right floatingobject-absolute"></div>';var tag_input="input";var _gcFloatingObject=".gcFloatingObject";(function(FloatingObjectType){FloatingObjectType[FloatingObjectType["CustomFloatingObject"]=0]="CustomFloatingObject";FloatingObjectType[FloatingObjectType["Picture"]=1]="Picture"})(spread.FloatingObjectType||(spread.FloatingObjectType={}));var FloatingObjectType=spread.FloatingObjectType;var _FloationgObjectArray=(function(_super){__extends(_FloationgObjectArray,_super);function _FloationgObjectArray(sheet){_super.call(this);this._floatingObjectType=keyword_null;this._sheet=sheet}_FloationgObjectArray.prototype.ownerSheet=function(sheet){if(arguments.length===0){return this._sheet}this._sheet=sheet;return this};_FloationgObjectArray.prototype.find=function(name){var index=this._findItemIndex(name);if(index>=0){return this[index]}return keyword_null};_FloationgObjectArray.prototype.replace=function(name,value){if(value===keyword_null||value===keyword_undefined){throw new Error(spread.SR.Exp_ValueIsNull);}var index=this._findItemIndex(name);if(index>=0){this.splice(index,1,value)}};_FloationgObjectArray.prototype.add=function(item){var name=item.name();if(name===keyword_null||name===keyword_undefined){throw new Error(spread.SR.Exp_FloatingObjectNameEmptyError);}this._checkObjectExists(name);item.owner(this._sheet);this.push(item)};_FloationgObjectArray.prototype.remove=function(item){if(item!==keyword_null&&item!==keyword_undefined){var index=this._findItemIndex(item.name());if(index>=0){item.owner(keyword_null)}this.splice(index,1);return true}return false};_FloationgObjectArray.prototype.addRows=function(row,rowCount){var i,len;for(i=0,len=this.length;i<len;i++){this[i].addRows(row,rowCount)}};_FloationgObjectArray.prototype.removeRows=function(row,rowCount){var self=this;var i,len;var removeItem=[];for(i=0,len=self.length;i<len;i++){var floatingObject=self[i];if(!self._isCoverRange(row,-1,row+rowCount-1,self._sheet.getColumnCount(),floatingObject)||(!floatingObject.dynamicMove()&&!floatingObject.dynamicSize())){floatingObject.removeRows(row,rowCount)}else
{removeItem.push(floatingObject)}}for(i=0,len=removeItem.length;i<len;i++){self.remove(removeItem[i])}};_FloationgObjectArray.prototype.addColumns=function(column,columnCount){var i,len;for(i=0,len=this.length;i<len;i++){this[i].addColumns(column,columnCount)}};_FloationgObjectArray.prototype.removeColumns=function(column,columnCount){var self=this;var i,len;var removeItem=[];for(i=0,len=self.length;i<len;i++){var floatingObject=self[i];if(!self._isCoverRange(-1,column,self._sheet.getRowCount(),column+columnCount-1,floatingObject)||(!floatingObject.dynamicMove()&&!floatingObject.dynamicSize())){floatingObject.removeColumns(column,columnCount)}else
{removeItem.push(floatingObject)}}for(i=0,len=removeItem.length;i<len;i++){self.remove(removeItem[i])}};_FloationgObjectArray.prototype._isCoverRange=function(row,column,endRow,endColumn,floatingObject){var fStartRow=floatingObject.startRow();var fStartColumn=floatingObject.startColumn();var fEndRow=floatingObject.endRow();var fEndColumn=floatingObject.endColumn();return row<=fStartRow&&column<=fStartColumn&&endRow>=fEndRow&&endColumn>=fEndColumn};_FloationgObjectArray.prototype._checkObjectExists=function(name){if(this._sheet._findFloatingObjectInternal(name)){throw new Error(spread.SR.Exp_FloatingObjectHasSameNameError);}};_FloationgObjectArray.prototype._findItemIndex=function(name){var len=this.length;for(var i=0;i<len;i++){if(this[i].name()===name){return i}}return-1};_FloationgObjectArray.prototype._updateFloatingsObjectlayoutOnColumnRowChanged=function(){for(var i=0,len=this.length;i<len;i++){var item=this[i];if(item.dynamicMove()){item._updateFloatingObjectLocation()}else
{item._updateStartPosition()}if(item.dynamicSize()){item._updateFloatingObjectSize()}else
{item._updateEndPosition()}}};_FloationgObjectArray.prototype.toJSON=function(){var result=[];var i,len;for(i=0,len=this.length;i<len;i++){result.push(this[i].toJSON())}if(result.length===0){return keyword_undefined}return{floatingObjects:result}};_FloationgObjectArray.prototype.fromJSON=function(jsData){if(!jsData){return}if(jsData.floatingObjects){var floatingObjectsData=jsData.floatingObjects,count=floatingObjectsData.length;for(var i=0;i<count;i++){var obj=floatingObjectsData[i];var floatingObject=keyword_null;if(obj){var dict=this._getFloatingObjectTypes();var floatingObjectClass=dict[obj.floatingObjectType];if(floatingObjectClass){floatingObject=new floatingObjectClass;floatingObject.owner(this._sheet);floatingObject.fromJSON(obj)}}if(floatingObject){this.push(floatingObject)}}}};_FloationgObjectArray.prototype._getFloatingObjectTypes=function(){if(!this._floatingObjectType){var dict={};dict[0]=CustomFloatingObject;dict[1]=Picture;this._floatingObjectType=dict}return this._floatingObjectType};return _FloationgObjectArray})(spread._XArray);spread._FloationgObjectArray=_FloationgObjectArray;var FloatingObject=(function(){function FloatingObject(name,x,y,width,height){this._cacheOffset={startRowOffset:keyword_undefined,startColumnOffset:keyword_undefined,endRowOffset:keyword_undefined,endColumnOffset:keyword_undefined};this._isFOColumnsOrRowsVisible=true;var self=this;self._name=name;self._location=new spread.Rect((typeof x==='number')?x:0,(typeof y==='number')?y:0,(typeof width==='number')?width:0,(typeof height==='number')?height:0);self._canPrint=true;self._isLocked=true;self._isVisible=true;self._isSelected=false;self._dynamicMove=true;self._dynamicSize=true}FloatingObject.prototype.name=function(value){var self=this;if(arguments.length===0){return self._name}if(typeof value!=='string'||value===''){throw new Error(spread.SR.Exp_FloatingObjectNameEmptyError);}if(self._name!==value){self._name=value;self._trigger({sheet:self._sheet,sheetName:self._sheet?self._sheet._name:"",floatingObject:self,propertyName:"name"})}return self};FloatingObject.prototype.owner=function(value){var self=this;if(arguments.length===0){return self._sheet}self._sheet=value;self._updateFloatingObjectCoorinates();return self};FloatingObject.prototype.isSelected=function(selected){var self=this,sheet=self._sheet;if(arguments.length===0){return self._isSelected}if(typeof selected==='boolean'&&self._isSelected!==selected){if(sheet){sheet._bindToAutoRefresh(function(value){self._isSelected=value})(selected)}else
{self._isSelected=selected}self._trigger({sheet:sheet,sheetName:sheet?sheet._name:"",floatingObject:self,propertyName:"isSelected"})}return self};FloatingObject.prototype.isLocked=function(locked){var self=this;if(arguments.length===0){return false;}if(typeof locked==='boolean'&&self._isLocked!==locked){self._isLocked=locked;self._trigger({sheet:self._sheet,sheetName:self._sheet?self._sheet._name:"",floatingObject:self,propertyName:"islocked"})}return self};FloatingObject.prototype.canPrint=function(canPrint){var self=this;if(arguments.length===0){return self._canPrint}if(typeof canPrint==='boolean'&&self._canPrint!==canPrint){self._canPrint=canPrint;self._trigger({sheet:self._sheet,sheetName:self._sheet?self._sheet._name:"",floatingObject:self,propertyName:"canPrint"})}return self};FloatingObject.prototype.isVisible=function(isVisible){var self=this,sheet=self._sheet;if(arguments.length===0){return self._isVisible}if(typeof isVisible==='boolean'&&self._isVisible!==isVisible){if(sheet){sheet._bindToAutoRefresh(function(value){self._isVisible=isVisible})(isVisible)}else
{self._isVisible=isVisible}self._trigger({sheet:sheet,sheetName:sheet?sheet._name:"",floatingObject:self,propertyName:"visible"})}return self};FloatingObject.prototype.position=function(position){var self=this,sheet=self._sheet;if(arguments.length===0){return new spread.Point(self._location.x,self._location.y)}if(position instanceof spread.Point){if(self._location.x!==position.x||self._location.y!==position.y){if(sheet){sheet._bindToAutoRefresh(function(value){self._location.x=value.x;self._location.y=value.y;self._adjustPosition();self._updateCoverRange()})(position)}else
{self._location.x=position.x;self._location.y=position.y}self._trigger({sheet:sheet,sheetName:sheet?sheet._name:"",floatingObject:self,propertyName:"position"})}}return self};FloatingObject.prototype.height=function(value){var self=this,sheet=self._sheet;if(arguments.length===0){return self._location.height}if(typeof value==='number'&&self._location.height!==value){if(sheet){sheet._bindToAutoRefresh(function(value){self._location.height=value;self._adjustSize();self._adjustPosition();self._updateCoverRange()})(value)}else
{self._location.height=value}self._trigger({sheet:sheet,sheetName:sheet?sheet._name:"",floatingObject:self,propertyName:"height"})}return self};FloatingObject.prototype.width=function(value){var self=this,sheet=self._sheet;if(arguments.length===0){return self._location.width}if(typeof value==='number'&&self._location.width!==value){if(sheet){sheet._bindToAutoRefresh(function(value){self._location.width=value;self._adjustSize();self._adjustPosition();self._updateCoverRange()})(value)}else
{self._location.width=value}self._trigger({sheet:sheet,sheetName:sheet?sheet._name:"",floatingObject:self,propertyName:"width"})}return self};FloatingObject.prototype.startRow=function(row){var self=this;if(arguments.length===0){return self._startRow}if(typeof row==='number'&&self._startRow!==row){row=Math_ceil(row);if(self._sheet){self._sheet._bindToAutoRefresh(function(value){self._startRow=value;self._updateFloatingObjectLocation()})(row)}else
{self._startRow=row}}return self};FloatingObject.prototype.startRowOffset=function(offset){var self=this;if(arguments.length===0){return self._startRowOffset}if(typeof offset==='number'&&self._startRowOffset!==offset){if(self._sheet){self._sheet._bindToAutoRefresh(function(value){self._startRowOffset=value;self._updateFloatingObjectLocation()})(offset)}else
{self._startRowOffset=offset}}return self};FloatingObject.prototype.startColumn=function(column){var self=this;if(arguments.length===0){return self._startColumn}if(typeof column==='number'&&self._startColumn!==column){column=Math_ceil(column);if(self._sheet){self._sheet._bindToAutoRefresh(function(value){self._startColumn=value;self._updateFloatingObjectLocation()})(column)}else
{self._startColumn=column}}return self};FloatingObject.prototype.startColumnOffset=function(offset){var self=this;if(arguments.length===0){return self._startColumnOffset}if(typeof offset==='number'&&self._startColumnOffset!==offset){if(self._sheet){self._sheet._bindToAutoRefresh(function(value){self._startColumnOffset=value;self._updateFloatingObjectLocation()})(offset)}else
{self._startColumnOffset=offset}}return self};FloatingObject.prototype.endRow=function(row){var self=this;if(arguments.length===0){return self._endRow}if(typeof row==='number'&&self._endRow!==row){if(self._sheet){self._sheet._bindToAutoRefresh(function(value){self._endRow=value;self._updateFloatingObjectSize()})(row)}else
{self._endRow=row}}return self};FloatingObject.prototype.endRowOffset=function(offset){var self=this;if(arguments.length===0){return self._endRowOffset}if(typeof offset==='number'&&self._endRowOffset!==offset){if(self._sheet){self._sheet._bindToAutoRefresh(function(value){self._endRowOffset=value;self._updateFloatingObjectSize()})(offset)}else
{self._endRowOffset=offset}}return self};FloatingObject.prototype.endColumn=function(column){var self=this;if(arguments.length===0){return self._endColumn}if(typeof column==='number'&&self._endColumn!==column){column=Math_ceil(column);if(self._sheet){self._sheet._bindToAutoRefresh(function(value){self._endColumn=value;self._updateFloatingObjectSize()})(column)}else
{self._endColumn=column}}return self};FloatingObject.prototype.endColumnOffset=function(offset){var self=this;if(arguments.length===0){return self._endColumnOffset}if(typeof offset==='number'&&self._endColumnOffset!==offset){if(self._sheet){self._sheet._bindToAutoRefresh(function(value){self._endColumnOffset=value;self._updateFloatingObjectSize()})(offset)}else
{self._endColumnOffset=offset}}return self};FloatingObject.prototype.dynamicMove=function(isDynamicMove){var self=this;if(arguments.length===0){return self._dynamicMove}if(typeof isDynamicMove==='boolean'&&self._dynamicMove!==isDynamicMove){self._dynamicMove=isDynamicMove;self._trigger({sheet:self._sheet,sheetName:self._sheet?self._sheet._name:"",floatingObject:self,propertyName:"dynamicMove"})}return self};FloatingObject.prototype.dynamicSize=function(isDynamicSize){var self=this;if(arguments.length===0){return self._dynamicSize}if(typeof isDynamicSize==='boolean'&&self._dynamicSize!==isDynamicSize){self._dynamicSize=isDynamicSize;self._trigger({sheet:self._sheet,sheetName:self._sheet?self._sheet._name:"",floatingObject:self,propertyName:"dynamicSize"})}return self};FloatingObject.prototype.addRows=function(row,rowCount){var self=this;row=Math_ceil(row);rowCount=Math_ceil(rowCount);if(row<=self.startRow()){if(self.dynamicMove()){self.startRow(self.startRow()+rowCount);self.endRow(self.endRow()+rowCount)}}else if(row>self.startRow()&&row<self.endRow()){if(self.dynamicSize()){self.endRow(self.endRow()+rowCount)}}};FloatingObject.prototype.removeRows=function(row,rowCount){var self=this;var bottomRemoveRow=row+rowCount-1;if(row<=self.startRow()){if(bottomRemoveRow<self.startRow()){if(self.dynamicMove()){self.startRow(self.startRow()-rowCount);self.endRow(self.endRow()-rowCount)}}else if(bottomRemoveRow<self.endRow()){var removeRowCount=bottomRemoveRow-self.startRow()+1;var newRowCount=(self.endRow()-self.startRow()+1)-removeRowCount;if(self.dynamicMove()){self.startRow(row);self.startRowOffset(0)}if(self.dynamicSize()){self.endRow(row+newRowCount-1)}}else
{}}else if(row<=self.endRow()){if(bottomRemoveRow<self.endRow()){if(self.dynamicSize()){self.endRow(self.endRow()-rowCount)}}else
{if(self.dynamicSize()){self.endRow(row);self.endRowOffset(0)}}}};FloatingObject.prototype.addColumns=function(column,columnCount){var self=this;column=Math_ceil(column);columnCount=Math_ceil(columnCount);if(column<=self.startColumn()){if(self.dynamicMove()){self.startColumn(self.startColumn()+columnCount);self.endColumn(self.endColumn()+columnCount)}}else if(column>self.startColumn()&&column<self.endColumn()){if(self.dynamicSize()){self.endColumn(self.endColumn()+columnCount)}}};FloatingObject.prototype.removeColumns=function(column,columnCount){var self=this;column=Math_ceil(column);columnCount=Math_ceil(columnCount);var rightRemovedColumn=column+columnCount-1;if(column<=self.startColumn()){if(rightRemovedColumn<self.startColumn()){if(self.dynamicMove()){self.startColumn(self.startColumn()-columnCount);self.endColumn(self.endColumn()-columnCount)}}else if(rightRemovedColumn<self.endColumn()){var removedColumnCount=rightRemovedColumn-self.startColumn()+1;var newColumnCount=(self.endColumn()-self.startColumn()+1)-removedColumnCount;if(self.dynamicMove()){self.startColumn(column);self.startColumnOffset(0)}if(self.dynamicSize()){self.endColumn(column+newColumnCount-1)}}else
{}}else if(column<=self.endColumn()){if(rightRemovedColumn<self.endColumn()){if(self.dynamicSize()){self.endColumn(self.endColumn()-columnCount)}}else
{if(self.dynamicSize()){self.endColumn(column);self.endColumnOffset(0)}}}};FloatingObject.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"x":return value===0;case"y":return value===0;case"width":return value===0;case"height":return value===0;case"canPrint":return value===true;case"isSelected":return value===false;case"isLocked":return value==true;case"isVisible":return value===true;case"dynamicMove":return value===true;case"dynamicSize":return value===true;default:return false}};FloatingObject.prototype.toJSON=function(){var self=this;var dictData={name:self._name,x:self._location.x,y:self._location.y,width:self._location.width,height:self._location.height,canPrint:self._canPrint,isSelected:self._isSelected,isLocked:self._isLocked,isVisible:self._isVisible,dynamicMove:self._dynamicMove,dynamicSize:self._dynamicSize};var jsData={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){jsData[item]=value}}return jsData};FloatingObject.prototype.fromJSON=function(jsData){if(!jsData){return}var self=this;self._name=jsData.name;var jsonX=jsData.x!==keyword_undefined?jsData.x:0;var jsonY=jsData.y!==keyword_undefined?jsData.y:0;var jsonWidth=jsData.width!==keyword_undefined?jsData.width:0;var jsonHeight=jsData.height!==keyword_undefined?jsData.height:0;self._location=new spread.Rect(jsonX,jsonY,jsonWidth,jsonHeight);if(jsData.canPrint!==keyword_undefined){self._canPrint=jsData.canPrint}if(jsData.isSelected!==keyword_undefined){self._isSelected=jsData.isSelected}if(jsData.isLocked!==keyword_undefined){self._isLocked=jsData.isLocked}if(jsData.isVisible!==keyword_undefined){self._isVisible=jsData.isVisible}if(jsData.dynamicMove!==keyword_undefined){self._dynamicMove=jsData.dynamicMove}if(jsData.dynamicSize!==keyword_undefined){self._dynamicSize=jsData.dynamicSize}self._updateCoverRange()};FloatingObject.prototype.clone=function(){var floatingObject=new FloatingObject;var jsonString=JSON.stringify(this.toJSON());floatingObject.fromJSON(JSON.parse(jsonString));return floatingObject};FloatingObject.prototype._adjustSize=function(){var self=this;var sheetHeight=self._getSheetHeight();var sheetWidth=self._getSheetWidth();if(self._location.width>sheetWidth){self._location.width=sheetWidth}if(self._location.height>sheetHeight){self._location.height=sheetHeight}};FloatingObject.prototype._adjustPosition=function(){var self=this;var sheetHeight=self._getSheetHeight();var sheetWidth=self._getSheetWidth();var right=self._location.x+self._location.width;if(right>sheetWidth){self._location.x=sheetWidth-self._location.width}if(self._location.x<0){self._location.x=0}var bottom=self._location.y+self._location.height;if(bottom>sheetHeight){self._location.y=sheetHeight-self._location.height}if(self._location.y<0){self._location.y=0}};FloatingObject.prototype._updateFloatingObjectCoorinates=function(){var self=this;self._adjustSize();self._adjustPosition();if(self._startRow!==keyword_null&&self._startRow!==keyword_undefined&&self._startColumn!==keyword_null&&self._startColumn!==keyword_undefined){if(!self._startRowOffset){self._startRowOffset=0}if(!self._startColumnOffset){self._startColumnOffset=0}self._updateFloatingObjectLocation()}else
{self._updateStartPosition()}if(self._endColumn!==keyword_null&&self._endColumn!==keyword_undefined&&self._endRow!==keyword_null&&self._endRow!==keyword_undefined){if(!self._endRowOffset){self._endRowOffset=0}if(!self._endColumnOffset){self._endColumnOffset=0}self._updateFloatingObjectSize()}else
{self._updateEndPosition()}};FloatingObject.prototype._getSheetHeight=function(){var self=this,sheet=self._sheet;if(sheet===keyword_null||sheet===keyword_undefined){return MAX_NUMBER}var height=0;var rowCount=sheet.getRowCount();for(var row=0;row<rowCount;row++){height+=sheet.getRowHeight(row,3)}return height};FloatingObject.prototype._getSheetWidth=function(){var self=this,sheet=self._sheet;if(sheet===keyword_null||sheet===keyword_undefined){return MAX_NUMBER}var width=0;var columnCount=sheet.getColumnCount();for(var column=0;column<columnCount;column++){width+=sheet.getColumnWidth(column,3)}return width};FloatingObject.prototype._updateStartRowOffset=function(){var self=this;var startRowOffset=self._startRowOffset,startRowHeight=self._sheet.getRowHeight(self.startRow(),3),cacheOffset=self._cacheOffset;if(startRowHeight>0){startRowHeight--}if(startRowOffset>startRowHeight){if(!cacheOffset.startRowOffset){cacheOffset.startRowOffset=startRowOffset}self._startRowOffset=startRowHeight}else if(cacheOffset.startRowOffset){if(cacheOffset.startRowOffset<startRowHeight){self._startRowOffset=cacheOffset.startRowOffset;cacheOffset.startRowOffset=keyword_undefined}else if(startRowHeight<cacheOffset.startRowOffset){self._startRowOffset=startRowHeight}}};FloatingObject.prototype._updateStartColumnOffset=function(){var self=this;var startColumnOffset=self._startColumnOffset,startColumnWidth=self._sheet.getColumnWidth(self.startColumn(),3),cacheOffset=self._cacheOffset;if(startColumnWidth>0){startColumnWidth--}if(startColumnOffset>startColumnWidth){if(!cacheOffset.startColumnOffset){cacheOffset.startColumnOffset=startColumnOffset}self._startColumnOffset=startColumnWidth}else if(cacheOffset.startColumnOffset){if(cacheOffset.startColumnOffset<startColumnWidth){self._startColumnOffset=cacheOffset.startColumnOffset;cacheOffset.startColumnOffset=keyword_undefined}else if(startColumnOffset<cacheOffset.startColumnOffset){self._startColumnOffset=startColumnWidth}}};FloatingObject.prototype._updateEndRowOffset=function(){var self=this;var endRowOffset=self._endRowOffset,endRowHeight=self._sheet.getRowHeight(self.endRow(),3),cacheOffset=self._cacheOffset;if(endRowHeight>0){endRowHeight--}if(endRowOffset>endRowHeight){if(!cacheOffset.endRowOffset){cacheOffset.endRowOffset=endRowOffset}self._endRowOffset=endRowHeight}else if(cacheOffset.endRowOffset){if(cacheOffset.endRowOffset<endRowHeight){self._endRowOffset=cacheOffset.endRowOffset;cacheOffset.endRowOffset=keyword_undefined}else if(endRowOffset<cacheOffset.endRowOffset){self._endRowOffset=endRowHeight}}};FloatingObject.prototype._updateEndColumnOffset=function(){var self=this;var endColumnOffset=self._endColumnOffset,endColumnWidth=self._sheet.getColumnWidth(self.endColumn(),3),cacheOffset=self._cacheOffset;if(endColumnWidth>0){endColumnWidth--}if(endColumnOffset>endColumnWidth){if(!cacheOffset.endColumnOffset){cacheOffset.endColumnOffset=endColumnOffset}self._endColumnOffset=endColumnWidth}else if(cacheOffset.endColumnOffset){if(cacheOffset.endColumnOffset<endColumnWidth){self._endColumnOffset=cacheOffset.endColumnOffset;cacheOffset.endColumnOffset=keyword_undefined}else if(endColumnOffset<cacheOffset.endColumnOffset){self._endColumnOffset=endColumnWidth}}};FloatingObject.prototype._updateFloatingObjectLocation=function(){var self=this,sheet=self._sheet;if(sheet===keyword_null||sheet===keyword_undefined){return}var newY=0,startRow=self.startRow();for(var row=0;row<startRow;row++){newY+=sheet.getRowHeight(row,3)}self._updateStartRowOffset();newY+=self._startRowOffset;var newX=0,startColumn=self.startColumn();for(var column=0;column<startColumn;column++){newX+=sheet.getColumnWidth(column,3)}self._updateStartColumnOffset();newX+=self._startColumnOffset;if(self._location.x!==newX||self._location.y!==newY){self._location.x=newX;self._location.y=newY;self._trigger({sheet:sheet,sheetName:sheet?sheet._name:"",floatingObject:self,propertyName:"location"})}};FloatingObject.prototype._updateFloatingObjectSize=function(){var self=this,sheet=self._sheet;if(sheet===keyword_null||sheet===keyword_undefined){return}if(self._isFOColumnsOrRowsVisible===false){self._isVisible=true;self._isFOColumnsOrRowsVisible=true}var newHeight=0,startRow=self.startRow(),endRow=self.endRow();for(var row=startRow;row<endRow;row++){newHeight+=sheet.getRowHeight(row,3)}var totalRowHeight=newHeight+sheet.getRowHeight(endRow,3);if(totalRowHeight===0&&self._isVisible===true){self._isVisible=false;self._isFOColumnsOrRowsVisible=false}if(startRow===endRow){self._updateEndRowOffset();newHeight=self.endRowOffset()-self.startRowOffset()}else
{var startRowHeight=sheet.getRowHeight(startRow,3);if(startRowHeight>0){newHeight-=self._startRowOffset}self._updateEndRowOffset();newHeight+=self._endRowOffset}var newWidth=0,startColumn=self.startColumn(),endColumn=self.endColumn();for(var column=startColumn;column<endColumn;column++){newWidth+=sheet.getColumnWidth(column,3)}var totalColumnWidth=newWidth+sheet.getColumnWidth(endColumn,3);if(totalColumnWidth===0&&self._isVisible===true){self._isVisible=false;self._isFOColumnsOrRowsVisible=false}if(startColumn===endColumn){self._updateEndColumnOffset();newWidth=self.endColumnOffset()-self.startColumnOffset()}else
{var startColumnWidth=sheet.getColumnWidth(startColumn,3);if(startColumnWidth>0){newWidth-=self._startColumnOffset}self._updateEndColumnOffset();newWidth+=self._endColumnOffset}if(newWidth<0){newWidth=0}if(newHeight<0){newHeight=0}if(self._location.width!==newWidth){self._location.width=newWidth;self._trigger({sheet:sheet,sheetName:sheet?sheet._name:"",floatingObject:self,propertyName:"width"})}if(self._location.height!==newHeight){self._location.height=newHeight;self._trigger({sheet:sheet,sheetName:sheet?sheet._name:"",floatingObject:self,propertyName:"height"})}};FloatingObject.prototype._updateStartPosition=function(){var self=this,sheet=self._sheet;if(sheet===keyword_null||sheet===keyword_undefined){return}var rowInfo=self._calcAnchorRow(self._location.y);self._startRow=rowInfo.row;self._startRowOffset=rowInfo.offsetY;if(self._startRowOffset===-1){self._startRow+=1;self._startRowOffset=0;var rowCount=sheet.getRowCount();if(self._startRow===rowCount){self._startRow=rowCount-1}}var colInfo=self._calcAnchorColumn(self._location.x);self._startColumn=colInfo.column;self._startColumnOffset=colInfo.offsetX;if(self._startColumnOffset===-1){self._startColumn+=1;self._startColumnOffset=0;var columnCount=sheet.getColumnCount();if(self._startColumn===columnCount){self._startColumn=columnCount-1}}};FloatingObject.prototype._updateEndPosition=function(){var self=this;if(self._sheet===keyword_null||self._sheet===keyword_undefined){return}var rowInfo=self._calcAnchorRow(self._location.y+self._location.height);self._endRow=rowInfo.row;self._endRowOffset=rowInfo.offsetY;var colInfo=self._calcAnchorColumn(self._location.x+self._location.width);self._endColumn=colInfo.column;self._endColumnOffset=colInfo.offsetX};FloatingObject.prototype._updateCoverRange=function(){this._updateStartPosition();this._updateEndPosition()};FloatingObject.prototype._calcAnchorRow=function(y){var totalHeight=0;var offsetY=0;var rowCount=this._sheet.getRowCount();for(var row=0;row<rowCount;row++){var rowHeight=this._sheet.getRowHeight(row,3);totalHeight+=rowHeight;var offset=totalHeight-y;if(offset>0){offsetY=offset>0?rowHeight-offset:-1;return{row:row,offsetY:offsetY}}else if(offset===0){offsetY=0;return{row:row+1,offsetY:0}}}return keyword_null};FloatingObject.prototype._calcAnchorColumn=function(x){var totalWidth=0;var offsetX=0;var columnCount=this._sheet.getColumnCount();for(var column=0;column<columnCount;column++){var columnWidth=this._sheet.getColumnWidth(column,3);totalWidth+=columnWidth;var offset=totalWidth-x;if(offset>0){offsetX=offset>0?columnWidth-offset:-1;return{column:column,offsetX:offsetX}}else if(offset===0){offsetX=0;return{column:column+1,offsetX:0}}}return keyword_null};FloatingObject.prototype._trigger=function(args){if(this._sheet){this._sheet._trigger(spread.Events.FloatingObjectChanged,args);if(args.propertyName==="isSelected"){var selectionArgs={sheet:args.sheet,sheetName:args.sheetName,floatingObject:args.floatingObject};this._sheet._trigger(spread.Events.FloatingObjectSelectionChanged,selectionArgs)}}};FloatingObject.prototype._createContentContainer=function(){var content=document.createElement("div");var $content=$(content).addClass(CSS_CLASS_FLOATINGOBJECT_CONTENT_CONTAINER).addClass(CSS_CLASS_NONE_USER_SELECT).css(CSS_POSITION,CSS_POSITION_ABSOLUTE);$content.css(CSS_BACKGROUND_COLOR,DEBUG_BACKGROUND_COLOR);return content};return FloatingObject})();spread.FloatingObject=FloatingObject;var CustomFloatingObject=(function(_super){__extends(CustomFloatingObject,_super);function CustomFloatingObject(name,x,y,width,height){_super.call(this,name,x,y,width,height);this._content=keyword_null}CustomFloatingObject.prototype.Content=function(content){var self=this;if(arguments.length===0){return self._content}if(self.owner()){self.owner()._bindToAutoRefresh(function(value){self._content=value})(content)}else
{self._content=content}self._trigger({sheet:self.owner(),sheetName:self.owner()?self.owner()._name:"",customFloatingObject:self,propertyName:"content"})};CustomFloatingObject.prototype.toJSON=function(){var result=_super.prototype.toJSON.call(this);result["floatingObjectType"]=0;var html=$("<div></div>").append(this.cloneContent()).html();result["content"]=html;return result};CustomFloatingObject.prototype.fromJSON=function(jsData){if(!jsData){return}_super.prototype.fromJSON.call(this,jsData);if(jsData.content){this._content=$(jsData.content).get(0)}};CustomFloatingObject.prototype.clone=function(){var customFloatingObject=new CustomFloatingObject;var jsonString=JSON.stringify(this.toJSON());customFloatingObject.fromJSON(JSON.parse(jsonString));customFloatingObject._content=this.cloneContent();return customFloatingObject};CustomFloatingObject.prototype.cloneContent=function(){if(this._content){return $(this._content).clone().filter('*').removeAttr('id').get(0)}return keyword_null};CustomFloatingObject.prototype._createContentContainer=function(){var content=document.createElement("div");var $content=$(content).addClass(CSS_CLASS_FLOATINGOBJECT_CONTENT_CONTAINER).addClass(CSS_CLASS_NONE_USER_SELECT).css(CSS_POSITION,CSS_POSITION_ABSOLUTE);var child=this.cloneContent(),cssWidth=CSS_PERCENT_100,cssHeight=CSS_PERCENT_100,styleWidth='',styleHeight='';if(child&&child.style){styleWidth=child.style.width,styleHeight=child.style.height}if(styleWidth!==''){cssWidth=styleWidth}if(styleHeight!==''){cssHeight=styleHeight}if(child!==keyword_null){var $child=$(child).css({width:cssWidth,height:cssHeight}).addClass(CSS_CLASS_FLOATINGOBJECT_BACKGROUND_COVER).addClass(CSS_CLASS_NONE_USER_SELECT).appendTo(content)}else
{$content.css(CSS_BACKGROUND_COLOR,DEBUG_BACKGROUND_COLOR)}return content};return CustomFloatingObject})(FloatingObject);spread.CustomFloatingObject=CustomFloatingObject;var Picture=(function(_super){__extends(Picture,_super);function Picture(name,src,x,y,width,height){_super.call(this,name,x,y,width,height);var self=this;self._pictureStretch=0;self._borderWidth=1;self._borderStyle="none";self._borderColor=keyword_null;self._borderRadius=-1;self._backColor=keyword_null;self._imageLoader=keyword_null;self._isImageLoaded=false;self._isTakeOriginalSize=false;if(typeof src==='string'){self.src(src)}}Picture.prototype._trigger=function(args){if(this.owner()){if(args&&args.floatingObject){args.picture=args.floatingObject;delete args.floatingObject}this.owner()._trigger(spread.Events.PictureChanged,args);if(args.propertyName==="isSelected"){var selectionArgs={sheet:args.sheet,sheetName:args.sheetName,picture:args.picture};this.owner()._trigger(spread.Events.PictureSelectionChanged,selectionArgs)}}};Picture.prototype.backColor=function(value){var self=this;if(arguments.length===0){return self._backColor}if(typeof value==='string'&&self._backColor!==value){var sheet=self.owner();if(sheet){sheet._bindToAutoRefresh(function(color){self._backColor=color})(value)}else
{self._backColor=value}self._trigger({sheet:sheet,sheetName:sheet?sheet._name:"",picture:self,propertyName:"backColor"})}return self};Picture.prototype.borderRadius=function(value){var self=this;if(arguments.length===0){return self._borderRadius}if(typeof value==='number'&&!isNaN(value)&&self._borderRadius!==value){var sheet=self.owner();if(sheet){sheet._bindToAutoRefresh(function(radius){self._borderRadius=radius})(value)}else
{self._borderRadius=value}self._trigger({sheet:sheet,sheetName:sheet?sheet._name:"",picture:self,propertyName:"borderRadius"})}return self};Picture.prototype.borderWidth=function(value){var self=this;if(arguments.length===0){return self._borderWidth}if(typeof value==='number'&&!isNaN(value)&&self._borderWidth!==value){var sheet=self.owner();if(sheet){sheet._bindToAutoRefresh(function(width){self._borderWidth=width})(value)}else
{self._borderWidth=value}self._trigger({sheet:sheet,sheetName:sheet?sheet._name:"",picture:self,propertyName:"borderWidth"})}return self};Picture.prototype.borderStyle=function(value){var self=this;if(arguments.length===0){return self._borderStyle}if(typeof value==='string'&&self._borderStyle!==value){var sheet=self.owner();if(sheet){sheet._bindToAutoRefresh(function(style){self._borderStyle=style})(value)}else
{self._borderStyle=value}if(!self._isBorderStyleWork(value)){self._borderWidth=0}self._trigger({sheet:sheet,sheetName:sheet?sheet._name:"",picture:self,propertyName:"borderStyle"})}return self};Picture.prototype.borderColor=function(value){var self=this;if(arguments.length===0){return self._borderColor}if(typeof value==='string'&&self._borderColor!==value){var sheet=self.owner();if(sheet){sheet._bindToAutoRefresh(function(color){self._borderColor=color})(value)}else
{self._borderColor=value}self._trigger({sheet:sheet,sheetName:sheet?sheet._name:"",picture:self,propertyName:"borderColor"})}return self};Picture.prototype.pictureStretch=function(value){var self=this;if(arguments.length===0){return self._pictureStretch}if(self._pictureStretch!==value&&spread.ImageLayout[value]!==keyword_undefined){var sheet=self.owner();if(sheet){sheet._bindToAutoRefresh(function(stretch){self._pictureStretch=stretch})(value)}else
{self._pictureStretch=value}self._trigger({sheet:sheet,sheetName:sheet?sheet._name:"",picture:self,propertyName:"pictureStretch"})}return self};Picture.prototype.getOriginalWidth=function(){return this._originalWidth};Picture.prototype.getOriginalHeight=function(){return this._originalHeight};Picture.prototype.src=function(value){var self=this;if(arguments.length===0){return self._src}if(typeof value==='string'&&self._src!==value){var sheet=self.owner();if(sheet){sheet._bindToAutoRefresh(function(src){self._src=src})(value)}else
{self._src=value}self._trigger({sheet:sheet,sheetName:sheet?sheet._name:"",picture:self,propertyName:"src"});self._isImageLoaded=false;self._loadImage()}return self};Picture.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"backColor":return value===keyword_null;case"borderRadius":return value===-1;case"borderWidth":return value===1;case"borderStyle":return value==="none";case"borderColor":return value===keyword_null;case"pictureStretch":return value===0;default:return false}};Picture.prototype.toJSON=function(){var self=this;var result=_super.prototype.toJSON.call(this);result["src"]=self._src;result["floatingObjectType"]=1;result["backColor"]=self._backColor;result["borderRadius"]=self._borderRadius;result["borderWidth"]=self._borderWidth;result["borderStyle"]=self._borderStyle;result["borderColor"]=self._borderColor;result["pictureStretch"]=self._pictureStretch;var settings={};for(var item in result){var value=result[item];if(!self._isDefaultValue(item,value)){settings[item]=value}}if($.isEmptyObject(settings)){return keyword_undefined}return settings};Picture.prototype.fromJSON=function(jsData){if(!jsData){return}var self=this;_super.prototype.fromJSON.call(this,jsData);if(jsData.src){self._src=jsData.src;self._isImageLoaded=false;self._loadImage();if(jsData.backColor!==keyword_undefined){self._backColor=jsData.backColor}if(jsData.borderRadius!==keyword_undefined){self._borderRadius=jsData.borderRadius}if(jsData.borderWidth!==keyword_undefined){self._borderWidth=jsData.borderWidth}if(jsData.borderStyle!==keyword_undefined){self._borderStyle=jsData.borderStyle}if(jsData.borderColor!==keyword_undefined){self._borderColor=jsData.borderColor}if(jsData.pictureStretch!==keyword_undefined){self._pictureStretch=jsData.pictureStretch}if(!self._isBorderStyleWork(self._borderStyle)){self._borderWidth=0}}};Picture.prototype.clone=function(){var picture=new Picture;var jsonString=JSON.stringify(this.toJSON());picture.fromJSON(JSON.parse(jsonString));return picture};Picture.prototype._isBorderStyleWork=function(style){switch(style){case'dotted':case'dashed':case'solid':case'double':case'groove':case'ridge':case'inset':case'outset':return true;default:return false}};Picture.prototype._loadImage=function(){var self=this;var src=self._src;if(!self._imageLoader){self._imageLoader=new spread._GcImageLoader(function(){self._loadImage()})}try
{if(self._imageLoader.getState(src)){self._isImageLoaded=true;var img=self._imageLoader.getImage(src);self._originalWidth=img.width;self._originalHeight=img.height;if(self._isTakeOriginalSize){self.width(self._originalWidth);self.height(self._originalHeight);self._isTakeOriginalSize=false}var sheet=self.owner();if(sheet){sheet.repaint()}}else
{self._imageLoader.addImage(src)}}catch(ex){}};Picture.prototype._createContentContainer=function(){var content=document.createElement("div");var $content=$(content).addClass(CSS_CLASS_FLOATINGOBJECT_CONTENT_CONTAINER).addClass(CSS_CLASS_NONE_USER_SELECT).css(CSS_POSITION,CSS_POSITION_ABSOLUTE);return content};return Picture})(FloatingObject);spread.Picture=Picture;var _FloatingObjectRender=(function(){function _FloatingObjectRender(floatingObject,sheet){this._srcCache="";var self=this;self._floatingObject=floatingObject;self.name=self._floatingObject.name();self._sheet=sheet;self._isMouseCapture=false}_FloatingObjectRender.prototype.floatingObject=function(){return this._floatingObject};_FloatingObjectRender.prototype.render=function(containerRect,contentRect){var self=this;var isCustomFloatingObjectCreate=false;self._rect=containerRect;if(!self._floatingObjectContainerDiv){self._floatingObjectContainerDiv=self._createFloatingObjectContainer(self._floatingObject.name());var tempSpread=self._sheet.parent;if(tempSpread){self._containerDiv=tempSpread._getContainerDiv();if(self._containerDiv){$(self._containerDiv).append(self._floatingObjectContainerDiv)}}}if(!self._floatingObjectContentDiv){self._floatingObjectContentDiv=self._floatingObject._createContentContainer();if(typeof self._floatingObject.borderWidth==='function'){self._borderDiv=document.createElement("div");$(self._borderDiv).addClass(CSS_CLASS_NONE_USER_SELECT);self._floatingObjectContainerDiv.appendChild(self._borderDiv);self._borderDiv.appendChild(self._floatingObjectContentDiv)}else
{self._floatingObjectContainerDiv.appendChild(self._floatingObjectContentDiv);isCustomFloatingObjectCreate=true}}if(self._borderDiv){self._applyBorderStyle(contentRect,containerRect);contentRect.x=0;contentRect.y=0}var $container=$(self._floatingObjectContainerDiv);var $content=$(self._floatingObjectContentDiv);$container.css({top:containerRect.y,left:containerRect.x,width:containerRect.width,height:containerRect.height});$content.css({top:contentRect.y,left:contentRect.x,width:contentRect.width,height:contentRect.height});if(self._borderDiv){self._paintImage()}if(self._floatingObject.isSelected()){$content.removeClass(CSS_CLASS_FLOATINGOBJECT_UNSELECTED).addClass(CSS_CLASS_FLOATINGOBJECT_SELECTED);self._showResizeIndicator($container)}else
{$content.removeClass(CSS_CLASS_FLOATINGOBJECT_SELECTED).addClass(CSS_CLASS_FLOATINGOBJECT_UNSELECTED);self._hideResizeIndicator($container)}if(isCustomFloatingObjectCreate){var sheet=self._sheet,element=$(self._floatingObjectContentDiv).children()[0];sheet._trigger(spread.Events.CustomFloatingObjectLoaded,{sheet:sheet,sheetName:sheet._name,customFloatingObject:self._floatingObject,element:element})}};_FloatingObjectRender.prototype.setFloatingObjectZIndex=function(zIndex){$(this._floatingObjectContainerDiv).css('z-index',zIndex)};_FloatingObjectRender.prototype.getFloatingObjectZIndex=function(){var zIndex=parseInt($(this._floatingObjectContainerDiv).css('z-index'));if(isNaN(zIndex)){return-1}else
{return zIndex}};_FloatingObjectRender.prototype._paintImage=function(){var self=this;var floatingObject=self._floatingObject;var src=floatingObject.src();var stretch=floatingObject.pictureStretch();var backColor=spread._ThemeContext.getColor(floatingObject.owner(),floatingObject.backColor());if(!src||!self._floatingObjectContentDiv){return}var content=$(self._floatingObjectContentDiv);if(self._srcCache!==src){self._srcCache=src;content.css("background-image","url('"+src+"')").css("background-repeat","no-repeat")}content.css("background-color",backColor);if(stretch===keyword_null||stretch===keyword_undefined){return}if(floatingObject._isImageLoaded){var imgWidth=floatingObject.getOriginalWidth(),imgHeight=floatingObject.getOriginalHeight(),contentWidth=content.width(),contentHeight=content.height();spread.util._applyBackgroundImageLayout(self._floatingObjectContentDiv,contentWidth,contentHeight,imgWidth,imgHeight,stretch)}};_FloatingObjectRender.prototype._applyBorderStyle=function(contentRect,containerRect){var borderDiv=this._borderDiv,floatingObject=this._floatingObject,borderWidth=floatingObject.borderWidth(),borderStyle=floatingObject.borderStyle(),borderColor=spread._ThemeContext.getColor(floatingObject.owner(),floatingObject.borderColor()),borderRadius=floatingObject.borderRadius(),gapSize=0;if(!floatingObject._isBorderStyleWork(borderStyle)){borderWidth=0}if(borderWidth<GAPSTRIPSIZE_CONST){gapSize=GAPSTRIPSIZE_CONST-borderWidth}var left=gapSize,top=gapSize,bottom=gapSize,right=gapSize;var gapStripSize=Math_max(borderWidth,GAPSTRIPSIZE_CONST);if(contentRect.x<0){left+=contentRect.x-gapStripSize}else
{if(contentRect.x<gapStripSize){left+=contentRect.x-gapStripSize}else
{left+=0}right=containerRect.width-left-contentRect.width-2-2*borderWidth}if(contentRect.y<0){top+=contentRect.y-gapStripSize}else
{if(contentRect.y<gapStripSize){top+=contentRect.y-gapStripSize}else
{top+=0}bottom=containerRect.height-top-contentRect.height-2-2*borderWidth}$(borderDiv).css({position:"absolute",left:left,top:top,bottom:bottom,right:right,"border-width":borderWidth,"border-style":borderStyle,"border-color":borderColor,"border-radius":borderRadius})};_FloatingObjectRender.prototype._dispose=function(){var self=this;if(self._touchManager){self._touchManager.detach()}if(self._floatingObjectContainerDiv){$(self._floatingObjectContainerDiv).remove();self._floatingObjectContainerDiv=keyword_null}if(self._moveResizeContainerDiv){$(self._moveResizeContainerDiv).remove();self._moveResizeContainerDiv=keyword_null}};_FloatingObjectRender.prototype._showResizeIndicator=function(container){var $indicators=$(CSS_SELECTOR_RESIZE_INDICATOR,container);$indicators.removeClass(CSS_CLASS_RESIZE_INDICATOR_UNSELECT);var self=this;var containerBounds=self._getHTMLElementBounds(self._floatingObjectContainerDiv);var contentDiv=self._floatingObjectContentDiv;var floatingObject=self._floatingObject;if(self._borderDiv){contentDiv=self._borderDiv}var contentBounds=self._getHTMLElementBounds(contentDiv);var leftOffset=contentBounds.x;var topOffset=contentBounds.y;var bottomOffset=containerBounds.height-contentBounds.y-contentBounds.height;var rightOffset=containerBounds.width-contentBounds.x-contentBounds.width;var position=0;var resizeIndicatorSize=GAPSTRIPSIZE_CONST*2+1;if(typeof floatingObject.borderWidth==='function'){var borderWidth=floatingObject.borderWidth(),borderStyle=floatingObject.borderStyle();if(!floatingObject._isBorderStyleWork(borderStyle)){borderWidth=0}if(borderWidth>=GAPSTRIPSIZE_CONST){position=borderWidth-GAPSTRIPSIZE_CONST}bottomOffset=containerBounds.height-topOffset-contentBounds.height-borderWidth;rightOffset=containerBounds.width-leftOffset-contentBounds.width-borderWidth;leftOffset+=borderWidth;topOffset+=borderWidth}if(leftOffset>0){if(topOffset>0){$(CSS_SELECTOR_TOP_LEFT_RESIZE_INDICATOR,self._floatingObjectContainerDiv).css({top:position,left:position}).addClass(CSS_CLASS_RESIZE_INDICATOR_SELECT)}else
{self._resizeIndicatorUnselect(CSS_SELECTOR_TOP_LEFT_RESIZE_INDICATOR)}if(containerBounds.height>0){$(CSS_SELECTOR_MIDDLE_LEFT_RESIZE_INDICATOR,self._floatingObjectContainerDiv).css({left:position,top:(contentBounds.height-resizeIndicatorSize)/2+topOffset}).addClass(CSS_CLASS_RESIZE_INDICATOR_SELECT)}else
{self._resizeIndicatorUnselect(CSS_SELECTOR_MIDDLE_LEFT_RESIZE_INDICATOR)}if(bottomOffset>0){$(CSS_SELECTOR_BOTTOM_LEFT_RESIZE_INDICATOR,self._floatingObjectContainerDiv).css({left:position,bottom:position}).addClass(CSS_CLASS_RESIZE_INDICATOR_SELECT)}else
{self._resizeIndicatorUnselect(CSS_SELECTOR_BOTTOM_LEFT_RESIZE_INDICATOR)}}else
{self._resizeIndicatorUnselect(CSS_SELECTOR_TOP_LEFT_RESIZE_INDICATOR);self._resizeIndicatorUnselect(CSS_SELECTOR_MIDDLE_LEFT_RESIZE_INDICATOR);self._resizeIndicatorUnselect(CSS_SELECTOR_BOTTOM_LEFT_RESIZE_INDICATOR)}if(topOffset>0){$(CSS_SELECTOR_TOP_CENTER_RESIZE_INDICATOR,self._floatingObjectContainerDiv).css({top:position,left:(contentBounds.width-resizeIndicatorSize)/2+leftOffset}).addClass(CSS_CLASS_RESIZE_INDICATOR_SELECT)}else
{self._resizeIndicatorUnselect(CSS_SELECTOR_TOP_CENTER_RESIZE_INDICATOR)}if(bottomOffset>0){$(CSS_SELECTOR_BOTTOM_CENTER_RESIZE_INDICATOR,self._floatingObjectContainerDiv).css({left:(contentBounds.width-resizeIndicatorSize)/2+leftOffset,bottom:position}).addClass(CSS_CLASS_RESIZE_INDICATOR_SELECT)}else
{self._resizeIndicatorUnselect(CSS_SELECTOR_BOTTOM_CENTER_RESIZE_INDICATOR)}if(rightOffset>0){if(topOffset>0){$(CSS_SELECTOR_TOP_RIGHT_RESIZE_INDICATOR,self._floatingObjectContainerDiv).css({right:position,top:position}).addClass(CSS_CLASS_RESIZE_INDICATOR_SELECT)}else
{self._resizeIndicatorUnselect(CSS_SELECTOR_TOP_RIGHT_RESIZE_INDICATOR)}if(containerBounds.height>0){$(CSS_SELECTOR_MIDDLE_RIGHT_RESIZE_INDICATOR,self._floatingObjectContainerDiv).css({top:(contentBounds.height-resizeIndicatorSize)/2+topOffset,right:position}).addClass(CSS_CLASS_RESIZE_INDICATOR_SELECT)}else
{self._resizeIndicatorUnselect(CSS_SELECTOR_MIDDLE_RIGHT_RESIZE_INDICATOR)}if(bottomOffset>0){$(CSS_SELECTOR_BOTTOM_RIGHT_RESIZE_INDICATOR,self._floatingObjectContainerDiv).css({right:position,bottom:position}).addClass(CSS_CLASS_RESIZE_INDICATOR_SELECT)}else
{self._resizeIndicatorUnselect(CSS_SELECTOR_BOTTOM_RIGHT_RESIZE_INDICATOR)}}else
{self._resizeIndicatorUnselect(CSS_SELECTOR_TOP_RIGHT_RESIZE_INDICATOR);self._resizeIndicatorUnselect(CSS_SELECTOR_MIDDLE_RIGHT_RESIZE_INDICATOR);self._resizeIndicatorUnselect(CSS_SELECTOR_BOTTOM_RIGHT_RESIZE_INDICATOR)}};_FloatingObjectRender.prototype._resizeIndicatorUnselect=function(selector){$(selector,this._floatingObjectContainerDiv).removeClass(CSS_CLASS_RESIZE_INDICATOR_SELECT).addClass(CSS_CLASS_RESIZE_INDICATOR_UNSELECT)};_FloatingObjectRender.prototype._hideResizeIndicator=function(container){$(CSS_SELECTOR_RESIZE_INDICATOR,container).removeClass(CSS_CLASS_RESIZE_INDICATOR_SELECT).addClass(CSS_CLASS_RESIZE_INDICATOR_UNSELECT)};_FloatingObjectRender.prototype._createFloatingObjectContainer=function(floatingObjectName){var outer=document.createElement("div");var $outer=$(outer);var self=this;self._renderManager.reduceZIndex();$outer.addClass(CSS_CLASS_FLOATINGOBJECT_CONTAINER).addClass(CSS_CLASS_NONE_USER_SELECT).css('z-index',CSS_ZINDEXDEFAULTVALUE).bind('mousedown',function(event){self._doMouseDown(event)}).bind('mousemove',function(event){self._doMouseMove(event)}).bind('mouseup',function(event){self._doMouseUp(event)});outer.addEventListener('mousewheel',function(event){self._doMouseWheel(event)},false);outer.addEventListener('DOMMouseScroll',function(event){self._doMouseWheel(event)},false);$outer.append($(HTML_RESIZE_INDICATOR));if(spread.features.touch){self._touchManager=new spread.FloatingObjectTouchManager(outer,self,self._sheet.parent._touchEventProvider);self._touchManager.attach()}return outer};_FloatingObjectRender.prototype._createMoveResizeContainer=function(){var self=this;if(self._floatingObjectContainerDiv&&self._layout){if(!self._moveResizeDiv){self._moveResizeContainerDiv=document.createElement('div');self._moveResizeDiv=document.createElement("div");self._attachedMoveResizeDivDict={};var len=self._renderManager._containerArray.length;for(var i=0;i<len;i++){var foContainer=self._renderManager._containerArray[i];var fo=foContainer._floatingObject;if(fo&&fo.name()!==self._floatingObject.name()&&fo.isSelected()&&!self._attachedMoveResizeDivDict[fo.name()]){self._attachedMoveResizeDivDict[fo.name()]={offsetX:foContainer._layout.x-self._layout.x,offsetY:foContainer._layout.y-self._layout.y,height:foContainer._layout.height,width:foContainer._layout.width,moveResizeDiv:document.createElement("div")}}}var viewportRect=self._getViewportRect(self._rowViewportIndex,self._columnViewportIndex);var $movingContainer=$(self._moveResizeContainerDiv);$movingContainer.addClass(CSS_CLASS_FLOATINGOBJECT_MOVING_CONTAINER).css('z-index',CSS_CONTAINERZINDEXVALUE).css({top:viewportRect.y,left:viewportRect.x,width:viewportRect.width,height:viewportRect.height}).bind('mousemove',function(e){self._doMouseMove(e)}).bind('mouseup',function(e){self._doMouseUp(e)});var top=self._layout.y-viewportRect.y;var left=self._layout.x-viewportRect.x;self._attachMoveResizeDivToContainer(self._moveResizeDiv,self._moveResizeContainerDiv,left,top,self._layout.width,self._layout.height);for(var item in self._attachedMoveResizeDivDict){var value=self._attachedMoveResizeDivDict[item];self._attachMoveResizeDivToContainer(value.moveResizeDiv,self._moveResizeContainerDiv,left+value.offsetX,top+value.offsetY,value.width,value.height)}if(self._containerDiv){$(self._containerDiv).append(self._moveResizeContainerDiv)}}}};_FloatingObjectRender.prototype._handleDocumentMouseMove=function(){var self=this;if(!self._isMouseCapture){$(document).bind("mousemove.gcSheet",function(e){self._doMouseMove(e)});$(document).bind("mouseup.gcSheet",function(e){self._doMouseUp(e)});self._isMouseCapture=true}};_FloatingObjectRender.prototype._unhandleDocumentMouseMove=function(){if(this._isMouseCapture){this._isMouseCapture=false;$(document).unbind("mousemove.gcSheet");$(document).unbind("mouseup.gcSheet")}};_FloatingObjectRender.prototype._doMouseDown=function(event){var self=this,sheet=self._sheet;if(sheet.isProtected&&self._floatingObject.isLocked()){return}if(!sheet.endEdit()){return}if(self._touchManager&&!event.isTouch&&self._touchManager.preProcessMouseDown(event)){spread.util.cancelDefault(event);return}if(event.button===0||event.button===2){if(event.ctrlKey||event.shiftKey){if(self._floatingObject.isSelected()){self._floatingObject.isSelected(false)}else
{self._floatingObject.isSelected(true);window.gcGlobal.activeElement=sheet}}else
{if(!self._floatingObject.isSelected()){sheet.unSelectAllFloatingObjects();self._floatingObject.isSelected(true);window.gcGlobal.activeElement=sheet}}if(sheet._commentManager){sheet._commentManager.deactivateComment()}sheet._saveAndClearSheetSelections();if(event.button===2){return}var eventHandler=sheet._eventHandler,canvasOffset=eventHandler._getCanvasOffset();self._mouseLeftButtonDownPosition=new spread.Point(event.pageX-canvasOffset.left,event.pageY-canvasOffset.top);self._mousePosition=self._mouseLeftButtonDownPosition;self._isMouseLeftButtonDown=true;self._mouseDownHittestInfo=self._hitTest(self._mousePosition.x,self._mousePosition.y);if(self._mouseDownHittestInfo.inMoving){self._moveInfo={};self._moveInfo.startTopRow=sheet.getViewportTopRow(self._rowViewportIndex);self._moveInfo.startLeftColumn=sheet.getViewportLeftColumn(self._columnViewportIndex)}else
{self._createMoveResizeContainer();var $movingContainer=$(self._moveResizeDiv);self._resizeInfo={};var elementBounds=self._getHTMLElementBounds(self._moveResizeDiv);self._resizeInfo.startX=elementBounds.x;self._resizeInfo.startY=elementBounds.y;self._resizeInfo.startWidth=elementBounds.width;self._resizeInfo.startHeight=elementBounds.height;self._resizeInfo.startTopRow=sheet.getViewportTopRow(self._rowViewportIndex);self._resizeInfo.startLeftColumn=sheet.getViewportLeftColumn(self._columnViewportIndex)}self._handleDocumentMouseMove();var sheetHitTestInfo=sheet.hitTest(self._mousePosition.x,self._mousePosition.y);eventHandler.startHitInfo={scrollRowViewportIndex:sheetHitTestInfo.rowViewportIndex,scrollColViewportIndex:sheetHitTestInfo.colViewportIndex,hitTestType:sheetHitTestInfo.hitTestType};eventHandler.mousePosition=self._mousePosition;eventHandler.startScroll();eventHandler.isFloatingObjectWorking=true}event.stopPropagation();return false};_FloatingObjectRender.prototype._doMouseMove=function(event){var self=this,sheet=self._sheet;if(sheet.isProtected&&self._floatingObject.isLocked()){return}if(self._touchManager&&!event.isTouch&&self._touchManager.preProcessMouseMove(event)){spread.util.cancelDefault(event);return}if(sheet._isMouseDownInSheet){if(self._floatingObjectContainerDiv){var $container=$(self._floatingObjectContainerDiv);$container.css('cursor','default')}return true}var eventHandler=sheet._eventHandler,canvasOffset=eventHandler._getCanvasOffset();var point=new spread.Point(event.pageX-canvasOffset.left,event.pageY-canvasOffset.top);if(self._isMouseLeftButtonDown){$(self._moveResizeContainerDiv).css("cursor",$(self._floatingObjectContainerDiv).css('cursor'));if(self._mouseDownHittestInfo.inMoving){self._isMoving=true;self._createMoveResizeContainer();self._doMoveContainer(self._mousePosition,point)}else
{self._isResizing=true;self._doResizeContainer(self._mousePosition,self._mouseDownHittestInfo)}self._mousePosition=point;eventHandler.mousePosition=point;eventHandler.continueScroll();$(document.body).addClass(CSS_CLASS_NONE_USER_SELECT)}else
{self._updateCursor(point)}event.stopPropagation();return false};_FloatingObjectRender.prototype._doMouseUp=function(event){var self=this,sheet=self._sheet,eventHandler=sheet._eventHandler;if(sheet.isProtected&&self._floatingObject.isLocked()){spread.util.cancelDefault(event);return}if(self._touchManager&&!event.isTouch&&self._touchManager.preProcessMouseUp(event)){return}if(sheet._isMouseDownInSheet){if(self._floatingObjectContainerDiv){var $container=$(self._floatingObjectContainerDiv);$container.css('cursor','move')}return true}eventHandler.isFloatingObjectWorking=false;eventHandler.stopScroll();var canvasOffset=eventHandler._getCanvasOffset();var point=new spread.Point(event.pageX-canvasOffset.left,event.pageY-canvasOffset.top);if(self._mouseDownHittestInfo){if(self._mouseDownHittestInfo.inMoving&&self._isMoving){if(event.ctrlKey){self._doCopyFloatingObject(self._mouseLeftButtonDownPosition,point)}else
{self._doMoveFloatingObject(self._mouseLeftButtonDownPosition,point)}}else if(self._isResizing){self._doResizeFloatingObject()}$(document.body).removeClass(CSS_CLASS_NONE_USER_SELECT)}self._resizeInfo=keyword_null;self._moveInfo=keyword_null;self._attachedMoveResizeDivDict=keyword_null;$(self._moveResizeContainerDiv).remove();self._moveResizeDiv=keyword_null;self._isMouseLeftButtonDown=false;self._unhandleDocumentMouseMove();self._isMoving=false;self._isResizing=false;event.stopPropagation();return false};_FloatingObjectRender.prototype._doMouseWheel=function(e){var sheet=this._sheet;if(sheet){e=e?e:window.event;var wheelData=e.detail?e.detail:e.wheelDelta/-40;sheet._eventHandler.doMouseWheel(e,parseInt(wheelData,10));spread.util.cancelDefault(e);return false}};_FloatingObjectRender.prototype._doCopyFloatingObject=function(startPoint,endPoint){var self=this,sheet=self._sheet;if(self._moveInfo){var viewportOffsetHeight=self._getTwoRowDistance(self._moveInfo.startTopRow,sheet.getViewportTopRow(self._rowViewportIndex));var viewportOffsetWidth=self._getTwoColumnDistance(self._moveInfo.startLeftColumn,sheet.getViewportLeftColumn(self._columnViewportIndex));var offsetX=endPoint.x-startPoint.x+(endPoint.x>startPoint.x?viewportOffsetWidth:-1*viewportOffsetWidth);var offsetY=endPoint.y-startPoint.y+(endPoint.y>startPoint.y?viewportOffsetHeight:-1*viewportOffsetHeight);var names=[];names.push(self._floatingObject.name());for(var item in self._attachedMoveResizeDivDict){names.push(item)}var dragCopyFloatingObjectUndoAction=new spread.UndoRedo.DragCopyFloatingObjectUndoAction(sheet,{names:names},{offsetX:offsetX,offsetY:offsetY});sheet._doCommand(dragCopyFloatingObjectUndoAction)}};_FloatingObjectRender.prototype._doMoveFloatingObject=function(startPoint,endPoint){var self=this,sheet=self._sheet;if(self._moveInfo){var viewportOffsetHeight=self._getTwoRowDistance(self._moveInfo.startTopRow,sheet.getViewportTopRow(self._rowViewportIndex));var viewportOffsetWidth=self._getTwoColumnDistance(self._moveInfo.startLeftColumn,sheet.getViewportLeftColumn(self._columnViewportIndex));var offsetX=endPoint.x-startPoint.x+(endPoint.x>startPoint.x?viewportOffsetWidth:-1*viewportOffsetWidth);var offsetY=endPoint.y-startPoint.y+(endPoint.y>startPoint.y?viewportOffsetHeight:-1*viewportOffsetHeight);offsetX=offsetX/sheet._zoomFactor;offsetY=offsetY/sheet._zoomFactor;var names=[];names.push(self._floatingObject.name());for(var item in self._attachedMoveResizeDivDict){names.push(item)}var movingFloatingObjectUndoAction=new spread.UndoRedo.MovingFloatingObjectUndoAction(sheet,{names:names},{offsetX:offsetX,offsetY:offsetY});sheet._doCommand(movingFloatingObjectUndoAction)}};_FloatingObjectRender.prototype._doResizeFloatingObject=function(){var self=this,sheet=self._sheet,zoomFactor=sheet._zoomFactor;if(self._resizeInfo){var viewportOffsetHeight=self._getTwoRowDistance(self._resizeInfo.startTopRow,sheet.getViewportTopRow(self._rowViewportIndex));var viewportOffsetWidth=self._getTwoColumnDistance(self._resizeInfo.startLeftColumn,sheet.getViewportLeftColumn(self._columnViewportIndex));var offsetX=self._resizeInfo.endX-self._resizeInfo.startX+(self._resizeInfo.endX>self._resizeInfo.startX?viewportOffsetWidth:-1*viewportOffsetWidth);offsetX=offsetX/zoomFactor;var offsetY=self._resizeInfo.endY-self._resizeInfo.startY+(self._resizeInfo.endY>self._resizeInfo.startY?viewportOffsetHeight:-1*viewportOffsetHeight);offsetY=offsetY/zoomFactor;var offsetWidth=(self._resizeInfo.endWidth+viewportOffsetWidth)/zoomFactor-self._floatingObject.width();var offsetHeight=(self._resizeInfo.endHeight+viewportOffsetHeight)/zoomFactor-self._floatingObject.height();var names=[];names.push(self._floatingObject.name());for(var item in self._attachedMoveResizeDivDict){names.push(item)}var resizingFloatingObjectUndoAction=new spread.UndoRedo.ResizingFloatingObjectUndoAction(sheet,{names:names},{offsetX:offsetX,offsetY:offsetY,offsetWidth:offsetWidth,offsetHeight:offsetHeight});sheet._doCommand(resizingFloatingObjectUndoAction)}};_FloatingObjectRender.prototype._doMoveContainer=function(startPoint,endPoint){var self=this;if(self._moveResizeDiv){var $movingContainer=$(self._moveResizeDiv);var x=endPoint.x-startPoint.x;var y=endPoint.y-startPoint.y;self._doMoveContainerImp(self._moveResizeDiv,x,y);for(var item in self._attachedMoveResizeDivDict){var value=self._attachedMoveResizeDivDict[item];self._doMoveContainerImp(value.moveResizeDiv,x,y)}}};_FloatingObjectRender.prototype._doMoveContainerImp=function(div,x,y){var $movingContainer=$(div);var position=$movingContainer.position();$movingContainer.css({top:position.top+y,left:position.left+x})};_FloatingObjectRender.prototype._doResizeContainer=function(point,hitInfo){if(hitInfo){var self=this;var rect;var layout=self._getViewportRect(self._rowViewportIndex,self._columnViewportIndex);point=new spread.Point(point.x-layout.x,point.y-layout.y);if(hitInfo.inTopNWSEResizing){rect=self._getFloatingObjectTopLeftResizingRect(point)}else if(hitInfo.inTopNSResizing){rect=self._getFloatingObjectTopCenterResizingRect(point)}else if(hitInfo.inTopNESWResizing){rect=self._getFloatingObjectTopRightResizingRect(point)}else if(hitInfo.inLeftWEResizing){rect=self._getFloatingObjectMiddleLeftResizingRect(point)}else if(hitInfo.inRightWEResizing){rect=self._getFloatingObjectMiddleRightResizingRect(point)}else if(hitInfo.inBottomNESWResizing){rect=self._getFloatingObjectBottomLeftResizingRect(point)}else if(hitInfo.inBottomNSReszing){rect=self._getFloatingObjectBottomCenterResizingRect(point)}else if(hitInfo.inBottomNWSEReszing){rect=self._getFloatingObjectBottomRightResizingRect(point)}self._resizeInfo.endX=rect.x;self._resizeInfo.endY=rect.y;self._resizeInfo.endWidth=rect.width;self._resizeInfo.endHeight=rect.height;var $movingContainer=$(self._moveResizeDiv);var bounds=self._getHTMLElementBounds(self._moveResizeDiv);var offsetTop=rect.y-bounds.y;var offsetLeft=rect.x-bounds.x;var offsetWidth=rect.width-bounds.width;var offsetHeight=rect.height-bounds.height;self._doResizeContainerImp(self._moveResizeDiv,offsetLeft,offsetTop,offsetWidth,offsetHeight);for(var item in self._attachedMoveResizeDivDict){var value=self._attachedMoveResizeDivDict[item];self._doResizeContainerImp(value.moveResizeDiv,offsetLeft,offsetTop,offsetWidth,offsetHeight)}}};_FloatingObjectRender.prototype._doResizeContainerImp=function(div,offsetLeft,offsetTop,offsetWidth,offsetHeight){var $movingContainer=$(div);var bounds=this._getHTMLElementBounds(div);$movingContainer.css({top:bounds.y+offsetTop,left:bounds.x+offsetLeft,width:bounds.width+offsetWidth,height:bounds.height+offsetHeight})};_FloatingObjectRender.prototype._attachMoveResizeDivToContainer=function(moveResizeDiv,container,x,y,width,height){$(moveResizeDiv).addClass(CSS_CLASS_FLOATINGOBJECT_MOVING_DIV).css({top:y-1,left:x-1,width:width,height:height}).appendTo(container)};_FloatingObjectRender.prototype._getHTMLElementBounds=function(element){var $element=$(element);var position=$element.position();return new spread.Rect(position.left,position.top,$element.width(),$element.height())};_FloatingObjectRender.prototype._updateCursor=function(point){var self=this;if(self._floatingObjectContainerDiv){var $container=$(self._floatingObjectContainerDiv),info=self._hitTest(point.x,point.y),cursor;if(info!==keyword_null){if(info.inTopNWSEResizing){cursor='nw-resize'}else if(info.inTopNSResizing){cursor='n-resize'}else if(info.inTopNESWResizing){cursor='ne-resize'}else if(info.inLeftWEResizing){cursor='w-resize'}else if(info.inRightWEResizing){cursor='w-resize'}else if(info.inBottomNESWResizing){cursor='sw-resize'}else if(info.inBottomNSReszing){cursor='n-resize'}else if(info.inBottomNWSEReszing){cursor='se-resize'}else
{cursor='move'}$container.css('cursor',cursor)}}};_FloatingObjectRender.prototype._getFloatingObjectTopLeftResizingRect=function(point){var self=this;var x=Math_min(self._resizeInfo.startX+self._resizeInfo.startWidth,point.x);var y=Math_min(self._resizeInfo.startY+self._resizeInfo.startHeight,point.y);var width=Math_abs(point.x-self._resizeInfo.startX-self._resizeInfo.startWidth);var height=Math_abs(point.y-self._resizeInfo.startY-self._resizeInfo.startHeight);return new spread.Rect(x,y,width,height)};_FloatingObjectRender.prototype._getFloatingObjectTopCenterResizingRect=function(point){var self=this;var x=self._resizeInfo.startX;var y=Math_min(self._resizeInfo.startY+self._resizeInfo.startHeight,point.y);var height=Math_abs(point.y-self._resizeInfo.startY-self._resizeInfo.startHeight);var width=self._resizeInfo.startWidth;return new spread.Rect(x,y,width,height)};_FloatingObjectRender.prototype._getFloatingObjectTopRightResizingRect=function(point){var self=this;var x=Math_min(self._resizeInfo.startX,point.x);var y=Math_min(self._resizeInfo.startY+self._resizeInfo.startHeight,point.y);var width=Math_abs(point.x-self._resizeInfo.startX);var height=Math_abs(point.y-self._resizeInfo.startY-self._resizeInfo.startHeight);return new spread.Rect(x,y,width,height)};_FloatingObjectRender.prototype._getFloatingObjectMiddleLeftResizingRect=function(point){var self=this;var x=Math_min(self._resizeInfo.startX+self._resizeInfo.startWidth,point.x);var y=self._resizeInfo.startY;var width=Math_abs(point.x-self._resizeInfo.startX-self._resizeInfo.startWidth);var height=self._resizeInfo.startHeight;return new spread.Rect(x,y,width,height)};_FloatingObjectRender.prototype._getFloatingObjectMiddleRightResizingRect=function(point){var self=this;var x=Math_min(self._resizeInfo.startX,point.x);var y=self._resizeInfo.startY;var width=Math_abs(point.x-self._resizeInfo.startX);var height=self._resizeInfo.startHeight;return new spread.Rect(x,y,width,height)};_FloatingObjectRender.prototype._getFloatingObjectBottomLeftResizingRect=function(point){var self=this;var x=Math_min(self._resizeInfo.startX+self._resizeInfo.startWidth,point.x);var y=Math_min(self._resizeInfo.startY,point.y);var width=Math_abs(point.x-self._resizeInfo.startX-self._resizeInfo.startWidth);var height=Math_abs(point.y-self._resizeInfo.startY);return new spread.Rect(x,y,width,height)};_FloatingObjectRender.prototype._getFloatingObjectBottomCenterResizingRect=function(point){var self=this;var x=self._resizeInfo.startX;var y=Math_min(self._resizeInfo.startY,point.y);var height=Math_abs(point.y-self._resizeInfo.startY);var width=self._resizeInfo.startWidth;return new spread.Rect(x,y,width,height)};_FloatingObjectRender.prototype._getFloatingObjectBottomRightResizingRect=function(point){var self=this;var x=Math_min(self._resizeInfo.startX,point.x);var y=Math_min(self._resizeInfo.startY,point.y);var width=Math_abs(point.x-self._resizeInfo.startX);var height=Math_abs(point.y-self._resizeInfo.startY);return new spread.Rect(x,y,width,height)};_FloatingObjectRender.prototype._getViewportRect=function(rowViewportIndex,columnViewportIndex){var self=this,sheet=self._sheet;var layout=sheet._getSheetLayout(),rect=layout.viewportRect(rowViewportIndex,columnViewportIndex),topRow,bottomRow,leftColumn,rightColumn,tempRect,floatingObject=self._floatingObject,startRow=floatingObject.startRow(),startColumn=floatingObject.startColumn(),endRow=floatingObject.endRow(),endColumn=floatingObject.endColumn(),frozenRowCount=sheet.frozenRowCount,frozenColCount=sheet.frozenColCount,frozenTrailingRow=sheet.getRowCount(3)-sheet.getFrozenTrailingRowCount()-1,frozenTrailingColumn=sheet.getColumnCount(3)-sheet.getFrozenTrailingColumnCount()-1;if(rowViewportIndex===VIEWPORTINDEX){if(frozenRowCount>0){topRow=sheet.getViewportTopRow(rowViewportIndex);if(startRow<frozenRowCount||topRow===frozenRowCount){rect.y-=layout.frozenHeight;rect.height+=layout.frozenHeight}}if(sheet._frozenTrailingRowCount>0){bottomRow=sheet.getViewportBottomRow(rowViewportIndex);if(endRow>frozenTrailingRow&&bottomRow===frozenTrailingRow){rect.height+=layout.frozenTrailingHeight}}}else if(rowViewportIndex===VIEWPORTINDEX-1){topRow=sheet.getViewportTopRow(rowViewportIndex+1);if(endRow>=topRow||topRow===frozenRowCount){tempRect=layout.viewportRect(rowViewportIndex+1,columnViewportIndex);rect.height+=tempRect.height}}else if(rowViewportIndex===VIEWPORTINDEX+1){bottomRow=sheet.getViewportBottomRow(rowViewportIndex-1);if(startRow<=bottomRow||bottomRow===frozenTrailingRow){tempRect=layout.viewportRect(rowViewportIndex-1,columnViewportIndex);rect.y=tempRect.y;rect.height+=tempRect.height}}if(columnViewportIndex===VIEWPORTINDEX){if(frozenColCount>0){leftColumn=sheet.getViewportLeftColumn(columnViewportIndex);if(startColumn<frozenColCount||leftColumn===frozenColCount){rect.x-=layout.frozenWidth;rect.width+=layout.frozenWidth}}if(sheet._frozenTrailingColCount>0){rightColumn=sheet.getViewportRightColumn(columnViewportIndex);if(endColumn>frozenTrailingColumn||rightColumn===frozenTrailingColumn){rect.width+=layout.frozenTrailingWidth}}}else if(columnViewportIndex===VIEWPORTINDEX-1){leftColumn=sheet.getViewportLeftColumn(columnViewportIndex+1);if(endColumn>=leftColumn||leftColumn===frozenColCount){tempRect=layout.viewportRect(rowViewportIndex,columnViewportIndex+1);rect.width+=tempRect.width}}else if(columnViewportIndex===VIEWPORTINDEX+1){rightColumn=sheet.getViewportRightColumn(columnViewportIndex-1);if(startColumn<=rightColumn||rightColumn===frozenTrailingColumn){tempRect=layout.viewportRect(rowViewportIndex,columnViewportIndex-1);rect.x=tempRect.x;rect.width+=tempRect.width}}return rect};_FloatingObjectRender.prototype._getTwoColumnDistance=function(column1,column2){var startColumn=Math_min(column1,column2);var endColumn=Math_max(column1,column2);var totalWidth=0;for(var c=startColumn;c<endColumn;c++){totalWidth+=this._sheet.getColumnWidth(c,3)}return totalWidth};_FloatingObjectRender.prototype._getTwoRowDistance=function(row1,row2){var startRow=Math_min(row1,row2);var endRow=Math_max(row1,row2);var totalHeight=0;for(var i=startRow;i<endRow;i++){totalHeight+=this._sheet.getRowHeight(i,3)}return totalHeight};_FloatingObjectRender.prototype._hitTest=function(mouseX,mouseY){var self=this;if(!self._layout){return keyword_null}var info={inMoving:false,inTopNWSEResizing:false,inTopNSResizing:false,inTopNESWResizing:false,inLeftWEResizing:false,inRightWEResizing:false,inBottomNESWResizing:false,inBottomNSReszing:false,inBottomNWSEReszing:false};if(!self._floatingObject.isSelected()){info.inMoving=true;return info}var visibleGapSize=GAPSTRIPSIZE_CONST;var inflateSize=10;var x=self._layout.x;var y=self._layout.y;var width=self._layout.width;var height=self._layout.height;if(self._floatingObject&&self._floatingObject.isSelected()){x-=visibleGapSize;y-=visibleGapSize;width+=2*visibleGapSize;height+=2*visibleGapSize}var topLeftRect=self._inflateRect(new spread.Rect(x,y,visibleGapSize,visibleGapSize),inflateSize);if(topLeftRect.contains(mouseX,mouseY)){info.inTopNWSEResizing=true;return info}var topCenterRect=self._inflateRect(new spread.Rect(x+width/2-visibleGapSize,y,2*visibleGapSize,visibleGapSize),inflateSize);if(topCenterRect.contains(mouseX,mouseY)){info.inTopNSResizing=true;return info}var topRightRect=self._inflateRect(new spread.Rect(x+width-visibleGapSize,y,visibleGapSize,visibleGapSize),inflateSize);if(topRightRect.contains(mouseX,mouseY)){info.inTopNESWResizing=true;return info}var middleLeftRect=self._inflateRect(new spread.Rect(x,y+height/2-visibleGapSize,visibleGapSize,2*visibleGapSize),inflateSize);if(middleLeftRect.contains(mouseX,mouseY)){info.inLeftWEResizing=true;return info}var middleRightRect=self._inflateRect(new spread.Rect(x+width-visibleGapSize,y+height/2-visibleGapSize,visibleGapSize,2*visibleGapSize),inflateSize);if(middleRightRect.contains(mouseX,mouseY)){info.inRightWEResizing=true;return info}var bottomLeftRect=self._inflateRect(new spread.Rect(x,y+height-visibleGapSize,visibleGapSize,visibleGapSize),inflateSize);if(bottomLeftRect.contains(mouseX,mouseY)){info.inBottomNESWResizing=true;return info}var bottomCenterRect=self._inflateRect(new spread.Rect(x+width/2-visibleGapSize,y+height-visibleGapSize,2*visibleGapSize,visibleGapSize),inflateSize);if(bottomCenterRect.contains(mouseX,mouseY)){info.inBottomNSReszing=true;return info}var bottomRightRect=self._inflateRect(new spread.Rect(x+width-visibleGapSize,y+height-visibleGapSize,visibleGapSize,visibleGapSize),inflateSize);if(bottomRightRect.contains(mouseX,mouseY)){info.inBottomNWSEReszing=true;return info}info.inMoving=true;return info};_FloatingObjectRender.prototype._inflateRect=function(rect,size){var x=rect.x-size;var y=rect.y-size;var width=rect.width+2*size;var height=rect.height+2*size;return new spread.Rect(x,y,width>=0?width:0,height>=0?height:0)};return _FloatingObjectRender})();spread._FloatingObjectRender=_FloatingObjectRender;var _FloatingObjectRenderManager=(function(){function _FloatingObjectRenderManager(sheet){this._sheet=sheet;this._containerArray=new _HelperArray}_FloatingObjectRenderManager.prototype._dispose=function(){var count=this._containerArray.length;for(var i=0;i<count;i++){this._containerArray[i]._dispose()}this._containerArray.length=0};_FloatingObjectRenderManager.prototype._render=function(rowViewportIndex,columnViewportIndex,zoomFactor){if(rowViewportIndex<0||columnViewportIndex<0){return}var self=this;var floatingObjectLayoutModel=self._createViewportFloatingObjectLayoutModel(rowViewportIndex,columnViewportIndex,zoomFactor);var removedContainer=[];var i,len;for(i=0,len=self._containerArray.length;i<len;i++){if(!floatingObjectLayoutModel.find(self._containerArray[i].name)){removedContainer.push(self._containerArray[i])}}for(i=0,len=removedContainer.length;i<len;i++){var item=removedContainer[i];item._renderManager=keyword_null;self._containerArray.remove(item.name);item._dispose()}for(i=0;i<floatingObjectLayoutModel.length;i++){var layout=floatingObjectLayoutModel[i];var floatingObject=self._sheet._findFloatingObjectInternal(layout.name);var visibleGapSize=GAPSTRIPSIZE_CONST;if(floatingObject&&typeof floatingObject.borderWidth==='function'){var borderWidth=floatingObject.borderWidth(),borderStyle=floatingObject.borderStyle();if(!floatingObject._isBorderStyleWork(borderStyle)){borderWidth=0}if(borderWidth>visibleGapSize){visibleGapSize=borderWidth}}var viewportRect=self._getViewportRect(rowViewportIndex,columnViewportIndex);var contentDivBorderWidth=1;var left=layout.x-visibleGapSize-contentDivBorderWidth;var top=layout.y-visibleGapSize-contentDivBorderWidth;var width=layout.width+2*visibleGapSize+2*contentDivBorderWidth;var height=layout.height+2*visibleGapSize+2*contentDivBorderWidth;var outContainerTop=Math_max(viewportRect.y,top);var outContainerLeft=Math_max(viewportRect.x,left);var outContainerHeight=height;var outContainerWidth=width;var topOffset=visibleGapSize+contentDivBorderWidth;var leftOffset=visibleGapSize+contentDivBorderWidth;var minusGapSize=-1*visibleGapSize-contentDivBorderWidth;if(top<=0){topOffset+=(top<minusGapSize?minusGapSize:top)}if(left<=0){leftOffset+=(left<minusGapSize?minusGapSize:left)}topOffset=top-outContainerTop+topOffset;leftOffset=left-outContainerLeft+leftOffset;if(topOffset<=0){outContainerHeight+=topOffset;outContainerHeight+=minusGapSize}else if(topOffset<visibleGapSize&&topOffset>0){outContainerHeight-=(visibleGapSize-topOffset)}if(leftOffset<=0){outContainerWidth+=leftOffset;outContainerWidth+=minusGapSize}else if(leftOffset<visibleGapSize&&leftOffset>0){outContainerWidth-=(visibleGapSize-leftOffset)}var container=self._containerArray.find(layout.name);if(!container){container=new _FloatingObjectRender(self._sheet._findFloatingObjectInternal(layout.name),self._sheet);container._renderManager=self;self._containerArray.push(container)}container._layout=layout;container._rowViewportIndex=rowViewportIndex;container._columnViewportIndex=columnViewportIndex;var clipRect=new spread.Rect(viewportRect.x,viewportRect.y,viewportRect.width,viewportRect.height);container.render(new spread.Rect(outContainerLeft,outContainerTop,outContainerWidth,outContainerHeight).getIntersectRect(clipRect)||new spread.Rect(outContainerLeft,outContainerTop,0,0),new spread.Rect(leftOffset,topOffset,layout.width,layout.height))}};_FloatingObjectRenderManager.prototype.setFloatingObjectZIndex=function(name,zIndex){var contaniner=this._containerArray.find(name);if(contaniner){contaniner.setFloatingObjectZIndex(zIndex)}};_FloatingObjectRenderManager.prototype.getFloatingObjectZIndex=function(name){var contaniner=this._containerArray.find(name);if(contaniner){return contaniner.getFloatingObjectZIndex()}return-1};_FloatingObjectRenderManager.prototype.reduceZIndex=function(){var containerArray=this._containerArray;for(var index=0,length=containerArray.length;index<length;index++){var container=containerArray[index],zIndex=container.getFloatingObjectZIndex();if(zIndex!==-1){container.setFloatingObjectZIndex(zIndex-1)}}};_FloatingObjectRenderManager.prototype._getViewportRect=function(rowViewportIndex,columnViewportIndex){var sheet=this._sheet,columnLayout=sheet._getViewportColumnLayout(columnViewportIndex),x=0,y=0,width=0,height=0;if(columnLayout&&columnLayout.length>0){var firstColumnLayout=columnLayout[0],lastColumnLayout=columnLayout[columnLayout.length-1];x=firstColumnLayout.x;width=lastColumnLayout.x+lastColumnLayout.width-x}var rowLayout=sheet._getViewportRowLayout(rowViewportIndex);if(rowLayout&&rowLayout.length>0){var firstRowLayout=rowLayout[0],lastRowLayout=rowLayout[rowLayout.length-1];y=firstRowLayout.y;height=lastRowLayout.y+lastRowLayout.height-y}var layout=sheet._getSheetLayout();var rect=layout.viewportRect(rowViewportIndex,columnViewportIndex);x=rect.x<x?x:rect.x;y=rect.y<y?y:rect.y;width=rect.width<width?rect.width:width;height=rect.height<height?rect.height:height;return new spread.Rect(x,y,width,height)};_FloatingObjectRenderManager.prototype._createViewportFloatingObjectLayoutModel=function(rowViewportIndex,columnViewportIndex,zoomFactor){var self=this,sheet=self._sheet;var model=new _HelperArray;var len=sheet._floatingObjectArray.length;if(sheet._floatingObjectArray.length===0){return model}var sheetLayout=sheet._getSheetLayout();var viewportRect=self._getViewportRect(rowViewportIndex,columnViewportIndex);var viewportTopLeftCoordinate=self._getViewportTopLeftCoordinates(rowViewportIndex,columnViewportIndex,zoomFactor);for(var i=0;i<len;i++){var item=sheet._floatingObjectArray[i];if(item.isVisible()){var x=0;for(var column=0;column<item.startColumn();column++){x+=Math_floor(sheet.getColumnWidth(column,3)*zoomFactor)}x+=item.startColumnOffset()*zoomFactor;var y=0;for(var row=0;row<item.startRow();row++){y+=Math_floor(sheet.getRowHeight(row,3)*zoomFactor)}y+=item.startRowOffset()*zoomFactor;var width=Math_floor(item.width()*zoomFactor);var height=Math_floor(item.height()*zoomFactor);x-=viewportTopLeftCoordinate.x;y-=viewportTopLeftCoordinate.y;x+=viewportRect.x;y+=viewportRect.y;model.push(new _FloatingObjectLayout(item.name(),x,y,width,height))}}return model};_FloatingObjectRenderManager.prototype._getViewportTopLeftCoordinates=function(rowViewportIndex,columnViewportIndex,zoomFactor){var self=this,sheet=self._sheet;var sheetlayout=sheet._getSheetLayout();var topRow=sheet.getViewportTopRow(rowViewportIndex);var totalTopRowHeight=0;for(var row=0;row<topRow;row++){totalTopRowHeight+=Math_floor(sheet.getRowHeight(row,3)*zoomFactor)}var leftColumn=sheet.getViewportLeftColumn(columnViewportIndex);var totalLeftColumnWidth=0;for(var column=0;column<leftColumn;column++){totalLeftColumnWidth+=Math_floor(sheet.getColumnWidth(column,3)*zoomFactor)}return new spread.Point(totalLeftColumnWidth,totalTopRowHeight)};return _FloatingObjectRenderManager})();spread._FloatingObjectRenderManager=_FloatingObjectRenderManager;var _FloatingObjectLayout=(function(){function _FloatingObjectLayout(name,x,y,width,height){var self=this;self.name=name;self.x=x;self.y=y;self.height=height;self.width=width}return _FloatingObjectLayout})();spread._FloatingObjectLayout=_FloatingObjectLayout;var _HelperArray=(function(_super){__extends(_HelperArray,_super);function _HelperArray(){_super.call(this)}_HelperArray.prototype.remove=function(name){for(var i=0;i<this.length;i++){if(this[i].name===name){this.splice(i,1);return}}};_HelperArray.prototype.find=function(name){for(var i=0;i<this.length;i++){if(this[i].name===name){return this[i]}}return keyword_null};_HelperArray.prototype.findByPropertyName=function(name){for(var i=0;i<this.length;i++){if(this[i]._name===name){return this[i]}}return keyword_null};return _HelperArray})(spread._XArray);spread._HelperArray=_HelperArray})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var __extends=this.__extends||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __};var wijmo;(function(wijmo){(function(spread){spread.feature("sparklineEx",["core.theme"]);var keyword_null=null,Math_floor=Math.floor,Math_PI=Math.PI,Math_sin=Math.sin,Math_cos=Math.cos,Math_min=Math.min,Math_max=Math.max,Math_round=Math.round,Math_pow=Math.pow,Math_sqrt=Math.sqrt,const_undefined="undefined";var SparklineExValue=(function(){function SparklineExValue(name,value){this.name=name;this.value=value}return SparklineExValue})();spread.SparklineExValue=SparklineExValue;var SparklineEx=(function(){function SparklineEx(){var customFunction=this.createFunction();if(customFunction){var name=customFunction.name;var oldEvaluate=customFunction.evaluate;customFunction.evaluate=function(args){var value=oldEvaluate.call(this,args);if(value){return new SparklineExValue(name,value)}return keyword_null};this._name=name;if(name&&!spread.Calc.Functions.findGlobalFunction(name)){spread.Calc.Functions._customFunctions[name]=customFunction}}}SparklineEx.prototype.name=function(){return this._name};SparklineEx.prototype.createFunction=function(){return keyword_null};SparklineEx.prototype._paintSparkline=function(context,value,x,y,width,height,sheet){this.paint(context,value,x,y,width,height)};SparklineEx.prototype.paint=function(context,value,x,y,width,height){};return SparklineEx})();spread.SparklineEx=SparklineEx;var PieSparklineValue=(function(){function PieSparklineValue(values,colors){this.values=values;this.colors=colors}return PieSparklineValue})();spread.PieSparklineValue=PieSparklineValue;var PieSparkline=(function(_super){__extends(PieSparkline,_super);function PieSparkline(){_super.call(this)}PieSparkline.prototype._getValuesFromReference=function(reference){var resultArray=[];if(reference instanceof spread.Calc.Reference){var rangesCount=reference.getRangeCount();for(var i=0;i<rangesCount;i++){var rowCount=reference.getRowCount(i),colCount=reference.getColumnCount(i);for(var r=0;r<rowCount;r++){for(var c=0;c<colCount;c++){resultArray.push(reference.getValue(i,r,c))}}}}else if(reference!==keyword_null&&typeof(reference)!==const_undefined){resultArray.push(reference)}return resultArray};PieSparkline.prototype.createFunction=function(){if(!spread.util.hasCalc()){return keyword_null}var func=new spread.Calc.Functions.Function("PIESPARKLINE",1,255);var self=this;func.evaluate=function(args){var values=self._getValuesFromReference(args[0]),colors=Array.prototype.slice.call(args,1);return new PieSparklineValue(values,colors)};func.acceptsReference=function(argIndex){return argIndex===0};return func};PieSparkline.prototype._fixValues=function(values){var newValues=[],temp;for(var i=0,j=0,length=values.length;i<length;i++){temp=values[i];if(temp!==keyword_null&&typeof(temp)!==const_undefined&&!isNaN(temp)&&isFinite(temp)){if(temp<0){temp=-temp}newValues[j++]=temp}else
{newValues[j++]=0}}if(values.length===1&&newValues.length===1){newValues[1]=1-newValues[0]}return newValues};PieSparkline.prototype._fixColors=function(valueCount,colors){var newColors=[],colorCount=colors.length;if(valueCount<=colorCount){newColors=colors.slice(0,valueCount)}else
{if(colorCount===0){newColors.push("darkgray");colorCount=1}else
{newColors=colors.slice(0)}var baseColors=[],color,r,g,b,len=valueCount-colorCount+1;for(var i=0;i<colorCount;i++){baseColors[i]=spread._Color.parse(newColors[i])}for(var i=colorCount;i<valueCount;i++){color=baseColors[i%colorCount];r=color.r;g=color.g;b=color.b;r-=(r/len)*(i/colorCount);g-=(g/len)*(i/colorCount);b-=(b/len)*(i/colorCount);newColors[i]=new spread._Color(255,Math_floor(r),Math_floor(g),Math_floor(b)).toString()}}return newColors};PieSparkline.prototype.paint=function(context,value,x,y,width,height){var centerX=x+width/2,centerY=y+height/2,margin=5,radius=Math_min(width,height)/2-margin,fromAngle=-0.5*Math_PI,toAngle,XOnCircle=centerX+radius*Math_cos(fromAngle),YOnCircle=centerY+radius*Math_sin(fromAngle),XOnCircleCacheArray=[],YOnCircleCacheArray=[];var values=this._fixValues(value.values),length=values.length,colors=this._fixColors(length,value.colors);var sum=0;for(var i=0;i<length;i++){sum+=values[i]}context.save();for(var i=0;i<length;i++){toAngle=fromAngle+values[i]/sum*2*Math_PI;context.beginPath();context.moveTo(centerX,centerY);context.lineTo(XOnCircle,YOnCircle);context.arc(centerX,centerY,radius,fromAngle,toAngle,false);context.lineTo(centerX,centerY);context.fillStyle=colors[i];context.fill();XOnCircleCacheArray.push(XOnCircle);YOnCircleCacheArray.push(YOnCircle);fromAngle=toAngle;XOnCircle=centerX+radius*Math_cos(fromAngle);YOnCircle=centerY+radius*Math_sin(fromAngle)}context.strokeStyle="white";for(var i=0;i<length;i++){context.beginPath();context.moveTo(centerX,centerY);context.lineTo(XOnCircleCacheArray[i],YOnCircleCacheArray[i]);context.stroke()}context.restore()};return PieSparkline})(SparklineEx);spread.PieSparkline=PieSparkline;var AreaPoint=(function(){function AreaPoint(x,y,value){this.x=x;this.y=y;this.value=value}return AreaPoint})();var AreaSparklineValue=(function(){function AreaSparklineValue(points,mini,maxi,line1,line2,colorPositive,colorNegative){var self=this;self.points=points;self.mini=mini;self.maxi=maxi;self.line1=line1;self.line2=line2;self.colorPositive=colorPositive;self.colorNegative=colorNegative}return AreaSparklineValue})();spread.AreaSparklineValue=AreaSparklineValue;var AreaSparkline=(function(_super){__extends(AreaSparkline,_super);function AreaSparkline(){_super.call(this)}AreaSparkline.prototype._getValuesFromReference=function(reference){var resultArray=[];if(reference instanceof spread.Calc.Reference){var rangesCount=reference.getRangeCount();for(var i=0;i<rangesCount;i++){var rowCount=reference.getRowCount(i),colCount=reference.getColumnCount(i);for(var r=0;r<rowCount;r++){for(var c=0;c<colCount;c++){resultArray.push(reference.getValue(i,r,c))}}}}return resultArray};AreaSparkline.prototype.createFunction=function(){if(!spread.util.hasCalc()){return keyword_null}var func=new spread.Calc.Functions.Function("AREASPARKLINE",1,7);var self=this;func.evaluate=function(args){var points=self._getValuesFromReference(args[0]),mini=args[1],maxi=args[2],line1=args[3],line2=args[4],colorPositive=args[5],colorNegative=args[6];return new AreaSparklineValue(points,mini,maxi,line1,line2,colorPositive,colorNegative)};func.acceptsReference=function(argIndex){return argIndex===0};return func};AreaSparkline.prototype._fixValues=function(values){var newValues=[],temp;for(var i=0,j=0,length=values.length;i<length;i++){temp=values[i];if(temp!==keyword_null&&typeof(temp)!==const_undefined&&!isNaN(temp)&&isFinite(temp)){newValues[j++]=temp}else
{newValues[j++]=0}}return newValues};AreaSparkline.prototype._rangeMin=function(array){var min=array[0],temp;for(var i=1,length=array.length;i<length;i++){temp=array[i];if(min>temp){min=temp}}return min};AreaSparkline.prototype._rangeMax=function(array){var max=array[0],temp;for(var i=1,length=array.length;i<length;i++){temp=array[i];if(max<temp){max=temp}}return max};AreaSparkline.prototype._getXInStraightLine=function(x1,y1,x2,y2,y){return((y1-y)*x2+(y-y2)*x1)/(y1-y2)};AreaSparkline.prototype.paint=function(context,value,x,y,width,height){context.save();var self=this;var points=value.points,mini=value.mini,maxi=value.maxi,line1=value.line1,line2=value.line2,colorPositive=value.colorPositive,colorNegative=value.colorNegative,margin=5,line1Position,line2Position,minTag,maxTag,sngMin,sngMax,line1Value,line2Value,threshold,pointsCount,plotLeft,plotTop,plotWidth,plotHeight,sngIntvX,sngIntvY,adjustY;points=self._fixValues(points);if(colorPositive===keyword_null||typeof(colorPositive)===const_undefined){colorPositive="#787878"}if(colorNegative===keyword_null||typeof(colorNegative)==const_undefined){colorNegative="#CB0000"}minTag=self._rangeMin(points);if(mini===keyword_null||typeof(mini)===const_undefined){mini=minTag}sngMin=Math_min(mini,minTag);maxTag=self._rangeMax(points);if(maxi===keyword_null||typeof(maxi)===const_undefined){maxi=maxTag}sngMax=Math_max(maxi,maxTag);threshold=0;if(sngMin>0){sngMin=0}if(sngMax<0){sngMax=0}if(threshold>sngMax){threshold=sngMax}if(threshold<sngMin){threshold=sngMin-1}pointsCount=points.length;plotLeft=x+margin;plotTop=y+margin;plotWidth=width-2*margin;plotHeight=height-2*margin;sngIntvX=plotWidth/(pointsCount-1);sngIntvY=(sngMax-sngMin)/plotHeight;var polyArray=[],currentPoint,poly,prevPoly,thresholdX,thresholdY=plotTop+(sngMax-threshold)/sngIntvY,currentPointX,currentPointY;for(var i=0;i<pointsCount;i++){currentPoint=points[i];currentPointX=plotLeft+sngIntvX*i;currentPointY=plotTop+(sngMax-currentPoint)/sngIntvY;if(i===0){polyArray.push(new AreaPoint(currentPointX,thresholdY,threshold))}if(i>0){if(currentPoint*points[i-1]<0){prevPoly=polyArray[polyArray.length-1];if(prevPoly){thresholdX=self._getXInStraightLine(prevPoly.x,prevPoly.y,currentPointX,currentPointY,thresholdY);polyArray.push(new AreaPoint(thresholdX,thresholdY,threshold))}}}polyArray.push(new AreaPoint(currentPointX,currentPointY,currentPoint));if(i===pointsCount-1){polyArray.push(new AreaPoint(currentPointX,thresholdY,threshold))}}context.beginPath();for(var k=0,polyArrayLength=polyArray.length;k<polyArrayLength;k++){poly=polyArray[k];if(poly){context.lineTo(poly.x,poly.y);prevPoly=polyArray[k-1];if(poly.value===threshold&&prevPoly){context.fillStyle=prevPoly.value>threshold?colorPositive:colorNegative;context.fill();if(k!==polyArrayLength-1){context.beginPath();context.lineTo(poly.x,poly.y)}}}}if(line1!==keyword_null||typeof(line1)===const_undefined){line1Value=line1;if(line1Value>sngMax){line1Value=sngMax}if(line1Value<sngMin){line1Value=sngMin}adjustY=sngIntvY!==0?(sngMax-line1Value)/sngIntvY:plotHeight/2;line1Position=Math_round(plotTop+adjustY)-0.5;context.beginPath();context.moveTo(plotLeft,line1Position);context.lineTo(plotLeft+plotWidth,line1Position);context.strokeStyle="blue";context.stroke()}if(line2!==keyword_null||typeof(line2)===const_undefined){line2Value=line2;if(line2Value>sngMax){line2Value=sngMax}if(line2Value<sngMin){line2Value=sngMin}adjustY=sngIntvY!==0?(sngMax-line2Value)/sngIntvY:plotHeight/2;line2Position=Math_round(plotTop+adjustY)-0.5;context.beginPath();context.moveTo(plotLeft,line2Position);context.lineTo(plotLeft+plotWidth,line2Position);context.strokeStyle="blue";context.stroke()}context.restore()};return AreaSparkline})(SparklineEx);spread.AreaSparkline=AreaSparkline;var ScatterPoint=(function(){function ScatterPoint(x,y){this.x=x;this.y=y}return ScatterPoint})();var ScatterSparklineValue=(function(){function ScatterSparklineValue(points1,points2,minX,maxX,minY,maxY,hLine,vLine,xMinZone,xMaxZone,yMinZone,yMaxZone,tags,drawSymbol,drawLines,color1,color2,dash){var self=this;self.points1=points1;self.points2=points2;self.minX=minX;self.maxX=maxX;self.minY=minY;self.maxY=maxY;self.hLine=hLine;self.vLine=vLine;self.xMinZone=xMinZone;self.xMaxZone=xMaxZone;self.yMinZone=yMinZone;self.yMaxZone=yMaxZone;self.tags=tags;self.drawSymbol=drawSymbol;self.drawLines=drawLines;self.color1=color1;self.color2=color2;self.dash=dash}return ScatterSparklineValue})();spread.ScatterSparklineValue=ScatterSparklineValue;var ScatterSparkline=(function(_super){__extends(ScatterSparkline,_super);function ScatterSparkline(){_super.call(this)}ScatterSparkline.prototype._getValuesFromReference=function(reference){var resultArray=[];if(reference instanceof spread.Calc.Reference){var rangesCount=reference.getRangeCount();if(rangesCount>0){var rowCount=reference.getRowCount(0),colCount=reference.getColumnCount(0);for(var r=0;r<rowCount;r++){resultArray[r]=[];for(var c=0;c<colCount;c++){resultArray[r].push(reference.getValue(0,r,c))}}}}return resultArray};ScatterSparkline.prototype.createFunction=function(){if(!spread.util.hasCalc()){return keyword_null}var func=new spread.Calc.Functions.Function("SCATTERSPARKLINE",1,18);var self=this;func.evaluate=function(args){var points1=self._getValuesFromReference(args[0]),points2=self._getValuesFromReference(args[1]),minX=args[2],maxX=args[3],minY=args[4],maxY=args[5],hLine=args[6],vLine=args[7],xMinZone=args[8],xMaxZone=args[9],yMinZone=args[10],yMaxZone=args[11],tags=args[12],drawSymbol=args[13],drawLines=args[14],color1=args[15],color2=args[16],dash=args[17];return new ScatterSparklineValue(points1,points2,minX,maxX,minY,maxY,hLine,vLine,xMinZone,xMaxZone,yMinZone,yMaxZone,tags,drawSymbol,drawLines,color1,color2,dash)};func.acceptsReference=function(argIndex){return argIndex===0||argIndex===1};return func};ScatterSparkline.prototype._getScatterPoints=function(points){var scatterPoints=[],rowCount,colCount;rowCount=points.length;if(rowCount>0){colCount=points[0].length;if(rowCount<colCount){if(rowCount>=2){for(var c=0;c<colCount;c++){scatterPoints.push(new ScatterPoint(points[0][c],points[1][c]))}}}else
{if(colCount>=2){for(var r=0;r<rowCount;r++){scatterPoints.push(new ScatterPoint(points[r][0],points[r][1]))}}}}return scatterPoints};ScatterSparkline.prototype._getMinScatterPoint=function(scatterPoints){var min=new ScatterPoint(Number.MAX_VALUE,Number.MAX_VALUE),length=scatterPoints.length,point;for(var i=0;i<length;i++){point=scatterPoints[i];if(min.x>point.x){min.x=point.x}if(min.y>point.y){min.y=point.y}}return min};ScatterSparkline.prototype._getMaxScatterPoint=function(scatterPoints){var max=new ScatterPoint(-Number.MAX_VALUE,-Number.MAX_VALUE),length=scatterPoints.length,point;for(var i=0;i<length;i++){point=scatterPoints[i];if(max.x<point.x){max.x=point.x}if(max.y<point.y){max.y=point.y}}return max};ScatterSparkline.prototype._getXInStraightLine=function(x1,x2,length,totalLength){return length/totalLength*(x2-x1)+x1};ScatterSparkline.prototype._paintLine=function(context,startX,startY,endX,endY,color,isDashed){if(isDashed){var self=this;var totalLength=Math_sqrt(Math_pow(endX-startX,2)+Math_pow(endY-startY,2)),paintedLength=0,longLength=6,shortLength=2,intervalLength=4;var scatterPoints=[],minX,maxX,x,y;if(startX<=endX){minX=startX;maxX=endX;x=startX;y=startY}else
{minX=endX;maxX=startX;x=endX;y=endY}var k=(endY-startY)/(endX-startX),b=startY-k*startX;scatterPoints.push(new ScatterPoint(x,y));while(paintedLength<totalLength){paintedLength+=longLength;if(paintedLength<=totalLength){x=self._getXInStraightLine(minX,maxX,paintedLength,totalLength);y=k*x+b;scatterPoints.push(new ScatterPoint(x,y))}paintedLength+=intervalLength;if(paintedLength<=totalLength){x=self._getXInStraightLine(minX,maxX,paintedLength,totalLength);y=k*x+b;scatterPoints.push(new ScatterPoint(x,y))}paintedLength+=shortLength;if(paintedLength<=totalLength){x=self._getXInStraightLine(minX,maxX,paintedLength,totalLength);y=k*x+b;scatterPoints.push(new ScatterPoint(x,y))}paintedLength+=intervalLength;if(paintedLength<=totalLength){x=self._getXInStraightLine(minX,maxX,paintedLength,totalLength);y=k*x+b;scatterPoints.push(new ScatterPoint(x,y))}}context.strokeStyle=color;for(var i=0,point,length=scatterPoints.length;i<length-1;i+=2){context.beginPath();point=scatterPoints[i];context.moveTo(point.x,point.y);point=scatterPoints[i+1];context.lineTo(point.x,point.y);context.stroke()}}else
{context.beginPath();context.moveTo(startX,startY);context.lineTo(endX,endY);context.strokeStyle=color;context.stroke()}};ScatterSparkline.prototype.paint=function(context,value,x,y,width,height){var self=this;var points1=value.points1,points2=value.points2,minX=value.minX,maxX=value.maxX,minY=value.minY,maxY=value.maxY,hLine=value.hLine,vLine=value.vLine,xMinZone=value.xMinZone,xMaxZone=value.xMaxZone,yMinZone=value.yMinZone,yMaxZone=value.yMaxZone,tags=value.tags,drawSymbol=value.drawSymbol,drawLines=value.drawLines,color1=value.color1,color2=value.color2,dash=value.dash,symbolSize=4,margin=5,plotLeft=x+margin,plotTop=y+margin,plotWidth=width-2*margin,plotHeight=height-2*margin,scatterPoints1,scatterPoints2,dblMinY,dblMaxY,dblMinX,dblMaxX,i,point,length,dblXLeft,dblYLeft,dblXRight,dblYRight,saveX,saveY,saveX2,saveY2,tagMinX,tagMinY,tagMaxX,tagMaxY,linePosition;if(!points1||points1.length<=0){return}scatterPoints1=self._getScatterPoints(points1);if(scatterPoints1.length<=0){return}if(points2&&points2.length>0){scatterPoints2=self._getScatterPoints(points2);if(scatterPoints2.length<=0){return}}context.save();context.rect(x,y,width,height);context.clip();context.beginPath();if(drawSymbol===keyword_null||typeof(drawSymbol)===const_undefined){drawSymbol=true}if(color1===keyword_null||typeof(color1)===const_undefined){color1="#969696"}if(color2===keyword_null||typeof(color2)===const_undefined){color2="#CB0000"}if(minY!==keyword_null&&typeof(minY)!==const_undefined){dblMinY=minY}else
{dblMinY=self._getMinScatterPoint(scatterPoints1).y}if(maxY!==keyword_null&&typeof(maxY)!==const_undefined){dblMaxY=maxY}else
{dblMaxY=self._getMaxScatterPoint(scatterPoints1).y}if(minX!==keyword_null&&typeof(minX)!==const_undefined){dblMinX=minX}else
{dblMinX=self._getMinScatterPoint(scatterPoints1).x}if(maxX!==keyword_null&&typeof(maxX)!==const_undefined){dblMaxX=maxX}else
{dblMaxX=self._getMaxScatterPoint(scatterPoints1).x}if(dblMinX>=dblMaxX){dblMaxX=dblMinX+1}if(dblMinY>=dblMaxY){dblMaxY=dblMinY+1}if(xMinZone!==keyword_null&&typeof(xMinZone)!==const_undefined&&xMaxZone!==keyword_null&&typeof(xMaxZone)!==const_undefined&&yMinZone!==keyword_null&&typeof(yMinZone)!==const_undefined&&yMaxZone!==keyword_null&&typeof(yMaxZone)!==const_undefined&&dblMinX<=xMinZone&&xMinZone<=dblMaxX&&dblMinX<=xMaxZone&&xMaxZone<=dblMaxX&&dblMinY<=yMinZone&&yMinZone<=dblMaxY&&dblMinY<=yMaxZone&&yMaxZone<=dblMaxY){var zoneLeft=Math_max(dblMinX,xMinZone),zoneRight=Math_min(dblMaxX,xMaxZone),zoneBottom=Math_max(dblMinY,yMinZone),zoneTop=Math_min(dblMaxY,yMaxZone);if(zoneLeft>=zoneRight){zoneRight=zoneLeft+1}if(zoneBottom>=zoneTop){zoneTop=zoneBottom+1}context.beginPath();context.fillStyle="#DCDCDC";context.fillRect(plotLeft+(zoneLeft-dblMinX)*plotWidth/(dblMaxX-dblMinX),plotTop+(dblMaxY-zoneTop)*plotHeight/(dblMaxY-dblMinY),(zoneRight-zoneLeft)*plotWidth/(dblMaxX-dblMinX),(zoneTop-zoneBottom)*plotHeight/(dblMaxY-dblMinY))}tagMinX=-Number.MAX_VALUE;tagMinY=-Number.MAX_VALUE;tagMaxX=Number.MAX_VALUE;tagMaxY=Number.MAX_VALUE;for(i=0,length=scatterPoints1.length;i<length-1;i++){point=scatterPoints1[i];dblXLeft=point.x;dblYLeft=point.y,point=scatterPoints1[i+1];dblXRight=point.x,dblYRight=point.y;saveX=plotLeft+(dblXLeft-dblMinX)*plotWidth/(dblMaxX-dblMinX);saveX2=plotLeft+(dblXRight-dblMinX)*plotWidth/(dblMaxX-dblMinX);saveY=plotTop+(dblMaxY-dblYLeft)*plotHeight/(dblMaxY-dblMinY);saveY2=plotTop+(dblMaxY-dblYRight)*plotHeight/(dblMaxY-dblMinY);if(drawLines){self._paintLine(context,saveX,saveY,saveX2,saveY2,color1,dash)}if(drawSymbol){if(i===0){context.beginPath();context.strokeStyle=color1;context.arc(saveX-symbolSize/2,saveY-symbolSize/2,symbolSize/2,0,Math_PI*2,false);context.stroke()}context.beginPath();context.strokeStyle=color1;context.arc(saveX2-symbolSize/2,saveY2-symbolSize/2,symbolSize/2,0,Math_PI*2,false);context.stroke()}if(tags){if(i===0){if(saveY>tagMinY){tagMinX=saveX;tagMinY=saveY}if(saveY<tagMaxY){tagMaxX=saveX;tagMaxY=saveY}}if(saveY2>tagMinY){tagMinX=saveX2;tagMinY=saveY2}if(saveY2<tagMaxY){tagMaxX=saveX2;tagMaxY=saveY2}}}if(points2&&points2.length>0){if(minY===keyword_null||typeof(minY)===const_undefined){dblMinY=self._getMinScatterPoint(scatterPoints2).y}if(maxY===keyword_null||typeof(maxY)===const_undefined){dblMaxY=self._getMaxScatterPoint(scatterPoints2).y}if(minX===keyword_null||typeof(minX)===const_undefined){dblMinX=self._getMinScatterPoint(scatterPoints2).x}if(maxX===keyword_null||typeof(maxX)===const_undefined){dblMaxX=self._getMaxScatterPoint(scatterPoints2).x}if(dblMinX>=dblMaxX){dblMaxX=dblMinX+1}if(dblMinY>=dblMaxY){dblMaxY=dblMinY+1}for(i=0,length=scatterPoints2.length;i<length-1;i++){point=scatterPoints2[i];dblXLeft=point.x;dblYLeft=point.y,point=scatterPoints2[i+1];dblXRight=point.x,dblYRight=point.y;saveX=plotLeft+(dblXLeft-dblMinX)*plotWidth/(dblMaxX-dblMinX);saveX2=plotLeft+(dblXRight-dblMinX)*plotWidth/(dblMaxX-dblMinX);saveY=plotTop+(dblMaxY-dblYLeft)*plotHeight/(dblMaxY-dblMinY);saveY2=plotTop+(dblMaxY-dblYRight)*plotHeight/(dblMaxY-dblMinY);if(drawLines){self._paintLine(context,saveX,saveY,saveX2,saveY2,color2,dash)}if(drawSymbol){if(i===0){context.beginPath();context.strokeStyle=color2;context.strokeRect(saveX-symbolSize/2,saveY-symbolSize/2,symbolSize,symbolSize)}context.beginPath();context.strokeStyle=color2;context.strokeRect(saveX2-symbolSize/2,saveY2-symbolSize/2,symbolSize,symbolSize)}}}if(tags){context.beginPath();context.arc(tagMinX-symbolSize/2,tagMinY-symbolSize/2,symbolSize/2,0,Math_PI*2,false);context.fillStyle="#CB0000";context.fill();context.beginPath();context.arc(tagMaxX-symbolSize/2,tagMaxY-symbolSize/2,symbolSize/2,0,Math_PI*2,false);context.fillStyle="#0000FF";context.fill()}if(hLine!==keyword_null&&typeof(hLine)!==const_undefined){if(dblMinY<=hLine&&hLine<=dblMaxY){linePosition=plotTop+(dblMaxY-hLine)*plotHeight/(dblMaxY-dblMinY);self._paintLine(context,plotLeft,linePosition,plotLeft+plotWidth,linePosition,"#CB0000")}}if(vLine!==keyword_null&&typeof(vLine)!==const_undefined){if(dblMinX<=vLine&&vLine<=dblMaxX){linePosition=plotLeft+(vLine-dblMinX)*plotWidth/(dblMaxX-dblMinX);self._paintLine(context,linePosition,plotTop,linePosition,plotTop+plotHeight,"#CB0000")}}context.restore()};return ScatterSparkline})(SparklineEx);spread.ScatterSparkline=ScatterSparkline;var CompatibleSparkline=(function(_super){__extends(CompatibleSparkline,_super);function CompatibleSparkline(){_super.call(this)}CompatibleSparkline.prototype._getValuesFromReference=function(reference){var resultArray=[];if(reference instanceof spread.Calc.Reference){var rangesCount=reference.getRangeCount();if(rangesCount>0){var rowCount=reference.getRowCount(0),colCount=reference.getColumnCount(0);for(var r=0;r<rowCount;r++){resultArray[r]=[];for(var c=0;c<colCount;c++){resultArray[r].push(reference.getValue(0,r,c))}}}}return resultArray};CompatibleSparkline.prototype._parseSetting=function(jsonSetting){var setting={},inBracket=false,inProperty=true,property="",value="";if(jsonSetting){jsonSetting=jsonSetting.substr(1,jsonSetting.length-2);for(var i=0,len=jsonSetting.length;i<len;i++){var char=jsonSetting.charAt(i);if(char===":"){inProperty=false}else if(char===","&&!inBracket){setting[property]=value;property="";value="";inProperty=true}else if(char==="\'"||char==="\""){}else
{if(char==="("){inBracket=true}else if(char===")"){inBracket=false}if(inProperty){property+=char}else
{value+=char}}}if(property){setting[property]=value}for(var p in setting){var v=setting[p];if(v!==keyword_null&&typeof(v)!==const_undefined){if(v.toUpperCase()==="TRUE"){setting[p]=true}else if(v.toUpperCase()==="FALSE"){setting[p]=false}else if(!isNaN(v)&&isFinite(v)){setting[p]=parseFloat(v)}}}}return setting};CompatibleSparkline.prototype._createCustomFunction=function(name,type){var func=new spread.Calc.Functions.Function(name,2,5);var self=this;func.evaluate=function(args){var args0=args[0];if(args0 instanceof spread.Calc.Reference){var rangesCount=args0.getRangeCount();if(rangesCount>0){var dataReference=new spread.Range(args0.getRow(0),args0.getColumn(0),args0.getRowCount(0),args0.getColumnCount(0));var dataOrientation=args[1];var args2=args[2],dateAxisRange,dateAxisOrientation;if(args2 instanceof spread.Calc.Reference){rangesCount=args2.getRangeCount();if(rangesCount>0){dateAxisRange=new spread.Range(args2.getRow(0),args2.getColumn(0),args2.getRowCount(0),args2.getColumnCount(0));dateAxisOrientation=args[3]}}var setting=new spread.SparklineSetting,jsonSetting=args[4];if(jsonSetting){var obj=self._parseSetting(jsonSetting);var actualProp;var dict={AXISCOLOR:"_axisColor",FIRSTMARKERCOLOR:"_firstMarkerColor",HIGHMARKERCOLOR:"_highMarkerColor",LASTMARKERCOLOR:"_lastMarkerColor",LOWMARKERCOLOR:"_lowMarkerColor",MARKERSCOLOR:"_markersColor",NEGATIVECOLOR:"_negativeColor",SERIESCOLOR:"_seriesColor",DISPLAYEMPTYCELLSAS:"displayEmptyCellsAs",RIGHTTOLEFT:"rightToLeft",DISPLAYHIDDEN:"displayHidden",DISPLAYXAXIS:"displayXAxis",SHOWFIRST:"_showFirst",SHOWHIGH:"_showHigh",SHOWLAST:"_showLast",SHOWLOW:"_showLow",SHOWNEGATIVE:"_showNegative",SHOWMARKERS:"_showMarkers",MANUALMAX:"manualMax",MANUALMIN:"manualMin",MAXAXISTYPE:"maxAxisType",MINAXISTYPE:"minAxisType",LINEWEIGHT:"lineWeight"};for(var prop in obj){if(prop){actualProp=dict[prop.toUpperCase()];if(actualProp){setting[actualProp]=obj[prop]}}}var shortDict={AC:"_axisColor",FMC:"_firstMarkerColor",HMC:"_highMarkerColor",LASTMC:"_lastMarkerColor",LOWMC:"_lowMarkerColor",MC:"_markersColor",NC:"_negativeColor",SC:"_seriesColor",DECA:"displayEmptyCellsAs",RTL:"rightToLeft",DH:"displayHidden",DXA:"displayXAxis",SF:"_showFirst",SH:"_showHigh",SLAST:"_showLast",SLOW:"_showLow",SN:"_showNegative",SM:"_showMarkers",MMAX:"manualMax",MMIN:"manualMin",MAXAT:"maxAxisType",MINAT:"minAxisType",LW:"lineWeight"};for(var prop in obj){if(prop){actualProp=shortDict[prop.toUpperCase()];if(actualProp){setting[actualProp]=obj[prop]}}}if(setting.maxAxisType===1){setting.maxAxisType=0}if(setting.minAxisType===1){setting.minAxisType=0}setting.rightToLeft=!!setting.rightToLeft;setting.displayHidden=!!setting.displayHidden;setting.displayXAxis=!!setting.displayXAxis;setting._showFirst=!!setting._showFirst;setting._showHigh=!!setting._showHigh;setting._showLast=!!setting._showLast;setting._showLow=!!setting._showLow;setting._showNegative=!!setting._showNegative;setting._showMarkers=!!setting._showMarkers}var sparkline=new spread.SparklineValue(-1,-1,dataReference,dataOrientation,type,setting);if(dateAxisRange&&typeof(dateAxisOrientation)!==const_undefined&&dateAxisOrientation!==keyword_null){sparkline.dateAxisData(dateAxisRange);sparkline.dateAxisOrientation(dateAxisOrientation);sparkline.group().displayDateAxis=true}sparkline.cachedValues=self._getValuesFromReference(args0);sparkline.cachedDatetimes=self._getValuesFromReference(args2);return sparkline}}};func.acceptsReference=function(argIndex){return argIndex===0||argIndex===2};return func};CompatibleSparkline.prototype._fixValues=function(values,sheet,displayHidden,range,orientation,isDatetime){var ret=[],isHorizontal=orientation===1;if(range){for(var i=0,count=isHorizontal?range.colCount:range.rowCount;i<count;i++){var rowOffset=isHorizontal?0:i,colOffset=isHorizontal?i:0,value=values[rowOffset][colOffset];if(!displayHidden&&(sheet.getRowHeight(range.row+rowOffset)<=0||sheet.getColumnWidth(range.col+colOffset)<=0)){value=NaN}else
{if(value!==keyword_null&&typeof(value)!==const_undefined){if(isDatetime){if(typeof value==='number'){value=spread._DateTimeHelper.fromOADate(value)}else
{value=Date.parse(value)}}else if(typeof value!=='number'){value=spread.__invalidValuePlaceHolder}}}ret.push(value)}}return ret};CompatibleSparkline.prototype._paintSparkline=function(context,value,x,y,width,height,sheet){if(!spread.features.sparkline){return}var sparkline=value,cachedValues=sparkline.cachedValues,cachedDatetimes=sparkline.cachedDatetimes,zoomFactor=sheet._zoomFactor,render=new spread.SparklineRender(sparkline),setting=sparkline.setting(),displayHidden=setting.displayHidden;cachedValues=this._fixValues(cachedValues,sheet,displayHidden,sparkline.data(),sparkline.dataOrientation());cachedDatetimes=this._fixValues(cachedDatetimes,sheet,displayHidden,sparkline.dateAxisData(),sparkline.dateAxisOrientation(),true);setting._setThemeContext(sheet);render._paintCore(context,x,y,width,height,cachedValues,cachedDatetimes,zoomFactor)};return CompatibleSparkline})(SparklineEx);spread.CompatibleSparkline=CompatibleSparkline;var LineSparkline=(function(_super){__extends(LineSparkline,_super);function LineSparkline(){_super.apply(this,arguments)}LineSparkline.prototype.createFunction=function(){if(!spread.util.hasCalc()||!spread.features.sparkline){return keyword_null}return _super.prototype._createCustomFunction.call(this,"LINESPARKLINE",0)};return LineSparkline})(CompatibleSparkline);spread.LineSparkline=LineSparkline;var ColumnSparkline=(function(_super){__extends(ColumnSparkline,_super);function ColumnSparkline(){_super.apply(this,arguments)}ColumnSparkline.prototype.createFunction=function(){if(!spread.util.hasCalc()||!spread.features.sparkline){return keyword_null}return _super.prototype._createCustomFunction.call(this,"COLUMNSPARKLINE",1)};return ColumnSparkline})(CompatibleSparkline);spread.ColumnSparkline=ColumnSparkline;var WinlossSparkline=(function(_super){__extends(WinlossSparkline,_super);function WinlossSparkline(){_super.apply(this,arguments)}WinlossSparkline.prototype.createFunction=function(){if(!spread.util.hasCalc()||!spread.features.sparkline){return keyword_null}return _super.prototype._createCustomFunction.call(this,"WINLOSSSPARKLINE",2)};return WinlossSparkline})(CompatibleSparkline);spread.WinlossSparkline=WinlossSparkline})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("comment",["core.common","core.sheet_action"]);var keyword_null=null,keyword_undefined=undefined,Math_max=Math.max,Math_min=Math.min,Math_floor=Math.floor,Math_atan2=Math.atan2,Math_abs=Math.abs;(function(DisplayMode){DisplayMode[DisplayMode["AlwaysShown"]=1]="AlwaysShown";DisplayMode[DisplayMode["HoverShown"]=2]="HoverShown"})(spread.DisplayMode||(spread.DisplayMode={}));var DisplayMode=spread.DisplayMode;var Padding=(function(){function Padding(top,right,bottom,left){this.left=0;this.top=0;this.right=0;this.bottom=0;var self=this;if(arguments.length===1){self.top=self.right=self.bottom=self.left=top;;}else if(arguments.length===4){self.top=top;self.right=right;self.bottom=bottom;self.left=left}}Padding.prototype.toString=function(){var self=this;return self.top+"px "+self.right+"px "+self.bottom+"px "+self.left+"px"};return Padding})();spread.Padding=Padding;(function(ResizeDirection){ResizeDirection[ResizeDirection["TopLeft"]=0]="TopLeft";ResizeDirection[ResizeDirection["TopRight"]=1]="TopRight";ResizeDirection[ResizeDirection["BottomLeft"]=2]="BottomLeft";ResizeDirection[ResizeDirection["BottomRight"]=3]="BottomRight";ResizeDirection[ResizeDirection["MiddleLeft"]=4]="MiddleLeft";ResizeDirection[ResizeDirection["MiddleRight"]=5]="MiddleRight";ResizeDirection[ResizeDirection["TopCenter"]=6]="TopCenter";ResizeDirection[ResizeDirection["BottomCenter"]=7]="BottomCenter"})(spread.ResizeDirection||(spread.ResizeDirection={}));var ResizeDirection=spread.ResizeDirection;var Comment=(function(){function Comment(){var self=this;self._defaultLocation=new spread.Point(9,-18);self._text="";self._location=self._defaultLocation;self._displayMode=2;self._commentState=3;self._width=160;self._height=100;self._fontFamily="Arial";self._fontStyle="normal";self._fontSize="9pt";self._fontWeight="normal";self._textDecoration=0;self._foreColor="black";self._backColor="#FFFFE1";self._opacity=1;self._locked=true;self._lockText=true;self._dynamicMove=true;self._dynamicSize=true;self._horizontalAlign=0;self._autoSize=false;self._borderWidth=1;self._borderStyle="solid";self._borderColor="black";self._padding=keyword_null;self._zIndex=-1;self._showShadow=false;self._timeout=keyword_null;self._rowIndex=-1;self._colIndex=-1;self._sheet=keyword_null}Comment.prototype.text=function(value){var self=this;if(arguments.length===0){return self._text}else
{if(self._text!==value){self._changeProperty("text",value)}return self}};Comment.prototype.location=function(value){var self=this;if(arguments.length===0){return self._location}else
{if(value&&self._location!==value){self._changeProperty("location",value)}return self}};Comment.prototype.width=function(value){var self=this;if(arguments.length===0){return self._width}else
{if(value>0&&self._width!==value){self._autoSize=false;self._changeProperty("width",value)}return self}};Comment.prototype.height=function(value){var self=this;if(arguments.length===0){return self._height}else
{if(value>0&&self._height!==value){self._autoSize=false;self._changeProperty("height",value)}return self}};Comment.prototype.fontFamily=function(value){var self=this;if(arguments.length===0){return self._fontFamily}else
{if(typeof value==='string'&&self._fontFamily!==value){self._changeProperty("fontFamily",value)}return self}};Comment.prototype.fontStyle=function(value){var self=this;if(arguments.length===0){return self._fontStyle}else
{if(typeof value==='string'&&self._fontStyle!==value){self._changeProperty("fontStyle",value)}return self}};Comment.prototype.fontSize=function(value){var self=this;if(arguments.length===0){return self._fontSize}else
{if(typeof value==='string'&&self._fontSize!==value){self._changeProperty("fontSize",value)}return self}};Comment.prototype.fontWeight=function(value){var self=this;if(arguments.length===0){return self._fontWeight}else
{if(typeof value==='string'&&self._fontWeight!==value){self._changeProperty("fontWeight",value)}return self}};Comment.prototype.textDecoration=function(value){var self=this;if(arguments.length===0){return self._textDecoration}else
{if(self._textDecoration!==value&&spread.TextDecorationType[value]!=keyword_undefined){self._changeProperty("textDecoration",value)}return self}};Comment.prototype.foreColor=function(value){var self=this;if(arguments.length===0){return self._foreColor}else
{if(value&&self._foreColor!==value){self._changeProperty("foreColor",value)}return self}};Comment.prototype.locked=function(value){var self=this;if(arguments.length===0){return self._locked}else
{if(typeof value==='boolean'&&self._locked!==value){self._changeProperty("locked",value)}return self}};Comment.prototype.lockText=function(value){var self=this;if(arguments.length===0){return self._lockText}else
{if(typeof value==='boolean'&&self._lockText!==value){self._changeProperty("lockText",value)}return self}};Comment.prototype.horizontalAlign=function(value){var self=this;if(arguments.length===0){return self._horizontalAlign}else
{if(self._horizontalAlign!==value&&spread.HorizontalAlign[value]!=keyword_undefined){self._changeProperty("horizontalAlign",value)}return self}};Comment.prototype.autoSize=function(value){var self=this;if(arguments.length===0){return self._autoSize}else
{if(typeof value==='boolean'&&self._autoSize!==value){self._changeProperty("autoSize",value)}return self}};Comment.prototype.dynamicSize=function(value){var self=this;if(arguments.length===0){return self._dynamicSize}else
{if(typeof value==='boolean'&&self._dynamicSize!==value){self._changeProperty("dynamicSize",value)}return self}};Comment.prototype.dynamicMove=function(value){var self=this;if(arguments.length===0){return self._dynamicMove}else
{if(typeof value==='boolean'&&self._dynamicMove!==value){self._changeProperty("dynamicMove",value)}return self}};Comment.prototype.backColor=function(value){var self=this;if(arguments.length===0){return self._backColor}else
{if(value&&self._backColor!==value){self._changeProperty("backColor",value)}return self}};Comment.prototype.opacity=function(value){var self=this;if(arguments.length===0){return self._opacity}else
{if(typeof value==='number'&&value>=0&&value<=1&&self._opacity!==value){self._changeProperty("opacity",value)}return self}};Comment.prototype.borderWidth=function(value){var self=this;if(arguments.length===0){return self._borderWidth}else
{if(typeof value==="number"&&value>0&&self._borderWidth!==value){self._changeProperty("borderWidth",value)}return self}};Comment.prototype.borderStyle=function(value){var self=this;if(arguments.length===0){return self._borderStyle}else
{if(typeof value==="string"&&self._borderStyle!==value){self._changeProperty("borderStyle",value)}return self}};Comment.prototype.borderColor=function(value){var self=this;if(arguments.length===0){return self._borderColor}else
{if(typeof value==="string"&&self._borderColor!==value){self._changeProperty("borderColor",value)}return self}};Comment.prototype.padding=function(value){var self=this;if(arguments.length===0){return self._padding}else
{if((value===null||value instanceof Padding)&&self._padding!==value){self._changeProperty("padding",value)}return self}};Comment.prototype.showShadow=function(value){var self=this;if(arguments.length===0){return self._showShadow}else
{if(typeof value==='boolean'&&self._showShadow!==value){self._changeProperty("showShadow",value)}return self}};Comment.prototype.displayMode=function(value){var self=this;if(arguments.length===0){return self._displayMode}else
{if(self._displayMode!==value&&DisplayMode[value]!==keyword_undefined){self._changeProperty("displayMode",value)}return self}};Comment.prototype.commentState=function(value){var self=this;if(arguments.length===0){return self._commentState}else
{if(self._commentState!==value&&spread.CommentState[value]!==keyword_undefined){self._changeProperty("commentState",value)}return self}};Comment.prototype.zIndex=function(value){var self=this;if(arguments.length===0){return self._zIndex}else
{if(typeof value==='number'&&self._zIndex!==value){self._changeProperty("zIndex",value)}return self}};Comment.prototype._changeProperty=function(propertyName,value){var self=this,sheet=self._sheet;var actualPropertyName="_"+propertyName;if(sheet){sheet._bindToAutoRefresh(function(propertyValue){if(self.hasOwnProperty(actualPropertyName)){self[actualPropertyName]=propertyValue}})(value)}else
{if(self.hasOwnProperty(actualPropertyName)){self[actualPropertyName]=value}}self._trigger({sheet:sheet,sheetName:sheet?sheet._name:"",comment:self,propertyName:propertyName})};Comment.prototype._trigger=function(args){if(this._sheet){this._sheet._trigger(spread.Events.CommentChanged,args)}};Comment.prototype.clone=function(){var self=this;var comment=new Comment;comment._text=self._text;comment._location=new spread.Point(self._location.x,self._location.y);if(self._defaultLocation){comment._defaultLocation=new spread.Point(self._defaultLocation.x,self._defaultLocation.y)}comment._width=self._width;comment._height=self._height;comment._fontFamily=self._fontFamily;comment._fontStyle=self._fontStyle;comment._fontSize=self._fontSize;comment._fontWeight=self._fontWeight;comment._textDecoration=self._textDecoration;comment._foreColor=self._foreColor;comment._locked=self._locked;comment._lockText=self._lockText;comment._horizontalAlign=self._horizontalAlign;comment._autoSize=self._autoSize;comment._dynamicMove=self._dynamicMove;comment._dynamicSize=self._dynamicSize;comment._backColor=self._backColor;comment._opacity=self._opacity;comment._borderWidth=self._borderWidth;comment._borderStyle=self._borderStyle;comment._borderColor=self._borderColor;if(self._padding){comment._padding=new Padding(self._padding.top,self._padding.right,self._padding.bottom,self._padding.left)}comment._showShadow=self._showShadow;comment._displayMode=self._displayMode;comment._commentState=self._commentState;comment._sheet=self._sheet;comment._rowIndex=self._rowIndex;comment._colIndex=self._colIndex;comment._zIndex=self._zIndex;return comment};Comment.prototype.toJSON=function(){var self=this;var dictData={text:self._text,location:self._location,displayMode:self._displayMode,commentState:self._commentState,width:self._width,height:self._height,fontFamily:self._fontFamily,fontStyle:self._fontStyle,fontSize:self._fontSize,fontWeight:self._fontWeight,textDecoration:self._textDecoration,foreColor:self._foreColor,backColor:self._backColor,opacity:self._opacity,locked:self._locked,lockText:self._lockText,dynamicMove:self._dynamicMove,dynamicSize:self._dynamicSize,horizontalAlign:self._horizontalAlign,autoSize:self._autoSize,borderWidth:self._borderWidth,borderStyle:self._borderStyle,borderColor:self._borderColor,padding:self._padding,zIndex:self._zIndex,showShadow:self._showShadow,rowIndex:self._rowIndex,colIndex:self._colIndex};var jsonData={};for(var item in dictData){var value=dictData[item];if(!self._isDefaultValue(item,value)){jsonData[item]=value}}return jsonData};Comment.prototype._isDefaultValue=function(propertyName,value){switch(propertyName){case"text":return value==="";case"location":return value.x===9&&value.y===-18;case"displayMode":return value===2;case"commentState":return value===3;case"width":return value===160;case"height":return value===100;case"fontFamily":return value==="Arial";case"fontStyle":return value==="normal";case"fontSize":return value==="9pt";case"fontWeight":return value==="normal";case"textDecoration":return value===0;case"foreColor":return value==="black";case"backColor":return value==="#FFFFE1";case"opacity":return value===1;case"locked":return value===true;case"lockText":return value===true;case"dynamicMove":return value===true;case"dynamicSize":return value===true;case"horizontalAlign":return value===0;case"autoSize":return value===false;case"borderWidth":return value===1;case"borderStyle":return value==="solid";case"borderColor":return value==="black";case"padding":return value===null;case"zIndex":return value===-1;case"showShadow":return value===false;case"rowIndex":return value===-1;case"colIndex":return value===-1;default:return false}};Comment.prototype.fromJSON=function(jsonData){if(!jsonData){return}var self=this;if(jsonData.text!==keyword_undefined){self._text=jsonData.text}var location=jsonData.location;if(location!==keyword_undefined){self._location=new spread.Point(location.x,location.y)}if(jsonData.displayMode!==keyword_undefined){self._displayMode=jsonData.displayMode}if(jsonData.commentState!==keyword_undefined){self._commentState=jsonData.commentState}if(jsonData.width!==keyword_undefined){self._width=jsonData.width}if(jsonData.height!==keyword_undefined){self._height=jsonData.height}if(jsonData.fontFamily!==keyword_undefined){self._fontFamily=jsonData.fontFamily}if(jsonData.fontStyle!==keyword_undefined){self._fontStyle=jsonData.fontStyle}if(jsonData.fontSize!==keyword_undefined){self._fontSize=jsonData.fontSize}if(jsonData.fontWeight!==keyword_undefined){self._fontWeight=jsonData.fontWeight}if(jsonData.textDecoration!==keyword_undefined){self._textDecoration=jsonData.textDecoration}if(jsonData.foreColor!==keyword_undefined){self._foreColor=jsonData.foreColor}if(jsonData.backColor!==keyword_undefined){self._backColor=jsonData.backColor}if(jsonData.opacity!==keyword_undefined){self._opacity=jsonData.opacity}if(jsonData.locked!==keyword_undefined){self._locked=jsonData.locked}if(jsonData.lockText!==keyword_undefined){self._lockText=jsonData.lockText}if(jsonData.dynamicMove!==keyword_undefined){self._dynamicMove=jsonData.dynamicMove}if(jsonData.dynamicSize!==keyword_undefined){self._dynamicSize=jsonData.dynamicSize}if(jsonData.horizontalAlign!==keyword_undefined){self._horizontalAlign=jsonData.horizontalAlign}if(jsonData.autoSize!==keyword_undefined){self._autoSize=jsonData.autoSize}if(jsonData.borderWidth!==keyword_undefined){self._borderWidth=jsonData.borderWidth}if(jsonData.borderStyle!==keyword_undefined){self._borderStyle=jsonData.borderStyle}if(jsonData.borderColor!==keyword_undefined){self._borderColor=jsonData.borderColor}var padding=jsonData.padding;if(padding!==keyword_undefined){self._padding=new Padding(padding.top,padding.right,padding.bottom,padding.left)}if(jsonData.zIndex!==keyword_undefined){self._zIndex=jsonData.zIndex}if(jsonData.showShadow!==keyword_undefined){self._showShadow=jsonData.showShadow}if(jsonData.rowIndex!==keyword_undefined){self._rowIndex=jsonData.rowIndex}if(jsonData.colIndex!==keyword_undefined){self._colIndex=jsonData.colIndex}};return Comment})();spread.Comment=Comment;var CommentView=(function(){function CommentView(comment,commentManager){this._rowViewportIndex=1;this._columnViewportIndex=1;var self=this,sheet=comment&&comment._sheet;self._comment=comment;self._updateCommentViewportIndex();self._zoomFactor=sheet._zoomFactor;self._commentManager=commentManager;self._editor=commentManager._editorDom;self._init();self._absLocation=self._getAbsLocation();self._updateStartCoordinate();self._updateEndCoordinate()}CommentView.prototype._init=function(){var self=this;self._commentLayoutPanel=keyword_null;self._floatBlockCanvasContainer=keyword_null;self._floatBlockCanvas=keyword_null;self._hostContainer=keyword_null;self._host=keyword_null;self._lineCanvasContainer=keyword_null;self._lineCanvas=keyword_null;self._floatBlockCanvasContainerClassName="gc-spread-floatBlockCanvas-container";self._floatBlockCanvasClassName="gc-spread-floatBlockCanvas";self._hostContainerClassName="gc-spread-host-container";self._hostClassName="gc-spread-host";self._lineCanvasContainerClassName="gc-spread-lineCanvas-container";self._lineCanvasClassName="gc-spread-lineCanvas";self._floatBlockCanvasContainer=document.createElement("div");$(self._floatBlockCanvasContainer).addClass(self._floatBlockCanvasContainerClassName).css("position","absolute").css("overflow","hidden");self._floatBlockCanvas=document.createElement("canvas");$(self._floatBlockCanvas).addClass(self._floatBlockCanvasClassName).css("left",0).css("top",0).css("position","absolute");self._hostContainer=document.createElement("div");$(self._hostContainer).addClass(self._hostContainerClassName).css("position","absolute");self._host=document.createElement("div");$(self._host).addClass(self._hostClassName).css("left",0).css("top",0).css('width','100%').css('height','100%').css("position","absolute").css("word-wrap","break-word").css("word-break","normal").css("white-space","pre-wrap").css("overflow","hidden");$(self._hostContainer).append(self._host);$(self._floatBlockCanvasContainer).append(self._floatBlockCanvas,self._hostContainer);self._lineCanvasContainer=document.createElement("div");$(self._lineCanvasContainer).addClass(self._lineCanvasContainerClassName).css("position","absolute").css("overflow","hidden");self._lineCanvas=document.createElement("canvas");$(self._lineCanvas).addClass(self._lineCanvasClassName).css("left",0).css("right",0).css("position","absolute");$(self._lineCanvasContainer).append(self._lineCanvas);self._adornerDrawState=keyword_null;self._resizeHitRects=[];self._hostMargin=7;self._isMoving=false;self._isResizing=false};CommentView.prototype.open=function(){var self=this,sheet=self._comment._sheet;if(!self._commentLayoutPanel){if(sheet){self._commentLayoutPanel=sheet._commentRender._commentLayoutPanel}if(!self._commentLayoutPanel){return}}self._commentLayoutPanel.appendChild(self._lineCanvasContainer);self._attachLineCanvasEventHandler();self._commentLayoutPanel.appendChild(self._floatBlockCanvasContainer);self._attachFloatBlockCanvasEventHandler();self._attachHostContainerEventHandler();if(self.isEditing()){self._attachEditorEventHandler()}else
{self._attachHostEventHandler()}self.updateLayout()};CommentView.prototype.close=function(){var self=this;if(self._floatBlockCanvasContainer&&self._lineCanvasContainer&&self._commentLayoutPanel){self._detachFloatBlockCanvasEventHandler();self._detachHostContainerEventHandler();self._detachHostEventHandler();self._detachLineCanvasEventHandler();self._detachEditorEventHandler();$(self._floatBlockCanvasContainer).remove();$(self._lineCanvasContainer).remove()}};CommentView.prototype.getComment=function(){return this._comment};CommentView.prototype._getActualWidth=function(){return this._comment.width()*this._zoomFactor};CommentView.prototype._getActualHeight=function(){return this._comment.height()*this._zoomFactor};CommentView.prototype._getAbsLocation=function(){var self=this,comment=self._comment;if(comment===self._commentManager.getHoverShownComment()&&comment.commentState()===3){return self._convertRelLocationToAbsLocation(comment._defaultLocation)}else
{return self._convertRelLocationToAbsLocation(comment.location())}};CommentView.prototype._convertRelLocationToAbsLocation=function(relLocation){var self=this,comment=self._comment,sheet=comment&&comment._sheet,zoomFactor=self._zoomFactor;var absLocation=keyword_null;if(sheet){var cellRect=self._getCellRect(sheet,comment._rowIndex,comment._colIndex,self._rowViewportIndex,self._columnViewportIndex);if(cellRect.x!==null&&cellRect.x!==undefined&&cellRect.y!==null&&cellRect.y!==undefined&&cellRect.width&&cellRect.height){var sheetLayout=sheet._getSheetLayout();absLocation=new spread.Point(cellRect.x+cellRect.width+relLocation.x*zoomFactor-sheetLayout.rowHeaderWidth,cellRect.y+relLocation.y*zoomFactor-sheetLayout.colHeaderHeight)}}return absLocation};CommentView.prototype._getCellRect=function(sheet,row,col,rowViewportIndex,columnViewportIndex){var self=this,rect=new spread.Rect(0,0,0,0),layout=sheet._getSheetLayout(),scrollTopRow=sheet.getViewportTopRow(rowViewportIndex),scrollLeftColumn=sheet.getViewportLeftColumn(columnViewportIndex);var smallRow=Math_min(scrollTopRow,row),bigRow=Math_max(scrollTopRow,row),smallCol=Math_min(scrollLeftColumn,col),bigCol=Math_max(scrollLeftColumn,col),x=0,y=0,zoomFactor=self._zoomFactor;;for(var i=smallRow;i<bigRow;i++){y+=sheet.getRowHeight(i,3)*zoomFactor}for(var j=smallCol;j<bigCol;j++){x+=sheet.getColumnWidth(j,3)*zoomFactor}if(row>=scrollTopRow){rect.y=y}else
{rect.y=-y}if(col>=scrollLeftColumn){rect.x=x}else
{rect.x=-x}rect.width=sheet.getColumnWidth(col)*zoomFactor;rect.height=sheet.getRowHeight(row)*zoomFactor;rect.x+=layout.rowHeaderWidth;rect.y+=layout.colHeaderHeight;if(rowViewportIndex===1){rect.y+=layout.frozenHeight}else if(rowViewportIndex===2){rect.y+=layout.frozenHeight+layout.viewportHeight}if(columnViewportIndex===1){rect.x+=layout.frozenWidth}else if(columnViewportIndex===2){rect.x+=layout.frozenWidth+layout.viewportWidth}return rect};CommentView.prototype._convertAbsLocationToRelLocation=function(absLocation){var self=this,comment=self._comment,sheet=comment&&comment._sheet,zoomFactor=self._zoomFactor;var relLocation=keyword_null;if(sheet){var cellRect=self._getCellRect(sheet,comment._rowIndex,comment._colIndex,self._rowViewportIndex,self._columnViewportIndex);if(cellRect.x!==null&&cellRect.x!==undefined&&cellRect.y!==null&&cellRect.y!==undefined&&cellRect.width&&cellRect.height){var sheetLayout=sheet._getSheetLayout();var x=(absLocation.x-(cellRect.x+cellRect.width-sheetLayout.rowHeaderWidth))/zoomFactor;var y=(absLocation.y-(cellRect.y-sheetLayout.colHeaderHeight))/zoomFactor;relLocation=new spread.Point(x,y)}}return relLocation};CommentView.prototype.updateLayoutWhenAutosizeChanged=function(){var self=this,comment=self._comment,host=self._host,style=host.style;if(comment.autoSize()&&(style.width!=="auto"||style.height!=="auto")){if(self.isEditing()){self.detachEditor()}var minHostWidth=5,minHostHeight=comment._sheet._getFontHeight(style.font);var oldWidth=$(host).width(),oldHeight=$(host).height();$(host).css("width","auto").css("height","auto").css("word-wrap","normal");var newWidth=Math_max($(host).width(),minHostWidth),newHeight=Math_max($(host).height(),minHostHeight);comment._width+=newWidth-oldWidth;comment._height+=newHeight-oldHeight}else if(!comment.autoSize()&&style.width==="auto"&&style.height==="auto"){if(self.isEditing()){self.detachEditor()}$(host).css("width",$(host).width()).css("height",$(host).height()).css("word-wrap","break-word")}self.updateLayout()};CommentView.prototype.updateLayoutWhenLocationChanged=function(){var self=this;self._absLocation=self._getAbsLocation();self._updateStartCoordinate();self._updateEndCoordinate();self.updateLayout()};CommentView.prototype.updateLayoutWhenWidthHeightChanged=function(){var self=this;self._absLocation=self._getAbsLocation();self._updateEndCoordinate()};CommentView.prototype.updateLayoutWhenRowColumnChanged=function(){var self=this,comment=self._comment;if(comment.dynamicMove()){if(comment.dynamicSize()){self._updateSizeByCoordinate();self._updateLocationByCoordinate()}else
{self._updateLocationByCoordinate();self._updateEndCoordinate()}}else
{self._updateStartCoordinate();self._updateEndCoordinate();var relativeLocation=self._convertAbsLocationToRelLocation(self._absLocation);comment.location(relativeLocation)}};CommentView.prototype.updateLayoutWhenSheetScroll=function(){var self=this;self._absLocation=self._getAbsLocation();self.updateLayout()};CommentView.prototype._updateLocationByCoordinate=function(){var self=this,comment=self._comment,sheet=comment&&comment._sheet;var absoluteLocation=self._getLocationByCoordinate();self._absLocation=absoluteLocation;comment._location=self._convertAbsLocationToRelLocation(absoluteLocation);self.updateLayout()};CommentView.prototype._getLocationByCoordinate=function(){var self=this,comment=self._comment,sheet=comment&&comment._sheet,zoomFactor=self._zoomFactor;var viewportLeftColumn=sheet.getViewportLeftColumn(self._columnViewportIndex),viewportTopRow=sheet.getViewportTopRow(self._rowViewportIndex);var viewportRect=self._getViewportRect(self._rowViewportIndex,self._columnViewportIndex);var x;if(self._columnViewportIndex===0){x=0}else if(self._columnViewportIndex===1){x=sheet.getViewportWidth(0)}else if(self._columnViewportIndex===2){x=sheet.getViewportWidth(0)+sheet.getViewportWidth(1)}for(var col=viewportLeftColumn;col<self._startColumn;col++){x+=sheet.getColumnWidth(col,3)*zoomFactor}var startColumnWidth=sheet.getColumnWidth(self._startColumn,3);if(startColumnWidth<self._startColumnOffset){self._startColumnOffset=startColumnWidth}x=x+self._startColumnOffset*zoomFactor;var y;if(self._rowViewportIndex===0){y=0}else if(self._rowViewportIndex===1){y=sheet.getViewportHeight(0)}else if(self._rowViewportIndex===2){y=sheet.getViewportHeight(0)+sheet.getViewportHeight(1)}for(var row=viewportTopRow;row<self._startRow;row++){y+=sheet.getRowHeight(row,3)*zoomFactor}var startRowHeight=sheet.getRowHeight(self._startRow,3);if(startRowHeight<self._startRowOffset){self._startRowOffset=startRowHeight}y=y+self._startRowOffset*zoomFactor;return new spread.Point(x,y)};CommentView.prototype._updateSizeByCoordinate=function(){var self=this,comment=self._comment,sheet=comment&&comment._sheet,zoomFactor=self._zoomFactor;var width=0;for(var j=self._startColumn;j<self._endColumn;j++){width+=sheet.getColumnWidth(j,3)}var startColumnWidth=sheet.getColumnWidth(self._startColumn,3);if(startColumnWidth<self._startColumnOffset){self._startColumnOffset=startColumnWidth}var endColumnWidth=sheet.getColumnWidth(self._endColumn,3);if(endColumnWidth<self._endColumnOffset){self._endColumnOffset=endColumnWidth}width=width-self._startColumnOffset+self._endColumnOffset;var height=0;for(var i=self._startRow;i<self._endRow;i++){height+=sheet.getRowHeight(i,3)}var actualStartRowWidth=sheet.getRowHeight(self._startRow,3);if(actualStartRowWidth<self._startRowOffset){self._startRowOffset=actualStartRowWidth}var actualEndRowWidth=sheet.getRowHeight(self._endRow,3);if(actualEndRowWidth<self._endRowOffset){self._endRowOffset=actualEndRowWidth}height=height-self._startRowOffset+self._endRowOffset;comment.width(width);comment.height(height)};CommentView.prototype._updateStartCoordinate=function(){var self=this,comment=self._comment,sheet=comment&&comment._sheet,zoomFactor=self._zoomFactor;if(!self._absLocation){return}var viewportRect=self._getViewportRect(self._rowViewportIndex,self._columnViewportIndex);var viewportLeftColumn=sheet.getViewportLeftColumn(self._columnViewportIndex),viewportTopRow=sheet.getViewportTopRow(self._rowViewportIndex);var startX;if(self._columnViewportIndex===0){startX=self._absLocation.x}else if(self._columnViewportIndex===1){startX=self._absLocation.x-sheet.getViewportWidth(0)}else if(self._columnViewportIndex===2){startX=self._absLocation.x-(sheet.getViewportWidth(0)+sheet.getViewportWidth(1))}var startY;if(self._rowViewportIndex===0){startY=self._absLocation.y}else if(self._rowViewportIndex===1){startY=self._absLocation.y-sheet.getViewportHeight(0)}else if(self._rowViewportIndex===2){startY=self._absLocation.y-(sheet.getViewportHeight(0)+sheet.getViewportHeight(1))}var startLocation=new spread.Point(startX,startY);var x=0,y=0;for(var col=viewportLeftColumn;col<sheet.getColumnCount();col++){var actualColWidth=sheet.getColumnWidth(col,3)*zoomFactor;if(x+actualColWidth<startLocation.x){x+=actualColWidth}else
{self._startColumn=col;self._startColumnOffset=(startLocation.x-x)/zoomFactor;break}}for(var row=viewportTopRow;row<sheet.getRowCount();row++){var actualRowHeight=sheet.getRowHeight(row,3)*zoomFactor;if(y+actualRowHeight<startLocation.y){y+=actualRowHeight}else
{self._startRow=row;self._startRowOffset=(startLocation.y-y)/zoomFactor;break}}};CommentView.prototype._updateEndCoordinate=function(){var self=this,comment=self._comment,sheet=comment&&comment._sheet,zoomFactor=self._zoomFactor;if(!self._absLocation){return}var viewportRect=self._getViewportRect(self._rowViewportIndex,self._columnViewportIndex);var viewportLeftColumn=sheet.getViewportLeftColumn(self._columnViewportIndex),viewportTopRow=sheet.getViewportTopRow(self._rowViewportIndex);var endX;if(self._columnViewportIndex===0){endX=self._absLocation.x+self._getActualWidth()}else if(self._columnViewportIndex===1){endX=self._absLocation.x+self._getActualWidth()-sheet.getViewportWidth(0)}else if(self._columnViewportIndex===2){endX=self._absLocation.x+self._getActualWidth()-(sheet.getViewportWidth(0)+sheet.getViewportWidth(1))}var endY;if(self._rowViewportIndex===0){endY=self._absLocation.y+self._getActualHeight()}else if(self._rowViewportIndex===1){endY=self._absLocation.y+self._getActualHeight()-sheet.getViewportHeight(0)}else if(self._rowViewportIndex===2){endY=self._absLocation.y+self._getActualHeight()-(sheet.getViewportHeight(0)+sheet.getViewportHeight(1))}var endLocation=new spread.Point(endX,endY);var x=0,y=0;for(var col=viewportLeftColumn;col<sheet.getColumnCount();col++){var actualColWidth=sheet.getColumnWidth(col,3)*zoomFactor;if(x+actualColWidth<endLocation.x){x+=actualColWidth}else
{self._endColumn=col;self._endColumnOffset=(endLocation.x-x)/zoomFactor;break}}for(var row=viewportTopRow;row<sheet.getRowCount();row++){var actualRowHeight=sheet.getRowHeight(row,3)*zoomFactor;if(y+actualRowHeight<endLocation.y){y+=actualRowHeight}else
{self._endRow=row;self._endRowOffset=(endLocation.y-y)/zoomFactor;break}}};CommentView.prototype.addRows=function(row,rowCount){var self=this,comment=self._comment;if(row<=self._startRow){if(comment.dynamicMove()){self._startRow+=rowCount;self._endRow+=rowCount}}else if(row>self._startRow&&row<=self._endRow){if(comment.dynamicSize()){self._endRow+=rowCount}}self._updateSizeByCoordinate();self._updateLocationByCoordinate()};CommentView.prototype.addColumns=function(column,columnCount){var self=this,comment=self._comment;if(column<=self._startColumn){if(comment.dynamicMove()){self._startColumn+=columnCount;self._endColumn+=columnCount}}else if(column>self._startColumn&&column<=self._endColumn){if(comment.dynamicSize()){self._endColumn+=columnCount}}self._updateSizeByCoordinate();self._updateLocationByCoordinate()};CommentView.prototype.removeRows=function(row,rowCount){var self=this,comment=self._comment;var endRemovedRow=row+rowCount-1;if(row<self._startRow){if(endRemovedRow<self._startRow){if(comment.dynamicMove()){self._startRow-=rowCount;self._endRow-=rowCount}}else if(endRemovedRow<self._endRow){if(comment.dynamicMove()){if(comment.dynamicSize()){self._endRow-=rowCount}else
{self._endRow-=self._startRow-row+1}self._startRow=row;self._startRowOffset=0}}}else if(row<=self._endRow){if(endRemovedRow<self._endRow){if(comment.dynamicSize()){self._endRow-=rowCount}}else
{if(comment.dynamicSize()){self._endRow=row;self._endRowOffset=0}}}self._updateSizeByCoordinate();self._updateLocationByCoordinate()};CommentView.prototype.removeColumns=function(column,columnCount){var self=this,comment=self._comment;var endRemovedColumn=column+columnCount-1;if(column<self._startColumn){if(endRemovedColumn<self._startColumn){if(comment.dynamicMove()){self._startColumn-=columnCount;self._endColumn-=columnCount}}else if(endRemovedColumn<self._endColumn){if(comment.dynamicMove()){if(comment.dynamicSize()){self._endColumn-=columnCount}else
{self._endColumn-=self._startColumn-column+1}self._startColumn=column;self._startColumnOffset=0}}}else if(column<=self._endColumn){if(endRemovedColumn<self._endColumn){if(comment.dynamicSize()){self._endColumn-=columnCount}}else
{if(comment.dynamicSize()){self._endColumn=column;self._endColumnOffset=0}}}self._updateSizeByCoordinate();self._updateLocationByCoordinate()};CommentView.prototype._updateCommentViewportIndex=function(){var self=this,comment=self._comment,sheet=comment&&comment._sheet;var row=comment._rowIndex,col=comment._colIndex;var rowViewportIndex=1,colViewportIndex=1;var frozenRowCount=sheet.frozenRowCount,frozenColCount=sheet.frozenColCount,frozenTrailingRowCount=sheet._frozenTrailingRowCount,frozenTrailingColCount=sheet._frozenTrailingColCount,rowCount=sheet.getRowCount(),colCount=sheet.getColumnCount();if(row<frozenRowCount){rowViewportIndex=0}else if(row>=frozenRowCount&&row<=rowCount-frozenTrailingRowCount-1){rowViewportIndex=1}else if(row>rowCount-frozenTrailingRowCount-1){rowViewportIndex=2}if(col<frozenColCount){colViewportIndex=0}else if(col>=frozenColCount&&col<=colCount-frozenTrailingColCount-1){colViewportIndex=1}else if(col>colCount-frozenTrailingColCount-1){colViewportIndex=2}self._rowViewportIndex=rowViewportIndex;self._columnViewportIndex=colViewportIndex};CommentView.prototype.updateLayout=function(){var self=this,sheet=self._comment._sheet;if(self.isOpen()){if(self._zoomFactor!==sheet._zoomFactor){self._zoomFactor=sheet._zoomFactor;self._absLocation=self._getLocationByCoordinate()}else
{self._zoomFactor=sheet._zoomFactor}self._updateCommentViewportIndex();self._formatComment();self._updateLineContainerLayout();self._updateAdornerLayout();if($.browser.chrome){self._offsetCommentLayoutInChrome()}}};CommentView.prototype._formatComment=function(){var self=this,comment=self._comment;var targetDom=comment.commentState()===2?self._editor:self._host;self._formatCommentState();self._formatCommentStyle(targetDom);self._formatCommentText(targetDom);self._formatCommentLocation();self._formatCommentSize(targetDom);self._formatCommentProtection()};CommentView.prototype._formatCommentText=function(targetDom){var self=this,comment=self._comment;if(targetDom===self._host){targetDom.innerHTML=comment.text().replace(/\r\n|\n|\r/g,'<br/>')}};CommentView.prototype._formatCommentLocation=function(){var self=this,comment=self._comment,sheet=comment&&comment._sheet;if(self._absLocation){var margin=self._hostMargin;var width=self._getActualWidth();var height=self._getActualHeight();var left=self._absLocation.x;var top=self._absLocation.y;var rect=self._getViewportRect(self._rowViewportIndex,self._columnViewportIndex);if(left<rect.x){$(self._floatBlockCanvas).css("left",left-rect.x);$(self._hostContainer).css("left",left+margin-rect.x);width+=left-rect.x;left=rect.x}else if(left+width>rect.x+rect.width){$(self._floatBlockCanvas).css("left",0);$(self._hostContainer).css("left",margin);width+=((rect.x+rect.width-1)-(left+width))}else
{$(self._floatBlockCanvas).css("left",0);$(self._hostContainer).css("left",margin)}width=Math_min(rect.width-1,width);if(top<rect.y){$(self._floatBlockCanvas).css("top",top-rect.y);$(self._hostContainer).css("top",top+margin-rect.y);height+=top-rect.y;top=rect.y}else if(top+height>rect.y+rect.height){$(self._floatBlockCanvas).css("top",0);$(self._hostContainer).css("top",margin);height+=((rect.y+rect.height-1)-(top+height))}else
{$(self._floatBlockCanvas).css("top",0);$(self._hostContainer).css("top",margin)}height=Math_min(rect.height-1,height);$(self._floatBlockCanvasContainer).css("left",left).css("top",top).css("width",width).css("height",height)}};CommentView.prototype._formatCommentSize=function(targetDom){var self=this,comment=self._comment;var width=self._getActualWidth(),height=self._getActualHeight();$(self._hostContainer).css("width",Math_max(0,width-2*self._hostMargin-2*comment.borderWidth())).css("height",Math_max(0,height-2*self._hostMargin-2*comment.borderWidth()));var widthOffset=0,heightOffset=0;if(comment.padding()){widthOffset-=parseInt(comment.padding().left)+parseInt(comment.padding().right);heightOffset-=parseInt(comment.padding().top)+parseInt(comment.padding().bottom)}$(targetDom).css("width",Math_max(0,$(self._hostContainer).width()+widthOffset)).css("height",Math_max(0,$(self._hostContainer).height()+heightOffset))};CommentView.prototype._formatCommentProtection=function(){var self=this,comment=self._comment,sheet=comment&&comment._sheet;if(sheet.isProtected){if(comment.locked()){self._detachFloatBlockCanvasEventHandler();self._attachMouseWheelEvent(self._floatBlockCanvas);self._detachHostContainerEventHandler();self._attachMouseWheelEvent(self._hostContainer);self._floatBlockCanvas.style.cursor="default";self._hostContainer.style.cursor="default"}else
{self._attachFloatBlockCanvasEventHandler();self._attachHostContainerEventHandler()}if(comment.lockText()){self._detachHostEventHandler();self._attachMouseWheelEvent(self._host);self._detachEditorEventHandler();self._attachMouseWheelEvent(self._editor);self._comment.commentState(3);self._host.style.cursor=self._comment.locked()?"default":"move"}else
{self._attachHostEventHandler();self._attachEditorEventHandler()}self._attachLineCanvasEventHandler()}else
{self._attachFloatBlockCanvasEventHandler();self._attachHostContainerEventHandler();self._attachLineCanvasEventHandler();self._attachHostEventHandler();self._attachEditorEventHandler()}};CommentView.prototype._formatCommentState=function(){var self=this,comment=self._comment,commentManager=self._commentManager,sheet=comment&&comment._sheet;switch(comment.commentState()){case 1:commentManager.activateComment(comment);if(self.isEditing()){self.detachEditor()}if(sheet.getSelections().length>0){sheet._saveAndClearSheetSelections()}window.gcGlobal.activeElement=sheet;break;case 2:commentManager.activateComment(comment);if(!self.isEditing()){self._attachEditor()}if(sheet.getSelections().length>0){sheet._saveAndClearSheetSelections()}window.gcGlobal.activeElement=keyword_null;break;case 3:if(comment===commentManager.getActiveComment()){commentManager.deactivateComment();if(sheet.getSelections().length===0){sheet._loadAndSetSheetSelections()}}break}};CommentView.prototype._formatCommentStyle=function(targetDom){var self=this,comment=self._comment;var $targetDom=$(targetDom);$targetDom.css("font-family",comment.fontFamily()).css("font-style",comment.fontStyle()).css("font-size",comment.fontSize()).css("font-weight",comment.fontWeight());$targetDom.css("text-decoration",self._getTextDecorationString(comment.textDecoration()));$targetDom.css("text-align",spread.HorizontalAlign[comment.horizontalAlign()]);if(comment.padding()){$targetDom.css("padding",comment.padding().toString())}else
{$targetDom.css("padding","0px")}$targetDom.css("background-color",comment.backColor()).css("color",comment.foreColor()).css("opacity",comment.opacity());$(self._hostContainer).css("border-width",comment.borderWidth()).css("border-style",comment.borderStyle()).css("border-color",comment.borderColor());var actualZIndex=self._commentManager.getCommentActualZIndex(comment);$(self._lineCanvasContainer).css("z-index",actualZIndex);$(self._floatBlockCanvasContainer).css("z-index",actualZIndex)};CommentView.prototype._getTextDecorationString=function(textDecoration){var tdString="";if(textDecoration!==0){if((textDecoration|1)===textDecoration){tdString+=" underline"}if((textDecoration|2)===textDecoration){tdString+=" line-through"}if((textDecoration|4)===textDecoration){tdString+=" overline"}}else
{tdString+="none"}return tdString};CommentView.prototype._formatCommentDynamicMoveAndDynamicSize=function(){};CommentView.prototype._offsetCommentLayoutInChrome=function(){var self=this,sheet=this._comment._sheet;var $hostContainer=$(self._hostContainer);if(!sheet||!$hostContainer){return}var canvasOffset=sheet._eventHandler._getCanvasOffset();var xOffset=canvasOffset.left-Math.floor(canvasOffset.left)>=0.5?0.5:0;var yOffset=canvasOffset.top-Math.floor(canvasOffset.top)>=0.5?0.5:0;$hostContainer.css("left",parseFloat($hostContainer.css("left"))+xOffset);$hostContainer.css("top",parseFloat($hostContainer.css("top"))+yOffset)};CommentView.prototype._updateLineContainerLayout=function(){var self=this,comment=self._comment,sheet=comment._sheet;var cellRect=self._getCellRect(sheet,comment._rowIndex,comment._colIndex,self._rowViewportIndex,self._columnViewportIndex);var sheetLayout=sheet._getSheetLayout();var startPoint=keyword_null;var startX=cellRect.x+cellRect.width-sheetLayout.rowHeaderWidth;var startY=cellRect.y-sheetLayout.colHeaderHeight;startPoint=new spread.Point(startX,startY);var endPoint=keyword_null;var floatBlockCanvasContainerPosition=$(self._floatBlockCanvasContainer).position();var hostContainerPosition=$(self._hostContainer).position();var $hostContainer=$(self._hostContainer);if(floatBlockCanvasContainerPosition.left+hostContainerPosition.left>startPoint.x){endPoint=new spread.Point(floatBlockCanvasContainerPosition.left+hostContainerPosition.left,floatBlockCanvasContainerPosition.top+hostContainerPosition.top)}else
{if(floatBlockCanvasContainerPosition.top+hostContainerPosition.top+$hostContainer.height()<startPoint.y){endPoint=new spread.Point(floatBlockCanvasContainerPosition.left+hostContainerPosition.left+$hostContainer.width(),floatBlockCanvasContainerPosition.top+hostContainerPosition.top+$hostContainer.height())}else
{endPoint=new spread.Point(floatBlockCanvasContainerPosition.left+hostContainerPosition.left+$hostContainer.width(),floatBlockCanvasContainerPosition.top+hostContainerPosition.top)}}var margin=self._hostMargin;var width=Math_abs(startPoint.x-endPoint.x)+2*margin,height=Math_abs(startPoint.y-endPoint.y)+2*margin;var left=Math_min(startPoint.x,endPoint.x)-margin,top=Math_min(startPoint.y,endPoint.y)-margin,right=left+width,bottom=top+height;var rect=self._getViewportRect(self._rowViewportIndex,self._columnViewportIndex);if(left<rect.x){width-=rect.x-left;left=rect.x}if(right>rect.x+rect.width){width-=right-(rect.x+rect.width)}width=Math_min(rect.width,width);if(top<rect.y){height-=rect.y-top;top=rect.y}if(bottom>rect.y+rect.height){height-=bottom-(rect.y+rect.height)}height=Math_min(rect.height,height);$(self._lineCanvasContainer).css("left",left).css("top",top).css("width",width).css("height",height);self._lineCanvas.width=width;self._lineCanvas.height=height;startPoint.x=startPoint.x-left;startPoint.y=startPoint.y-top;endPoint.x=endPoint.x-left;endPoint.y=endPoint.y-top;self._drawLine(startPoint,endPoint)};CommentView.prototype._updateAdornerLayout=function(){var self=this,comment=self._comment;self._floatBlockCanvas.width=self._getActualWidth();self._floatBlockCanvas.height=self._getActualHeight();self._drawAdorner()};CommentView.prototype._drawLine=function(start,end){var self=this;if(!self._lineCxt){self._lineCxt=self._lineCanvas.getContext("2d")}var cxt=self._lineCxt;var color=self._comment.borderColor();cxt.strokeStyle=color;cxt.clearRect(0,0,self._lineCanvas.width,self._lineCanvas.height);cxt.beginPath();cxt.moveTo(start.x,start.y);cxt.lineTo(end.x,end.y);cxt.stroke();cxt.save();cxt.translate(start.x,start.y);cxt.fillStyle=color;cxt.beginPath();var rotation=Math_atan2(end.y-start.y,end.x-start.x);cxt.rotate(rotation);cxt.moveTo(0,0);cxt.lineTo(7,-4);cxt.lineTo(7,4);cxt.lineTo(0,0);cxt.fill();cxt.closePath();cxt.restore()};CommentView.prototype._drawAdorner=function(){var self=this,comment=self._comment,sheet=comment._sheet;self._adornerDrawState=self._comment.commentState();if(!self._adornerCxt){self._adornerCxt=self._floatBlockCanvas.getContext("2d")}var cxt=self._adornerCxt;var width=self._floatBlockCanvas.width,height=self._floatBlockCanvas.height,hostWidth=$(self._hostContainer).outerWidth(),hostHeight=$(self._hostContainer).outerHeight(),hostMargin=self._hostMargin;cxt.clearRect(0,0,width,height);cxt.lineWidth=1;if(self._comment.showShadow()){self._drawShadowAdorner(cxt,hostMargin,hostWidth,hostHeight);self._drawStateAdorner(cxt,width,height)}if(!(sheet.isProtected&&comment.locked())){self._drawResizeAdorner(cxt,hostMargin,width,height,hostWidth,hostHeight)}cxt.restore()};CommentView.prototype._drawShadowAdorner=function(cxt,hostMargin,hostWidth,hostHeight){cxt.rect(hostMargin+2,hostMargin+2,hostWidth,hostHeight);cxt.fill()};CommentView.prototype._drawStateAdorner=function(cxt,width,height){switch(this._adornerDrawState){case 1:cxt.beginPath();for(var y=0;y<height;y++){var x=y%2==0?1:3;while(x<width){cxt.moveTo(x,y);cxt.lineTo(x+1,y+1);x=x+4}}cxt.stroke();cxt.closePath();break;case 2:cxt.beginPath();var x=0,y=0,lineSpace=4;while(x<(width+height)){cxt.moveTo(x+lineSpace,0);cxt.lineTo(0,y+lineSpace);x=x+lineSpace;y=y+lineSpace}cxt.stroke();cxt.closePath();break;default:}};CommentView.prototype._drawResizeAdorner=function(cxt,hostMargin,width,height,hostWidth,hostHeight){var self=this;if(self._adornerDrawState===1||self._adornerDrawState===2){self._resizeHitRects.splice(0,self._resizeHitRects.length);var topLeft=new spread.Rect(0,0,hostMargin,hostMargin);self._resizeHitRects.push(topLeft);var topRight=new spread.Rect(width-hostMargin,0,hostMargin,hostMargin);self._resizeHitRects.push(topRight);var bottomLeft=new spread.Rect(0,height-hostMargin,hostMargin,hostMargin);self._resizeHitRects.push(bottomLeft);var bottomRight=new spread.Rect(width-hostMargin,height-hostMargin,hostMargin,hostMargin);self._resizeHitRects.push(bottomRight);if(hostHeight>=3*hostMargin){var middleLeft=new spread.Rect(0,Math_floor(height/2-hostMargin/2),hostMargin,hostMargin);self._resizeHitRects.push(middleLeft);var middleRight=new spread.Rect(width-hostMargin,Math_floor(height/2-hostMargin/2),hostMargin,hostMargin);self._resizeHitRects.push(middleRight)}else
{self._resizeHitRects.push(keyword_null);self._resizeHitRects.push(keyword_null)}if(hostWidth>=3*hostMargin){var topCenter=new spread.Rect(Math_floor(width/2-hostMargin/2),0,hostMargin,hostMargin);self._resizeHitRects.push(topCenter);var bottomCenter=new spread.Rect(Math_floor(width/2-hostMargin/2),height-hostMargin,hostMargin,hostMargin);self._resizeHitRects.push(bottomCenter)}else
{self._resizeHitRects.push(keyword_null);self._resizeHitRects.push(keyword_null)}cxt.save();cxt.fillStyle="white";cxt.strokeStyle="#939393";cxt.linewidth=1;cxt.translate(0.5,0.5);$(self._resizeHitRects).each(function(){if(self){var owner=this,x=owner.x,y=owner.y,w=owner.width,h=owner.height;cxt.beginPath();cxt.fillRect(x,y,w-1,h-1);cxt.strokeRect(x,y,w-1,h-1);cxt.stroke();cxt.closePath()}})}};CommentView.prototype._drawMoveResizeContainer=function(){var self=this,commentManager=self._commentManager;if(self._moveResizeContainerDom){$(self._moveResizeContainerDom).remove()}else
{self._moveResizeContainerDom=document.createElement("div")}if(self._moveResizePanelDom){$(self._moveResizePanelDom).remove()}else
{self._moveResizePanelDom=document.createElement("div")}var $moveResizePanelDom=$(self._moveResizePanelDom);var $moveResizeContainerDom=$(self._moveResizeContainerDom);var mouseCapture=commentManager._mouseCapture;var $hostContainer=$(self._hostContainer);var viewportRect=self._getViewportRect(self._rowViewportIndex,self._columnViewportIndex);$moveResizePanelDom.css({position:'absolute',overflow:'hidden',top:viewportRect.y,left:viewportRect.x,width:viewportRect.width,height:viewportRect.height}).bind('mousemove',function(e){self._doMouseMove(e)}).bind('mouseup',function(e){self._doMouseUp(e)});$moveResizeContainerDom.addClass("gc-spread-moveResizeContainer").css('position','absolute').css('left',self._absLocation.x+self._hostMargin-viewportRect.x).css('top',self._absLocation.y+self._hostMargin-viewportRect.y).css('width',$hostContainer.outerWidth()-2).css('height',$hostContainer.outerHeight()-2).css("border","gray solid thin").css('z-index',900);$moveResizePanelDom.append(self._moveResizeContainerDom);if(self._commentLayoutPanel){self._commentLayoutPanel.appendChild(self._moveResizePanelDom)}};CommentView.prototype._doMoveResizeContainer=function(event){var self=this,sheet=self._comment._sheet,commentManager=sheet._commentManager,zoomFactor=self._zoomFactor;var mouseCapture=commentManager._mouseCapture,activeComment=commentManager.getActiveComment();if(mouseCapture.capture&&activeComment){var activeCommentView=commentManager.getCommentView(activeComment),absLocation=activeCommentView._absLocation,margin=activeCommentView._hostMargin;var startTopRow1=activeCommentView._moveInfo.startTopRow,startTopRow2=sheet.getViewportTopRow(activeCommentView._rowViewportIndex),startLeftColumn1=activeCommentView._moveInfo.startLeftColumn,startLeftColumn2=sheet.getViewportLeftColumn(activeCommentView._columnViewportIndex);var viewportOffsetHeight=activeCommentView._getTwoRowDistance(sheet,startTopRow1,startTopRow2);var viewportOffsetWidth=activeCommentView._getTwoColumnDistance(sheet,startLeftColumn1,startLeftColumn2);var offsetX=event.pageX/zoomFactor-mouseCapture.x,offsetY=event.pageY/zoomFactor-mouseCapture.y;if(startLeftColumn2>startLeftColumn1){offsetX+=viewportOffsetWidth}else
{offsetX-=viewportOffsetWidth}if(startTopRow2>startTopRow1){offsetY+=viewportOffsetHeight}else
{offsetY-=viewportOffsetHeight}var viewportRect=activeCommentView._getViewportRect(activeCommentView._rowViewportIndex,activeCommentView._columnViewportIndex);if(offsetX!==0||offsetY!==0){var $moveResizeContainerDom=$(activeCommentView._moveResizeContainerDom);if(mouseCapture.resizeDirct==-100){var location=activeCommentView._convertRelLocationToAbsLocation(new spread.Point(mouseCapture.cachedRect.x+offsetX,mouseCapture.cachedRect.y+offsetY));$moveResizeContainerDom.css('left',location.x+margin-viewportRect.x).css('top',location.y+margin-viewportRect.y)}else
{var commentResizeRect;switch(mouseCapture.resizeDirct){case 0:offsetX=Math_max(offsetX,0-absLocation.x-margin);offsetY=Math_max(offsetY,0-absLocation.y-margin);commentResizeRect=activeCommentView._getCommentTopLeftResizeRect(offsetX,offsetY);break;case 1:offsetX=Math_max(offsetX,0-absLocation.x-activeComment.width()+margin);offsetY=Math_max(offsetY,0-absLocation.y-margin);commentResizeRect=activeCommentView._getCommentTopRightResizeRect(offsetX,offsetY);break;case 2:offsetX=Math_max(offsetX,0-absLocation.x-margin);offsetY=Math_max(offsetY,0-absLocation.y-activeComment.height()+margin);commentResizeRect=activeCommentView._getCommentBottomLeftResizeRect(offsetX,offsetY);break;case 3:offsetX=Math_max(offsetX,0-absLocation.x-activeComment.width()+margin);offsetY=Math_max(offsetY,0-absLocation.y-activeComment.height()+margin);commentResizeRect=activeCommentView._getCommentBottomRightResizeRect(offsetX,offsetY);break;case 4:offsetX=Math_max(offsetX,0-absLocation.x-margin);commentResizeRect=activeCommentView._getCommentMiddleLeftResizeRect(offsetX);break;case 5:offsetX=Math_max(offsetX,0-absLocation.x-activeComment.width()+margin);commentResizeRect=activeCommentView._getCommentMiddleRightResizeRect(offsetX);break;case 6:offsetY=Math_max(offsetY,0-absLocation.y-margin);commentResizeRect=activeCommentView._getCommentTopCenterResizeRect(offsetY);break;case 7:offsetY=Math_max(offsetY,0-absLocation.y-activeComment.height()+margin);commentResizeRect=activeCommentView._getCommentBottomCenterResizeRect(offsetY);break}var location=activeCommentView._convertRelLocationToAbsLocation(new spread.Point(commentResizeRect.x,commentResizeRect.y));$moveResizeContainerDom.css('left',location.x+margin-viewportRect.x).css('top',location.y+margin-viewportRect.y).css('width',commentResizeRect.width*zoomFactor-2*margin-2).css('height',commentResizeRect.height*zoomFactor-2*margin-2)}}}};CommentView.prototype._attachEditor=function(){var self=this,comment=self._comment;if(!self.isEditing()){var editor=self._commentManager._editorDom;$(self._host).remove();self._detachHostEventHandler();$(editor).remove();$(self._hostContainer).append(editor);self._setDomStyle(editor);self._formatCommentSize(editor);$(editor).focus();editor.selectionStart=editor.value.length;self._attachEditorEventHandler();if(comment.commentState()!==2){comment.commentState(2)}}};CommentView.prototype.detachEditor=function(){var self=this,comment=self._comment,sheet=comment._sheet;if(self.isEditing()){var editor=self._commentManager._editorDom;$(editor).remove();self._detachEditorEventHandler();$(self._hostContainer).append(self._host);self._setDomStyle(self._host);self._attachHostEventHandler();if(comment.commentState()===2){comment.commentState(3)}if($(editor).val()!==comment.text()){var action=new spread.UndoRedo.CommentPropertyUndoAction(sheet,comment,comment.text(),$(editor).val(),"text");sheet._doCommand(action)}}};CommentView.prototype._getSheetHeight=function(sheet){if(sheet===keyword_null||sheet===keyword_undefined){return-1}var height=0;var rowCount=sheet.getRowCount();for(var row=0;row<rowCount;row++){height+=sheet.getRowHeight(row,3)*this._zoomFactor}return height};CommentView.prototype._getSheetWidth=function(sheet){if(sheet===keyword_null||sheet===keyword_undefined){return-1}var width=0;var columnCount=sheet.getColumnCount();for(var column=0;column<columnCount;column++){width+=sheet.getColumnWidth(column,3)*this._zoomFactor}return width};CommentView.prototype._getViewportHeight=function(rowViewportIndex){var self=this,comment=self._comment,sheet=comment&&comment._sheet;if(rowViewportIndex===0||rowViewportIndex===2){return sheet.getViewportHeight(rowViewportIndex)}else if(rowViewportIndex===1){var firstRow=sheet.getViewportBottomRow(0)+1;var lastRow=sheet.getViewportTopRow(2);var viewportHeight=0;for(var i=firstRow;i<=lastRow;i++){viewportHeight+=sheet.getRowHeight(i,3)*self._zoomFactor}return viewportHeight}return-1};CommentView.prototype._getViewportWidth=function(columnViewportIndex){var self=this,comment=self._comment,sheet=comment&&comment._sheet;if(columnViewportIndex===0||columnViewportIndex===2){return sheet.getViewportWidth(columnViewportIndex)}else if(columnViewportIndex===1){var firstColumn=sheet.getViewportRightColumn(0)+1;var lastColumn=sheet.getViewportLeftColumn(2);var viewportWidth=0;for(var i=firstColumn;i<=lastColumn;i++){viewportWidth+=sheet.getColumnWidth(i,3)*self._zoomFactor}return viewportWidth}return-1};CommentView.prototype._getTwoColumnDistance=function(sheet,column1,column2){var startColumn=Math_min(column1,column2);var endColumn=Math_max(column1,column2);var totalWidth=0;for(var c=startColumn;c<endColumn;c++){totalWidth+=sheet.getColumnWidth(c,3)*this._zoomFactor}return totalWidth};CommentView.prototype._getTwoRowDistance=function(sheet,row1,row2){var startRow=Math_min(row1,row2);var endRow=Math_max(row1,row2);var totalHeight=0;for(var i=startRow;i<endRow;i++){totalHeight+=sheet.getRowHeight(i,3)*this._zoomFactor}return totalHeight};CommentView.prototype._getViewportRect=function(rowViewportIndex,columnViewportIndex){var self=this,comment=self._comment,sheet=comment._sheet,commentManager=self._commentManager,commentView=commentManager.getCommentView(comment);;var layout=sheet._getSheetLayout(),rect=new spread.Rect(0,0,0,0);rect=layout.viewportRect(rowViewportIndex,columnViewportIndex);if(rowViewportIndex===0&&columnViewportIndex===0||rowViewportIndex===0&&columnViewportIndex===2||rowViewportIndex===2&&columnViewportIndex===0||rowViewportIndex===2&&columnViewportIndex===2){rect.x=0;rect.y=0;rect.width=layout.frozenWidth+layout.viewportWidth+layout.frozenTrailingWidth;rect.height=layout.frozenHeight+layout.viewportHeight+layout.frozenTrailingHeight}else if(rowViewportIndex===0&&columnViewportIndex===1||rowViewportIndex===2&&columnViewportIndex===1){rect.x=layout.frozenWidth;rect.y=0;rect.width=layout.viewportWidth;rect.height=layout.frozenHeight+layout.viewportHeight+layout.frozenTrailingHeight}else if(rowViewportIndex===1&&columnViewportIndex===0||rowViewportIndex===1&&columnViewportIndex===2){rect.x=0;rect.y=layout.frozenHeight;rect.width=layout.frozenWidth+layout.viewportWidth+layout.frozenTrailingWidth;rect.height=layout.viewportHeight}else if(rowViewportIndex===1&&columnViewportIndex===1){rect.x=layout.frozenWidth;;rect.y=layout.frozenHeight;rect.width=layout.viewportWidth;rect.height=layout.viewportHeight}return rect};CommentView.prototype._setDomStyle=function(targetDOM){var self=this,comment=self._comment,$targetDOM=$(targetDOM);if(targetDOM!==self._editor&&targetDOM!==self._host){return}if(targetDOM===self._editor){targetDOM.value=comment.text()}else
{targetDOM.innerHTML=comment.text().replace(/\r\n|\n|\r/g,'<br/>')}$targetDOM.css("font-family",comment.fontFamily()).css("font-style",comment.fontStyle()).css("font-size",comment.fontSize()).css("font-weight",comment.fontWeight()).css("color",comment.foreColor()).css("background-color",comment.backColor()).css("text-align",comment.horizontalAlign()).css("text-decoration",comment.textDecoration());if(comment.padding()){$targetDOM.css("padding",comment.padding().toString())}else
{$targetDOM.css("padding","0px")}};CommentView.prototype.isOpen=function(){var self=this;if(self._floatBlockCanvasContainer&&self._floatBlockCanvasContainer.parentNode){return true}return false};CommentView.prototype.isActive=function(){var self=this;if(self.isOpen()&&self._comment===self._commentManager.getActiveComment()){return true}return false};CommentView.prototype.isEditing=function(){var self=this;if(self.isActive()){return $(self._hostContainer).find("textarea").length>0}return false};CommentView.prototype.getCommentRect=function(){var self=this,comment=self._comment,sheet=comment&&comment._sheet,zoomFactor=self._zoomFactor,commentRect=keyword_null;if(self.isOpen()){var sheetLayout=self._comment._sheet._getSheetLayout();commentRect=new spread.Rect(self._absLocation.x+sheetLayout.headerX+sheetLayout.rowHeaderWidth,self._absLocation.y+sheetLayout.headerY+sheetLayout.colHeaderHeight,self._getActualWidth(),self._getActualHeight())}return commentRect};CommentView.prototype.getCommentEditAreaRect=function(){var self=this,comment=self._comment,sheet=comment&&comment._sheet,zoomFactor=self._zoomFactor;if(self.isOpen()){var commentRect=self.getCommentRect();if(commentRect){var x,y,width,height;var editAreaXOffset=(self._hostMargin+comment.borderWidth())*zoomFactor;var editAreaYOffset=(self._hostMargin+comment.borderWidth())*zoomFactor;x=commentRect.x+editAreaXOffset;y=commentRect.y+editAreaYOffset;width=commentRect.width-2*editAreaXOffset;height=commentRect.height-2*editAreaYOffset;return new spread.Rect(x,y,width,height)}}return keyword_null};CommentView.prototype._setCursorState=function(event){var self=this,comment=self._comment,sheet=comment._sheet;var target=event.target,mouseCapture=self._commentManager._mouseCapture;if(mouseCapture.capture){if(target.className===self._hostClassName||target.className===self._floatBlockCanvasClassName||target.className===self._lineCanvasClassName||target.className==="gc-spread-floatPanel"){target.style.cursor=mouseCapture.resizeDirct>=0?"crosshair":"move"}return}else
{if(target.className===self._hostClassName){if(sheet.isProtected&&comment.lockText()){if(comment.locked()){target.style.cursor="default"}else
{target.style.cursor="move"}return}else
{target.style.cursor="text";return}}if(target.className===self._floatBlockCanvasClassName||target.className===self._hostContainerClassName){if(sheet.isProtected&&comment.locked()){target.style.cursor="default";return}else
{var resizeDirct=self._getResizeDirection(event);switch(resizeDirct){case 0:target.style.cursor="nw-resize";return;case 1:target.style.cursor="ne-resize";return;case 2:target.style.cursor="sw-resize";return;case 3:target.style.cursor="se-resize";return;case 4:target.style.cursor="w-resize";return;case 5:target.style.cursor="e-resize";return;case 6:target.style.cursor="n-resize";return;case 7:target.style.cursor="s-resize";return;default:{target.style.cursor="move";return}}}}}target.style.cursor="default"};CommentView.prototype._doMouseDownToEdit=function(event){var self=this,comment=self._comment,sheet=comment&&comment._sheet;sheet.endEdit();sheet.unSelectAllFloatingObjects();self._commentManager.activateComment(comment);comment.commentState(2);self._doMouseUp(event);return spread.util.cancelDefault(event)};CommentView.prototype._doMouseDownToDragOrResize=function(event){var self=this,comment=self._comment,sheet=comment&&comment._sheet,zoomFactor=self._zoomFactor;var commentManager=self._commentManager,mouseCapture=commentManager._mouseCapture;sheet.endEdit();sheet.unSelectAllFloatingObjects();mouseCapture.x=event.pageX/zoomFactor;mouseCapture.y=event.pageY/zoomFactor;mouseCapture.cachedRect=new spread.Rect(comment.location().x,comment.location().y,comment.width(),comment.height());mouseCapture.resizeDirct=self._getResizeDirection(event);self._handleDocumentMouseMove();mouseCapture.capture=true;self._setCursorState(event);commentManager.activateComment(comment);comment.commentState(1);if(!(sheet.isProtected&&comment.locked())){self._moveInfo={};self._moveInfo.startTopRow=sheet.getViewportTopRow(self._rowViewportIndex);self._moveInfo.startLeftColumn=sheet.getViewportLeftColumn(self._columnViewportIndex);self._drawMoveResizeContainer();if(mouseCapture.resizeDirct===-100){self._isMoving=true}else
{self._isResizing=true}}var eventHandler=sheet._eventHandler,canvasOffset=eventHandler._getCanvasOffset(),mousePosition=new spread.Point(event.pageX-canvasOffset.left,event.pageY-canvasOffset.top),sheetHitTestInfo=sheet.hitTest(mousePosition.x,mousePosition.y);eventHandler.startHitInfo={scrollRowViewportIndex:sheetHitTestInfo.rowViewportIndex,scrollColViewportIndex:sheetHitTestInfo.colViewportIndex,hitTestType:sheetHitTestInfo.hitTestType};eventHandler.mousePosition=mousePosition;eventHandler.startScroll();eventHandler.isCommentWorking=true;event.stopPropagation()};CommentView.prototype._getAjustedLocationWhenMovingComment=function(location){var self=this,comment=self._comment,sheet=comment&&comment._sheet,margin=self._hostMargin;var layout=sheet._getSheetLayout(),viewportRect=self._getViewportRect(self._rowViewportIndex,self._columnViewportIndex);var sheetWidth=self._getSheetWidth(sheet),sheetHeight=self._getSheetHeight(sheet);var cellRect=self._getCellRect(sheet,0,0,self._rowViewportIndex,self._columnViewportIndex);var right=location.x+(0-(cellRect.x-layout.rowHeaderWidth))+comment.width()-margin,bottom=location.y+(0-(cellRect.y-layout.colHeaderHeight))+comment.height()-margin;var x=location.x,y=location.y;if(self._columnViewportIndex===1){if(location.x<viewportRect.x-margin){x=viewportRect.x-margin}var trailingFrozenViewportWidth=self._getViewportWidth(2);if(right>sheetWidth-trailingFrozenViewportWidth){x-=right-(sheetWidth-trailingFrozenViewportWidth)}}else if(self._columnViewportIndex===0){if(location.x<0-margin){x=0-margin}if(right>layout.width-layout.rowHeaderWidth){x-=right-(layout.width-layout.rowHeaderWidth)}}else if(self._columnViewportIndex===2){if(location.x<0-margin){x=0-margin}if(right>sheetWidth){x-=right-sheetWidth}}if(self._rowViewportIndex===1){if(location.y<viewportRect.y-margin){y=viewportRect.y-margin}var trailingFrozenViewportHeight=self._getViewportHeight(2);if(bottom>sheetHeight-trailingFrozenViewportHeight){y-=bottom-(sheetHeight-trailingFrozenViewportHeight)}}else if(self._rowViewportIndex===0){if(location.y<0-margin){y=0-margin}if(bottom>layout.height-layout.colHeaderHeight){y-=bottom-(layout.height-layout.colHeaderHeight)}}else if(self._rowViewportIndex===2){if(location.y<0-margin){y=0-margin}if(bottom>sheetHeight){y-=bottom-sheetHeight}}return new spread.Point(x,y)};CommentView.prototype._getAdjustedRectWhenResizingComment=function(location,width,height){var self=this,comment=self._comment,sheet=comment&&comment._sheet,margin=self._hostMargin,zoomFactor=self._zoomFactor;var layout=sheet._getSheetLayout(),viewportRect=self._getViewportRect(self._rowViewportIndex,self._columnViewportIndex);var sheetWidth=self._getSheetWidth(sheet),sheetHeight=self._getSheetHeight(sheet);var cellRect=self._getCellRect(sheet,0,0,self._rowViewportIndex,self._columnViewportIndex);var x=location.x,y=location.y,actualWidth=width*zoomFactor,actualHeight=height*zoomFactor;var right=location.x+(0-(cellRect.x-layout.rowHeaderWidth))+actualWidth-margin,bottom=location.y+(0-(cellRect.y-layout.colHeaderHeight))+actualHeight-margin;var leftBoundry,topBoundry,rightBoundry,bottomBoundry;if(self._columnViewportIndex===1){leftBoundry=viewportRect.x-margin;if(location.x<leftBoundry){x=leftBoundry;actualWidth-=leftBoundry-location.x}var trailingFrozenViewportWidth=self._getViewportWidth(2);rightBoundry=sheetWidth-trailingFrozenViewportWidth;if(right>rightBoundry){actualWidth-=right-rightBoundry}}else if(self._columnViewportIndex===0){leftBoundry=0-margin;if(location.x<leftBoundry){x=leftBoundry;actualWidth-=leftBoundry-location.x}rightBoundry=layout.width-layout.rowHeaderWidth;if(right>rightBoundry){actualWidth-=right-rightBoundry}}else if(self._columnViewportIndex===2){leftBoundry=0-margin;if(location.x<leftBoundry){x=leftBoundry;actualWidth-=leftBoundry-location.x}rightBoundry=sheetWidth;if(right>rightBoundry){actualWidth-=right-rightBoundry}}if(self._rowViewportIndex===1){topBoundry=viewportRect.y-margin;if(location.y<topBoundry){y=topBoundry;actualHeight-=topBoundry-location.y}var trailingFrozenViewportHeight=self._getViewportHeight(2);bottomBoundry=sheetHeight-trailingFrozenViewportHeight;if(bottom>bottomBoundry){actualHeight-=bottom-bottomBoundry}}else if(self._rowViewportIndex===0){topBoundry=0-margin;if(location.y<topBoundry){y=topBoundry;actualHeight-=topBoundry-location.y}bottomBoundry=layout.height-layout.colHeaderHeight;if(bottom>bottomBoundry){actualHeight-=bottom-bottomBoundry}}else if(self._rowViewportIndex===2){topBoundry=0-margin;if(location.y<topBoundry){y=topBoundry;actualHeight-=topBoundry-location.y}bottomBoundry=sheetHeight;if(bottom>bottomBoundry){actualHeight-=bottom-bottomBoundry}}return new spread.Rect(x,y,actualWidth/zoomFactor,actualHeight/zoomFactor)};CommentView.prototype._doMoveResizeComment=function(event){var self=this,comment=self._comment,sheet=comment&&comment._sheet,zoomFactor=self._zoomFactor,commentManager=sheet._commentManager;var mouseCapture=commentManager._mouseCapture,activeComment=commentManager.getActiveComment();if(mouseCapture.capture&&activeComment){var activeCommentView=sheet._commentManager.getCommentView(activeComment),absLocation=activeCommentView._absLocation,margin=activeCommentView._hostMargin;var startTopRow1=activeCommentView._moveInfo.startTopRow,startTopRow2=sheet.getViewportTopRow(activeCommentView._rowViewportIndex),startLeftColumn1=activeCommentView._moveInfo.startLeftColumn,startLeftColumn2=sheet.getViewportLeftColumn(activeCommentView._columnViewportIndex);var viewportOffsetHeight=activeCommentView._getTwoRowDistance(sheet,startTopRow1,startTopRow2);var viewportOffsetWidth=activeCommentView._getTwoColumnDistance(sheet,startLeftColumn1,startLeftColumn2);var offsetX=event.pageX/zoomFactor-mouseCapture.x,offsetY=event.pageY/zoomFactor-mouseCapture.y;if(startLeftColumn2>startLeftColumn1){offsetX+=viewportOffsetWidth}else
{offsetX-=viewportOffsetWidth}if(startTopRow2>startTopRow1){offsetY+=viewportOffsetHeight}else
{offsetY-=viewportOffsetHeight}if(offsetX!==0||offsetY!==0){if(mouseCapture.resizeDirct==-100){var newX=mouseCapture.cachedRect.x+offsetX;var newY=mouseCapture.cachedRect.y+offsetY;var absoluteLocation=activeCommentView._convertRelLocationToAbsLocation(new spread.Point(newX,newY));var adjustedLocation=activeCommentView._getAjustedLocationWhenMovingComment(absoluteLocation);var location=activeCommentView._convertAbsLocationToRelLocation(adjustedLocation);if(location.x!==activeComment.location().x||location.x!==activeComment.location().y){sheet._doCommand(new spread.UndoRedo.CommentPropertyUndoAction(sheet,activeComment,activeComment.location().clone(),location,"location"))}}else
{activeComment._autoSize=false;var commentResizeRect;switch(mouseCapture.resizeDirct){case 0:commentResizeRect=activeCommentView._getCommentTopLeftResizeRect(offsetX,offsetY);break;case 1:commentResizeRect=activeCommentView._getCommentTopRightResizeRect(offsetX,offsetY);break;case 2:commentResizeRect=activeCommentView._getCommentBottomLeftResizeRect(offsetX,offsetY);break;case 3:commentResizeRect=activeCommentView._getCommentBottomRightResizeRect(offsetX,offsetY);break;case 4:commentResizeRect=activeCommentView._getCommentMiddleLeftResizeRect(offsetX);break;case 5:commentResizeRect=activeCommentView._getCommentMiddleRightResizeRect(offsetX);break;case 6:commentResizeRect=activeCommentView._getCommentTopCenterResizeRect(offsetY);break;case 7:commentResizeRect=activeCommentView._getCommentBottomCenterResizeRect(offsetY);break}var absoluteLocation=activeCommentView._convertRelLocationToAbsLocation(new spread.Point(commentResizeRect.x,commentResizeRect.y));var adjustedCommentRect=activeCommentView._getAdjustedRectWhenResizingComment(absoluteLocation,commentResizeRect.width,commentResizeRect.height);var location=activeCommentView._convertAbsLocationToRelLocation(new spread.Point(adjustedCommentRect.x,adjustedCommentRect.y));var transaction=new spread.UndoRedo.CommentUndoTransaction;if(location.x!==activeComment.location().x||location.y!==activeComment.location().y){transaction.add(new spread.UndoRedo.CommentPropertyUndoAction(sheet,activeComment,activeComment.location().clone(),location,"location"))}if(adjustedCommentRect.width!==activeComment.width()){transaction.add(new spread.UndoRedo.CommentPropertyUndoAction(sheet,activeComment,activeComment.width(),adjustedCommentRect.width,"width"))}if(adjustedCommentRect.height!==activeComment.height()){transaction.add(new spread.UndoRedo.CommentPropertyUndoAction(sheet,activeComment,activeComment.height(),adjustedCommentRect.height,"height"))}sheet._doCommand(transaction)}}}};CommentView.prototype._doMouseMove=function(event){var self=this,sheet=self._comment._sheet;this._setCursorState(event);if(sheet.getSelections()&&sheet.getSelections().length>0){return}var commentManager=self._commentManager,target=event.target;var activeComment=commentManager.getActiveComment();var eventHandler=sheet._eventHandler,canvasOffset=eventHandler._getCanvasOffset();var point=new spread.Point(event.pageX-canvasOffset.left,event.pageY-canvasOffset.top);if(target&&activeComment){if(commentManager._mouseCapture.capture){var commentView=commentManager.getCommentView(activeComment);if(commentView&&commentView._moveResizeContainerDom){this._doMoveResizeContainer(event)}if(commentView._rowViewportIndex===1){eventHandler.mousePosition.y=point.y}if(commentView._columnViewportIndex===1){eventHandler.mousePosition.x=point.x}eventHandler.continueScroll()}}return spread.util.cancelDefault(event)};CommentView.prototype._doMouseUp=function(event){var self=this,sheet=self._comment._sheet;if(sheet.getSelections()&&sheet.getSelections().length>0){return}var target=event.target,commentManager=self._commentManager,activeComment=commentManager.getActiveComment();var eventHandler=sheet._eventHandler;eventHandler.isCommentWorking=false;eventHandler.stopScroll();if(target&&activeComment){self._doMoveResizeComment(event);var commentView=commentManager.getCommentView(activeComment);if(commentView&&commentView._moveResizePanelDom){$(commentView._moveResizePanelDom).remove();commentView._moveResizePanelDom=null;commentView._isMoving=false;commentView._isResizing=false}self._unhandleDocumentMouseMove();commentManager._mouseCapture.capture=false;self._setCursorState(event)}return spread.util.cancelDefault(event)};CommentView.prototype._getResizeDirection=function(event){var self=this;if(self._resizeHitRects.length>0&&(self._adornerDrawState===1||self._adornerDrawState===2)){var target=event.target,x=event.pageX-$(target).offset().left,y=event.pageY-$(target).offset().top;var resizeHitRect=self._resizeHitRects[0];if(resizeHitRect&&resizeHitRect.contains(x,y)){return 0}resizeHitRect=self._resizeHitRects[1];if(resizeHitRect&&resizeHitRect.contains(x,y)){return 1}resizeHitRect=self._resizeHitRects[2];if(resizeHitRect&&resizeHitRect.contains(x,y)){return 2}resizeHitRect=self._resizeHitRects[3];if(resizeHitRect&&resizeHitRect.contains(x,y)){return 3}resizeHitRect=self._resizeHitRects[4];if(resizeHitRect&&resizeHitRect.contains(x,y)){return 4}resizeHitRect=self._resizeHitRects[5];if(resizeHitRect&&resizeHitRect.contains(x,y)){return 5}resizeHitRect=self._resizeHitRects[6];if(resizeHitRect&&resizeHitRect.contains(x,y)){return 6}resizeHitRect=self._resizeHitRects[7];if(resizeHitRect&&resizeHitRect.contains(x,y)){return 7}}return-100};CommentView.prototype._getCommentTopLeftResizeRect=function(offsetX,offsetY){var self=this;var x,y,width,height;var mouseCapture=self._commentManager._mouseCapture;var resizeHostWidth=(mouseCapture.cachedRect.width-2*self._hostMargin)-offsetX,resizeHostHeight=(mouseCapture.cachedRect.height-2*self._hostMargin)-offsetY;if(resizeHostWidth>=0){x=mouseCapture.cachedRect.x+offsetX;width=resizeHostWidth+2*self._hostMargin}else
{x=mouseCapture.cachedRect.x+mouseCapture.cachedRect.width-2*self._hostMargin;width=-resizeHostWidth+2*self._hostMargin}if(resizeHostHeight>=0){y=mouseCapture.cachedRect.y+offsetY;height=resizeHostHeight+2*self._hostMargin}else
{y=mouseCapture.cachedRect.y+mouseCapture.cachedRect.height-2*self._hostMargin;height=-resizeHostHeight+2*self._hostMargin}return new spread.Rect(x,y,width,height)};CommentView.prototype._getCommentTopRightResizeRect=function(offsetX,offsetY){var self=this;var x,y,width,height;var mouseCapture=self._commentManager._mouseCapture;var resizeHostWidth=(mouseCapture.cachedRect.width-2*self._hostMargin)+offsetX,resizeHostHeight=(mouseCapture.cachedRect.height-2*self._hostMargin)-offsetY;if(resizeHostWidth>=0){x=mouseCapture.cachedRect.x;width=resizeHostWidth+2*self._hostMargin}else
{x=mouseCapture.cachedRect.x+resizeHostWidth;width=-resizeHostWidth+2*self._hostMargin}if(resizeHostHeight>=0){y=mouseCapture.cachedRect.y+offsetY;height=resizeHostHeight+2*self._hostMargin}else
{y=mouseCapture.cachedRect.y+mouseCapture.cachedRect.height-2*self._hostMargin;height=-resizeHostHeight+2*self._hostMargin}return new spread.Rect(x,y,width,height)};CommentView.prototype._getCommentBottomLeftResizeRect=function(offsetX,offsetY){var self=this;var x,y,width,height;var mouseCapture=self._commentManager._mouseCapture;var resizeHostWidth=(mouseCapture.cachedRect.width-2*self._hostMargin)-offsetX,resizeHostHeight=(mouseCapture.cachedRect.height-2*self._hostMargin)+offsetY;if(resizeHostWidth>=0){x=mouseCapture.cachedRect.x+offsetX;width=resizeHostWidth+2*self._hostMargin}else
{x=mouseCapture.cachedRect.x+mouseCapture.cachedRect.width-2*self._hostMargin;width=-resizeHostWidth+2*self._hostMargin}if(resizeHostHeight>=0){y=mouseCapture.cachedRect.y;height=resizeHostHeight+2*self._hostMargin}else
{y=mouseCapture.cachedRect.y+resizeHostHeight;height=-resizeHostHeight+2*self._hostMargin}return new spread.Rect(x,y,width,height)};CommentView.prototype._getCommentBottomRightResizeRect=function(offsetX,offsetY){var self=this;var x,y,width,height;var mouseCapture=self._commentManager._mouseCapture;var resizeHostWidth=(mouseCapture.cachedRect.width-2*self._hostMargin)+offsetX,resizeHostHeight=(mouseCapture.cachedRect.height-2*self._hostMargin)+offsetY;if(resizeHostWidth>=0){x=mouseCapture.cachedRect.x;width=resizeHostWidth+2*self._hostMargin}else
{x=mouseCapture.cachedRect.x+resizeHostWidth;width=-resizeHostWidth+2*self._hostMargin}if(resizeHostHeight>=0){y=mouseCapture.cachedRect.y;height=resizeHostHeight+2*self._hostMargin}else
{y=mouseCapture.cachedRect.y+resizeHostHeight;height=-resizeHostHeight+2*self._hostMargin}return new spread.Rect(x,y,width,height)};CommentView.prototype._getCommentMiddleLeftResizeRect=function(offsetX){var self=this;var x,y,width,height;var mouseCapture=self._commentManager._mouseCapture;var resizeHostWidth=(mouseCapture.cachedRect.width-2*self._hostMargin)-offsetX;if(resizeHostWidth>=0){x=mouseCapture.cachedRect.x+offsetX;width=resizeHostWidth+2*self._hostMargin}else
{x=mouseCapture.cachedRect.x+mouseCapture.cachedRect.width-2*self._hostMargin;width=-resizeHostWidth+2*self._hostMargin}y=mouseCapture.cachedRect.y;height=mouseCapture.cachedRect.height;return new spread.Rect(x,y,width,height)};CommentView.prototype._getCommentMiddleRightResizeRect=function(offsetX){var self=this;var x,y,width,height;var mouseCapture=self._commentManager._mouseCapture;var resizeHostWidth=(mouseCapture.cachedRect.width-2*self._hostMargin)+offsetX;if(resizeHostWidth>=0){x=mouseCapture.cachedRect.x;width=resizeHostWidth+2*self._hostMargin}else
{x=mouseCapture.cachedRect.x+resizeHostWidth;width=-resizeHostWidth+2*self._hostMargin}y=mouseCapture.cachedRect.y;height=mouseCapture.cachedRect.height;return new spread.Rect(x,y,width,height)};CommentView.prototype._getCommentTopCenterResizeRect=function(offsetY){var self=this;var x,y,width,height;var mouseCapture=self._commentManager._mouseCapture;var resizeHostHeight=(mouseCapture.cachedRect.height-2*self._hostMargin)-offsetY;x=mouseCapture.cachedRect.x;width=mouseCapture.cachedRect.width;if(resizeHostHeight>=0){y=mouseCapture.cachedRect.y+offsetY;height=resizeHostHeight+2*self._hostMargin}else
{y=mouseCapture.cachedRect.y+mouseCapture.cachedRect.height-2*self._hostMargin;height=-resizeHostHeight+2*self._hostMargin}return new spread.Rect(x,y,width,height)};CommentView.prototype._getCommentBottomCenterResizeRect=function(offsetY){var self=this;var x,y,width,height;var mouseCapture=self._commentManager._mouseCapture;var resizeHostHeight=(mouseCapture.cachedRect.height-2*self._hostMargin)+offsetY;x=mouseCapture.cachedRect.x;width=mouseCapture.cachedRect.width;if(resizeHostHeight>=0){y=mouseCapture.cachedRect.y;height=resizeHostHeight+2*self._hostMargin}else
{y=mouseCapture.cachedRect.y+resizeHostHeight;height=-resizeHostHeight+2*self._hostMargin}return new spread.Rect(x,y,width,height)};CommentView.prototype._attachMouseWheelEvent=function(targetDom){var self=this,sheet=this._comment._sheet;if(targetDom){var ns="";switch(targetDom){case self._floatBlockCanvas:ns=".floatBlockCanvas";case self._hostContainer:ns=".hostContainer";case self._lineCanvasContainer:ns=".lineCanvasContainer";case self._host:ns=".host";case self._editor:ns=".editor"}if(ns){$(targetDom).unbind("gcmousewheel"+ns);$(targetDom).bind("gcmousewheel"+ns,function(event){sheet._mouseWheelDelegate(event.originalEvent);spread.util.cancelDefault(event)})}}};CommentView.prototype._attachFloatBlockCanvasEventHandler=function(){var self=this,comment=self._comment,sheet=comment&&comment&&comment._sheet;self._detachFloatBlockCanvasEventHandler();var ns=".floatBlockCanvas";$(self._floatBlockCanvas).bind("mousedown"+ns,function(event){self._doMouseDownToDragOrResize(event)}).bind("mousemove"+ns,function(event){self._doMouseMove(event)}).bind("mouseup"+ns,function(event){self._doMouseUp(event)}).bind("gcmousewheel"+ns,function(event){if(sheet){sheet._mouseWheelDelegate(event.originalEvent)}})};CommentView.prototype._detachFloatBlockCanvasEventHandler=function(){var self=this;$(self._floatBlockCanvas).unbind(".floatBlockCanvas")};CommentView.prototype._attachHostContainerEventHandler=function(){var self=this,comment=self._comment,sheet=comment&&comment._sheet;self._detachHostContainerEventHandler();var ns=".hostContainer";$(self._hostContainer).bind("mousedown"+ns,function(event){self._doMouseDownToDragOrResize(event)}).bind("mousemove"+ns,function(event){self._doMouseMove(event)}).bind("mouseup"+ns,function(event){self._doMouseUp(event)}).bind("gcmousewheel"+ns,function(event){if(sheet){sheet._mouseWheelDelegate(event.originalEvent)}})};CommentView.prototype._detachHostContainerEventHandler=function(){var self=this;$(self._hostContainer).unbind(".hostContainer")};CommentView.prototype._attachLineCanvasEventHandler=function(){var self=this,comment=self._comment,sheet=comment&&comment._sheet;self._detachLineCanvasEventHandler();if(!sheet){return}var canvasOffset=sheet._eventHandler._getCanvasOffset();var ns=".lineCanvas";$(self._lineCanvas).bind("mousedown"+ns,function(event){var hitTestInfo=sheet.hitTest(event.pageX-canvasOffset.left,event.pageY-canvasOffset.top);var commentHitInfo=hitTestInfo.commentHitInfo;if(commentHitInfo){var hitTestComment=commentHitInfo.comment;var hitTestCommentView=sheet._commentManager.getCommentView(hitTestComment);if(commentHitInfo.area==="editArea"){hitTestCommentView._doMouseDownToEdit(event)}else if(commentHitInfo.area==="moveResizeArea"){hitTestCommentView._doMouseDownToDragOrResize(event)}$(hitTestCommentView._floatBlockCanvasContainer).css("z-index",parseInt($(self._lineCanvasContainer).css("z-index")+1))}else
{sheet._mouseDownDelegate(event)}}).bind("mousemove"+ns,function(event){var hitTestInfo=sheet.hitTest(event.pageX-canvasOffset.left,event.pageY-canvasOffset.top);var commentHitInfo=hitTestInfo.commentHitInfo;if(commentHitInfo){var hitTestComment=commentHitInfo.comment;var hitTestCommentView=sheet._commentManager.getCommentView(hitTestComment);hitTestCommentView._doMouseMove(event);if(commentHitInfo.area==="editArea"){self._lineCanvas.style.cursor="text"}else if(commentHitInfo.area==="moveResizeArea"){self._lineCanvas.style.cursor="move"}}else
{sheet._mouseMoveDelegate(event);var canvas=sheet._getCanvas();if(canvas){self._lineCanvas.style.cursor=canvas.style.cursor}}}).bind("mouseup"+ns,function(event){var hitTestInfo=sheet.hitTest(event.pageX-canvasOffset.left,event.pageY-canvasOffset.top);var commentHitInfo=hitTestInfo.commentHitInfo;if(commentHitInfo){var hitTestComment=commentHitInfo.comment;var hitTestCommentView=sheet._commentManager.getCommentView(hitTestComment);hitTestCommentView._doMouseUp(event)}else
{sheet._mouseUpDelegate(event)}}).bind("dblclick"+ns,function(event){sheet._dblClickDelegate(event)}).bind("gcmousewheel"+ns,function(event){sheet._mouseWheelDelegate(event.originalEvent)})};CommentView.prototype._detachLineCanvasEventHandler=function(){var self=this;$(self._lineCanvas).unbind(".lineCanvas")};CommentView.prototype._attachHostEventHandler=function(){var self=this,comment=self._comment,sheet=comment&&comment._sheet;if(comment.commentState()!==2&&self._host){self._detachHostEventHandler();var ns=".host";$(self._host).bind("mousedown"+ns,function(event){self._doMouseDownToEdit(event)}).bind("mousemove"+ns,function(event){self._doMouseMove(event)}).bind("mouseup"+ns,function(event){self._doMouseUp(event)}).bind("gcmousewheel"+ns,function(event){if(sheet){sheet._mouseWheelDelegate(event.originalEvent)}})}};CommentView.prototype._detachHostEventHandler=function(){var self=this,comment=self._comment;if(comment.commentState()!==2&&self._host){$(self._host).unbind(".host")}};CommentView.prototype._attachEditorEventHandler=function(){var self=this,comment=self._comment,sheet=comment&&comment._sheet;var editor=self._editor;if(comment.commentState()===2&&editor){this._detachEditorEventHandler();var ns=".editor";$(editor).bind("mousedown"+ns,function(event){event.stopPropagation()}).bind("mousemove"+ns,function(event){event.stopPropagation()}).bind("mouseup"+ns,function(event){event.stopPropagation()}).bind("gcmousewheel"+ns,function(event){if(sheet){sheet._mouseWheelDelegate(event.originalEvent)}}).bind("input"+ns,function(event){if(comment.autoSize()){self._doAutoSizeEditor()}}).bind("keydown"+ns,function(event){if(event.keyCode===27||event.keyCode===9){comment.commentState(1);window.gcGlobal.activeElement=sheet}})}};CommentView.prototype._doAutoSizeEditor=function(){var self=this;var comment=self._comment,sheet=comment&&comment._sheet;var editor=self._editor,style=editor.style;var oldEditorHeight=$(editor).height();var oldEditorWidth=$(editor).width(),newEditorHeight,newEditorWidth;var lineHeight=0;if(style.font){lineHeight=sheet._getFontHeight(style.font)}else
{var font="";if(comment.fontStyle()){font+=" "+comment.fontStyle()}if(comment.fontWeight()){font+=" "+comment.fontWeight()}if(comment.fontSize()){font+=" "+comment.fontSize()}if(comment.fontFamily()){font+=" "+comment.fontFamily()}lineHeight=sheet._getFontHeight(font)}var minEditorHeight=lineHeight,minEditorWidth=5;var lines=[];lines=editor.value.split('\n');if(lines&&lines.length>0){newEditorHeight=Math_max(lines.length*lineHeight,minEditorHeight);var maxLineWidth=0;for(var i=0;i<lines.length;i++){var lineWidth=sheet._getStringWidth(lines[i],style.font);if(maxLineWidth<lineWidth){maxLineWidth=lineWidth}}newEditorWidth=Math_max(maxLineWidth,minEditorWidth)}else
{newEditorHeight=minEditorHeight;newEditorWidth=minEditorWidth}$(editor).css("height",newEditorHeight).css("width",newEditorWidth);$(self._host).css("height","auto").css("width","auto");comment._text=editor.value;var widthOffset=newEditorWidth-oldEditorWidth;if(widthOffset!==0){comment._changeProperty("width",comment.width()+widthOffset)}var heightOffset=newEditorHeight-oldEditorHeight;if(heightOffset!==0){comment._changeProperty("height",comment.height()+heightOffset)}};CommentView.prototype._detachEditorEventHandler=function(){var self=this,comment=self._comment,editor=self._editor;if(comment.commentState()===2&&editor){$(editor).unbind(".editor")}};CommentView.prototype._handleDocumentMouseMove=function(){var self=this,mouseCapture=this._commentManager._mouseCapture;if(!mouseCapture.capture){var ns=".gcComment";$(document).bind("mousemove"+ns,function(e){self._doMouseMove(e)}).bind("mouseup"+ns,function(e){self._doMouseUp(e)});mouseCapture.capture=true}};CommentView.prototype._unhandleDocumentMouseMove=function(){var mouseCapture=this._commentManager._mouseCapture;if(mouseCapture.capture){mouseCapture.capture=false;$(document).unbind(".gcComment")}};return CommentView})();spread.CommentView=CommentView;var CommentManager=(function(){function CommentManager(sheet){var self=this;self._sheet=sheet;self._mouseCapture={capture:false,x:0,y:0,cachedRect:keyword_null,resizeDirct:-100};self._editorDom=keyword_null;self._hoverShowComment=keyword_null;self._activeComment=keyword_null;self._commentList=[];self._commentViewList=[];self.createEditDom()}CommentManager.prototype.createEditDom=function(){var textArea=document.createElement("textarea");$(textArea).addClass("gc-comment-editor").css("left",0).css("top",0).css("position","absolute").css("margin",0).css("padding",0).css("word-wrap","break-word").css("word-break","normal").css("overflow","hidden").css("resize","none").css("outline","none").css("border","0px").attr("autocomplete","off").attr("gcUIElement","gcEditingInput");this._editorDom=textArea};CommentManager.prototype.getCommentList=function(){var self=this,commentList=[];for(var i=0;i<self._commentList.length;i++){commentList.push(self._commentList[i])}return commentList};CommentManager.prototype.getHoverShownComment=function(){return this._hoverShowComment};CommentManager.prototype._addCommentView=function(commentView){var self=this;if(commentView&&self._commentViewList.indexOf(commentView)===-1){this._commentViewList.push(commentView)}};CommentManager.prototype._removeCommentView=function(commentView){this._commentViewList.splice(this._commentViewList.indexOf(commentView),1)};CommentManager.prototype.getCommentView=function(comment){if(!comment){return keyword_null}for(var i=0;i<this._commentViewList.length;i++){var commentView=this._commentViewList[i];if(commentView.getComment()===comment){return commentView}}return keyword_null};CommentManager.prototype.hasComment=function(){return this._commentList.length>0};CommentManager.prototype.addComment=function(row,col,comment){var self=this;if(comment&&!self.containsComment(comment)){comment._sheet=self._sheet;comment._rowIndex=row;comment._colIndex=col;comment._zIndex=898;self._updateCommentZIndex();self._commentList.push(comment);self._sheet.invalidate()}};CommentManager.prototype._updateCommentZIndex=function(){var self=this,commentList=self._commentList;for(var i=0;i<commentList.length;i++){commentList[i]._zIndex--}};CommentManager.prototype._getTopCommentZIndex=function(){var self=this;if(self._commentList.length>0){var topCommentZindex=self._commentList[0].zIndex();for(var i=1;i<self._commentList.length;i++){var comment=self._commentList[i];if(topCommentZindex<comment.zIndex()){topCommentZindex=comment.zIndex()}}return topCommentZindex}return 0};CommentManager.prototype.removeComment=function(comment){var self=this,commentList=self._commentList;if(comment){self.hideComment(comment);commentList.splice(commentList.indexOf(comment),1);var commentView=self.getCommentView(comment);if(commentView){self._removeCommentView(commentView)}}};CommentManager.prototype.containsComment=function(comment){var self=this;if(self._commentList.indexOf(comment)!==-1){return true}return false};CommentManager.prototype.clear=function(row,column,rowCount,columnCount){var self=this,sheet=self._sheet;var oldState=sheet.isPaintSuspended();sheet.isPaintSuspended(true);for(var i=0;i<rowCount;i++){for(var j=0;j<columnCount;j++){var comment=sheet.getComment(i+row,j+column);if(comment){self.removeComment(comment);sheet.setComment(i+row,j+column,keyword_null)}}}sheet.isPaintSuspended(oldState)};CommentManager.prototype.addRows=function(row,rowCount){var self=this,commentList=self._commentList,commentViewList=self._commentViewList;for(var i=0;i<commentList.length;i++){var comment=commentList[i];if(row<=comment._rowIndex){comment._rowIndex+=rowCount}}for(var i=0;i<commentViewList.length;i++){var commentView=commentViewList[i];if(commentView.isOpen()){commentView.addRows(row,rowCount)}}};CommentManager.prototype.addColumns=function(column,columnCount){var self=this,commentList=self._commentList,commentViewList=self._commentViewList;for(var i=0;i<commentList.length;i++){var comment=commentList[i];if(column<=comment._colIndex){comment._colIndex+=columnCount}}for(var i=0;i<commentViewList.length;i++){var commentView=commentViewList[i];if(commentView.isOpen()){commentView.addColumns(column,columnCount)}}};CommentManager.prototype.removeRows=function(row,rowCount){var self=this,commentList=self._commentList,commentViewList=self._commentViewList;for(var i=0;i<commentList.length;i++){var comment=commentList[i];if(comment._rowIndex>=row&&comment._rowIndex<row+rowCount){self.removeComment(comment);i--}}for(var i=0;i<commentList.length;i++){var comment=commentList[i];if(row<comment._rowIndex){comment._rowIndex-=rowCount}}for(var i=0;i<commentViewList.length;i++){var commentView=commentViewList[i];if(commentView.isOpen()){commentView.removeRows(row,rowCount)}}};CommentManager.prototype.removeColumns=function(column,columnCount){var self=this,commentList=self._commentList,commentViewList=self._commentViewList;for(var i=0;i<commentList.length;i++){var comment=commentList[i];if(comment._colIndex>=column&&comment._colIndex<column+columnCount){self.removeComment(comment);i--}}for(var i=0;i<commentList.length;i++){var comment=commentList[i];if(column<comment._colIndex){comment._colIndex-=columnCount}}for(var i=0;i<commentViewList.length;i++){var commentView=commentViewList[i];if(commentView.isOpen()){commentView.removeColumns(column,columnCount)}}};CommentManager.prototype.getActiveComment=function(){return this._activeComment};CommentManager.prototype.activateComment=function(comment){var self=this;if(comment&&comment!==self._activeComment){self.deactivateComment();self._activeComment=comment}};CommentManager.prototype.deactivateComment=function(){var self=this,activeComment=self._activeComment;if(activeComment){var commentView=self.getCommentView(activeComment);if(commentView&&!commentView._isMoving&&!commentView._isResizing){if(commentView.isEditing()){commentView.detachEditor()}activeComment.commentState(3);self._activeComment=keyword_null}}};CommentManager.prototype.showComment=function(comment){var self=this;if(comment){var commentView=self.getCommentView(comment);if(!commentView){commentView=new CommentView(comment,self);self._addCommentView(commentView)}commentView.open()}};CommentManager.prototype.showAllComments=function(){for(var i=0;i<this._commentList.length;i++){this.showComment(this._commentList[i])}};CommentManager.prototype.hideComment=function(comment){var self=this,commentView=self.getCommentView(comment);if(commentView&&commentView.isOpen()){commentView.close();if(comment===self._activeComment){self._sheet._loadAndSetSheetSelections()}}clearTimeout(comment._timeout);comment._timeout=keyword_null};CommentManager.prototype.hideAllComments=function(){for(var i=0;i<this._commentList.length;i++){this.hideComment(this._commentList[i])}};CommentManager.prototype.hoverShowComment=function(comment){var self=this,activeComment=self._activeComment;if(activeComment){if(activeComment.displayMode()===1){if(activeComment.commentState()===2){return}}else
{if(activeComment.commentState()===2||activeComment.commentState()===1){return}}}if(comment!==self._hoverShowComment){if(self._hoverShowComment){self.hideComment(self._hoverShowComment)}if(comment&&comment.displayMode()==2){if(!self._mouseCapture.capture&&!comment._timeout){self._hoverShowComment=comment;comment._timeout=setTimeout(function(){self.showComment(comment)},200)}}else
{self._hoverShowComment=keyword_null}}};CommentManager.prototype._isHitTestComment=function(comment,x,y){var commentView=this.getCommentView(comment);if(commentView){var commentRect=commentView.getCommentRect();if(commentRect){return commentRect.contains(x,y)}}return false};CommentManager.prototype._isHitTestCommentEditArea=function(comment,x,y){var commentView=this.getCommentView(comment);if(commentView){var commentEditAreaRect=commentView.getCommentEditAreaRect();if(commentEditAreaRect){return commentEditAreaRect.contains(x,y)}}return false};CommentManager.prototype.getCommentHitInfo=function(x,y){var self=this;var topComment=keyword_null;for(var i=0;i<self._commentList.length;i++){var comment=self._commentList[i];if(self._isHitTestComment(comment,x,y)){if(topComment){if(comment.zIndex()>topComment.zIndex()){topComment=comment}}else
{topComment=comment}}}if(topComment){if(self._isHitTestCommentEditArea(topComment,x,y)){return{x:x,y:y,comment:topComment,area:"editArea"}}else
{return{x:x,y:y,comment:topComment,area:"moveResizeArea"}}}return keyword_null};CommentManager.prototype.getCommentActualZIndex=function(comment){var self=this,sheet=self._sheet;var topCommentZIndex=self._getTopCommentZIndex();if(comment===self._hoverShowComment){return topCommentZIndex+2}else if(comment===self._activeComment){return topCommentZIndex+1}return comment.zIndex()};CommentManager.prototype.updateCommentsLayoutWhenRowColumnChanged=function(){var commentViewList=this._commentViewList;for(var i=0;i<commentViewList.length;i++){var commentView=commentViewList[i];commentView.updateLayoutWhenRowColumnChanged()}};CommentManager.prototype.updateCommentsLayoutWhenSheetScroll=function(){var commentViewList=this._commentViewList;for(var i=0;i<commentViewList.length;i++){var commentView=commentViewList[i];commentView.updateLayoutWhenSheetScroll()}};CommentManager.prototype.fromJSON=function(jsonData){if(!jsonData){return null}for(var i=0;i<jsonData.length;i++){var comment=new Comment;comment.fromJSON(jsonData[i]);if(comment.commentState()===1||comment.commentState()===2){this._activeComment=comment}this._sheet.setComment(comment._rowIndex,comment._colIndex,comment)}};CommentManager.prototype.toJSON=function(){var jsonData=[];for(var i=0;i<this._commentList.length;i++){jsonData.push(this._commentList[i].toJSON())}if(jsonData.length===0){return keyword_undefined}return jsonData};return CommentManager})();spread.CommentManager=CommentManager;var CommentRender=(function(){function CommentRender(containerDiv){this._sheet=keyword_null;var self=this;self._commentLayoutPanel=self._createCommentLayoutPanel();containerDiv.appendChild(self._commentLayoutPanel)}CommentRender.prototype._createCommentLayoutPanel=function(){var self=this;var commentLayoutPanel=document.createElement('div');$(commentLayoutPanel).addClass("comment-layoutPanel").css("position","absolute").css("left",0).css("top",0).css("height",0).css("width",0).css("overflow","visible").css("z-index",701);return commentLayoutPanel};CommentRender.prototype.renderCommentFloatPanel=function(sheet){var self=this;var st=self._sheet||sheet;if(!st._commentManager.hasComment()){return}var sheetLayout=sheet._getSheetLayout();$(self._commentLayoutPanel).css("left",sheetLayout.x+sheetLayout.rowHeaderWidth).css("top",sheetLayout.y+sheetLayout.colHeaderHeight);if(self._sheet!==sheet){var commentManager;if(self._sheet){commentManager=self._sheet._commentManager}if(commentManager){var activeComment=commentManager.getActiveComment();if(activeComment&&activeComment.commentState()===2){activeComment._changeProperty("commentState",1)}}self._sheet=sheet}};CommentRender.prototype.renderCommentCellAdorner=function(ctx,sheetArea,cell){var row=cell.row,col=cell.col,x=cell.x,y=cell.y,width=cell.width,height=cell.height;var self=this;if(sheetArea===3&&self._sheet){var comment=self._sheet.getComment(row,col);if(comment){var redAngleSize=6;if(ctx&&width>0&&height>0){ctx.save();ctx.rect(x,y,width,height);ctx.clip();ctx.fillStyle="red";ctx.beginPath();ctx.moveTo(x+width-redAngleSize,y);ctx.lineTo(x+width,y);ctx.lineTo(x+width,y+redAngleSize);ctx.lineTo(x+width-redAngleSize,y);ctx.fill();ctx.restore()}}}};CommentRender.prototype.renderComment=function(commentManager){var sheet=this._sheet,comments=commentManager.getCommentList();for(var i=0;i<comments.length;i++){var comment=comments[i];var commentView=commentManager.getCommentView(comment);if(this._canShowComment(commentManager,comment)){if(comment.displayMode()===1&&comment===commentManager.getHoverShownComment()){commentManager._hoverShowComment=keyword_null}if(commentView&&commentView.isOpen()){commentView.updateLayout()}else
{commentManager.showComment(comment)}}else
{if(commentView&&commentView.isOpen()){commentManager.hideComment(comment)}}}var activeComment=commentManager.getActiveComment();if(activeComment){var activeCommentView=commentManager.getCommentView(activeComment);if(activeCommentView&&activeCommentView.isOpen()){if(sheet.getSelections().length>0){sheet._selectionModel.clear()}}}};CommentRender.prototype._canShowComment=function(commentManager,comment){var sheet=this._sheet;if(sheet.getColumnWidth(comment._colIndex)&&sheet.getRowHeight(comment._rowIndex)){switch(comment.displayMode()){case 1:return true;case 2:if(comment.commentState()===2||comment.commentState()===1){if(commentManager&&comment!==commentManager.getHoverShownComment()){commentManager._hoverShowComment=comment}return true}}}return false};return CommentRender})();spread.CommentRender=CommentRender})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){(function(Calc){(function(Functions){spread.feature("calc.functions_db",["calc.functions"]);var keyword_null=null,Math_max=Math.max,Math_sqrt=Math.sqrt;var CalcErrors=Calc.Errors,CalcErrorsNull=CalcErrors.Null,CalcErrorsDivideByZero=CalcErrors.DivideByZero,CalcErrorsValue=CalcErrors.Value,CalcErrorsReference=CalcErrors.Reference,CalcErrorsName=CalcErrors.Name,CalcErrorsNotAvailable=CalcErrors.NotAvailable,CalcErrorsNumber=CalcErrors.Number;var _CriteriaEvaluator=(function(){function _CriteriaEvaluator(criteriaOperator,criteriaValue){this.criteriaOperator=criteriaOperator;this.criteriaValue=criteriaValue}_CriteriaEvaluator.prototype.evaluate=function(databaseValue){var result=this.criteriaOperator.evaluate(databaseValue,this.criteriaValue,keyword_null);return(typeof result==="boolean")?Calc.Convert.toBool(result):false};return _CriteriaEvaluator})();var _DatabaseEnumerator=(function(){function _DatabaseEnumerator(database,field,criteria){this.row=0;var self=this;self.database=database;self.field=field;self.criteria=criteria;if(arguments.length===3){self.column=self.columnIndex(database,field);if(database.getRowCount()<2||database.getColumnCount()<1){throw spread.SR.Exp_InvalidCast;}if(criteria.getRowCount()<2||criteria.getColumnCount()<1){throw spread.SR.Exp_InvalidCast;}if(self.column<0||self.database.getColumnCount()<=self.column){throw spread.SR.Exp_InvalidCast;}}else if(arguments.length===2){self.column=-1;if(database.getRowCount()<2||database.getColumnCount()<1){throw spread.SR.Exp_InvalidCast;}if(criteria.getRowCount()<2||criteria.getColumnCount()<1){throw spread.SR.Exp_InvalidCast;}}else
{throw spread.SR.Exp_InvalidNull;}}_DatabaseEnumerator.prototype.columnIndex=function(database,field){if(typeof field==="string"){for(var i=0;i<database.getColumnCount();i++){var columnLabel=Calc.Convert.toString(database.getValue(0,i));if(columnLabel&&this.ignoreCaseEqual(columnLabel,field)){return i}}return-1}else
{return Calc.Convert.toInt(field)-1}};_DatabaseEnumerator.prototype.current=function(){var self=this;if(self.row<=0||self.database.getRowCount()<=self.row){throw spread.SR.Exp_InvalidOperation;}return self.database.getValue(self.row,self.column)};_DatabaseEnumerator.prototype.moveNext=function(){var self=this;var found=false;while(!found&&self.row<self.database.getRowCount()){self.row++;if(self.row<self.database.getRowCount()){found=self.rowMeetsCriteria()}}return found};_DatabaseEnumerator.prototype.createEvaluator=function(criteria){if(typeof criteria==="string"){var criteriaText=Calc.Convert.toString(criteria);var textHelper=new spread._StringHelper(criteriaText);var criteriaDouble=0.0;for(var i=0;i<_DatabaseEnumerator.operators.length;i++){if(textHelper.startsWith(_DatabaseEnumerator.operators[i].getName())){criteriaText=criteriaText.substring(_DatabaseEnumerator.operators[i].getName().length);if(!isNaN(criteriaDouble=spread._NumberHelper.parseInvariant(criteriaText))){criteria=criteriaDouble}else if(this.ignoreCaseEqual("true",criteriaText)){criteria=true}else if(this.ignoreCaseEqual("false",criteriaText)){criteria=false}else
{criteria=criteriaText}return new _CriteriaEvaluator(_DatabaseEnumerator.operators[i],criteria)}}return new _CriteriaEvaluator(Calc.Operators.equal,criteria)}else if(criteria){return new _CriteriaEvaluator(Calc.Operators.equal,criteria)}return keyword_null};_DatabaseEnumerator.prototype.rowMeetsCriteria=function(){var self=this;var pass=false;for(var i=1;!pass&&i<self.criteria.getRowCount();i++){pass=true;for(var j=0;pass&&j<self.criteria.getColumnCount();j++){var criteriaEva=self.createEvaluator(self.criteria.getValue(i,j));if(criteriaEva){var k=self.columnIndex(self.database,self.criteria.getValue(0,j));var databaseValue=self.database.getValue(self.row,k);pass=criteriaEva.evaluate(databaseValue)}}}return pass};_DatabaseEnumerator.prototype.reset=function(){this.row=0};_DatabaseEnumerator.prototype.ignoreCaseEqual=function(_stringOne,_stringTwo){_stringOne=_stringOne.toLowerCase();_stringTwo=_stringTwo.toLowerCase();return(_stringOne===_stringTwo)};_DatabaseEnumerator.operators=[Calc.Operators.equal,Calc.Operators.notEqual,Calc.Operators.lessThanOrEqual,Calc.Operators.greaterThanOrEqual,Calc.Operators.lessThan,Calc.Operators.greaterThan];return _DatabaseEnumerator})();function db_daverage(args){if(!args[0]||!args[1]||!args[2]){throw spread.SR.Exp_ArgumentNull;}var database=Calc.Convert._toArray(args[0]);var field=args[1];var criteria=Calc.Convert._toArray(args[2]);var sum=0.0;var n=0.0;var enumerator=new _DatabaseEnumerator(database,field,criteria);while(enumerator.moveNext()){var obj=enumerator.current();if(Calc.Convert.isNumber(obj)){var d;if(isNaN(d=Calc.Convert.toDouble(obj))){return CalcErrorsValue}sum+=d;n++}else if(Calc.Convert.isError(obj)){return obj}}if(0.0===n){return CalcErrorsDivideByZero}return Calc.Convert.toResult(sum/n)}function db_dcount(args){if(!args[0]||!args[1]||!args[2]){throw spread.SR.Exp_ArgumentNull;}var database=Calc.Convert._toArray(args[0]);var field=args[1];var criteria=Calc.Convert._toArray(args[2]);var n=0.0;var enumerator=keyword_null;if(Calc._Helper._argumentExists(args,1)){enumerator=new _DatabaseEnumerator(database,field,criteria);while(enumerator.moveNext()){var obj=enumerator.current();if(Calc.Convert.isNumber(obj)){n++}}}else
{enumerator=new _DatabaseEnumerator(database,criteria);while(enumerator.moveNext()){n++}}return Calc.Convert.toResult(n)}function db_dcounta(args){if(!args[0]||!args[1]||!args[2]){throw spread.SR.Exp_ArgumentNull;}var database=Calc.Convert._toArray(args[0]);var field=args[1];var criteria=Calc.Convert._toArray(args[2]);var n=0.0;var enumerator=keyword_null;if(Calc._Helper._argumentExists(args,1)){enumerator=new _DatabaseEnumerator(database,field,criteria);while(enumerator.moveNext()){var obj=enumerator.current();if(obj){n++}}}else
{enumerator=new _DatabaseEnumerator(database,criteria);while(enumerator.moveNext()){n++}}return Calc.Convert.toResult(n)}function db_dget(args){if(!args[0]||!args[1]||!args[2]){throw spread.SR.Exp_ArgumentNull;}var database=Calc.Convert._toArray(args[0]);var field=args[1];var criteria=Calc.Convert._toArray(args[2]);var val=keyword_null;var enumerator=new _DatabaseEnumerator(database,field,criteria);if(enumerator.moveNext()){val=enumerator.current();if(enumerator.moveNext()){return CalcErrorsNumber}}else
{return CalcErrorsValue}return val}function db_dmax(args){if(!args[0]||!args[1]||!args[2]){throw spread.SR.Exp_ArgumentNull;}var database=Calc.Convert._toArray(args[0]);var field=args[1];var criteria=Calc.Convert._toArray(args[2]);var isAny=false;var max=-1.79769e+308;var enumerator=new _DatabaseEnumerator(database,field,criteria);while(enumerator.moveNext()){var obj=enumerator.current();if(Calc.Convert.isNumber(obj)){var x;if(isNaN(x=Calc.Convert.toDouble(obj))){return CalcErrorsValue}if(!isAny||x>max){max=x}isAny=true}else if(Calc.Convert.isError(obj)){return obj}}if(!isAny){return CalcErrorsValue}return Calc.Convert.toResult(max)}function db_dmin(args){if(!args[0]||!args[1]||!args[2]){throw spread.SR.Exp_ArgumentNull;}var database=Calc.Convert._toArray(args[0]);var field=args[1];var criteria=Calc.Convert._toArray(args[2]);var any=false;var min=1.79769e+308;var enumerator=new _DatabaseEnumerator(database,field,criteria);while(enumerator.moveNext()){var obj=enumerator.current();if(Calc.Convert.isNumber(obj)){var val;if(isNaN(val=Calc.Convert.toDouble(obj))){return CalcErrorsValue}if(!any||val<min){min=val}any=true}else if(Calc.Convert.isError(obj)){return obj}}if(!any){return CalcErrorsValue}return Calc.Convert.toResult(min)}function db_dproduct(args){if(!args[0]||!args[1]||!args[2]){throw spread.SR.Exp_ArgumentNull;}var database=Calc.Convert._toArray(args[0]);var field=args[1];var criteria=Calc.Convert._toArray(args[2]);var product=1.0;var enumerator=new _DatabaseEnumerator(database,field,criteria);while(enumerator.moveNext()){var obj=enumerator.current();if(Calc.Convert.isNumber(obj)){var x;if(isNaN(x=Calc.Convert.toDouble(obj))){return CalcErrorsValue}product*=x}else if(Calc.Convert.isError(obj)){return obj}}return Calc.Convert.toResult(product)}function db_dstdev(args){if(!args[0]||!args[1]||!args[2]){throw spread.SR.Exp_ArgumentNull;}var database=Calc.Convert._toArray(args[0]);var field=args[1];var criteria=Calc.Convert._toArray(args[2]);var sumx=0.0;var sumx2=0.0;var n=0.0;var enumerator=new _DatabaseEnumerator(database,field,criteria);while(enumerator.moveNext()){var obj=enumerator.current();if(Calc.Convert.isNumber(obj)){var x;if(isNaN(x=Calc.Convert.toDouble(obj))){return CalcErrorsValue}sumx+=x;sumx2+=x*x;n++}else if(Calc.Convert.isError(obj)){return obj}}if(n<=1.0){return CalcErrorsDivideByZero}return Calc.Convert.toResult(Math_sqrt(Math_max(0.0,(n*sumx2-sumx*sumx)/(n*(n-1.0)))))}function db_dstdevp(args){if(!args[0]||!args[1]||!args[2]){throw spread.SR.Exp_ArgumentNull;}var database=Calc.Convert._toArray(args[0]);var field=args[1];var criteria=Calc.Convert._toArray(args[2]);var sumx=0.0;var sumx2=0.0;var n=0.0;var enumerator=new _DatabaseEnumerator(database,field,criteria);while(enumerator.moveNext()){var obj=enumerator.current();if(Calc.Convert.isNumber(obj)){var x;if(isNaN(x=Calc.Convert.toDouble(obj))){return CalcErrorsValue}sumx+=x;sumx2+=x*x;n++}else if(Calc.Convert.isError(obj)){return obj}}if(n<=0.0){return CalcErrorsDivideByZero}return Calc.Convert.toResult(Math_sqrt(Math_max(0.0,(n*sumx2-sumx*sumx)/(n*n))))}function db_dsum(args){if(!args[0]||!args[1]||!args[2]){throw spread.SR.Exp_ArgumentNull;}var database=Calc.Convert._toArray(args[0]);var field=args[1];var criteria=Calc.Convert._toArray(args[2]);var sum=0.0;var enumerator=new _DatabaseEnumerator(database,field,criteria);while(enumerator.moveNext()){var obj=enumerator.current();if(Calc.Convert.isNumber(obj)){var x;if(isNaN(x=Calc.Convert.toDouble(obj))){return CalcErrorsValue}sum+=x}else if(Calc.Convert.isError(obj)){return obj}}return Calc.Convert.toResult(sum)}function db_dvar(args){if(!args[0]||!args[1]||!args[2]){throw spread.SR.Exp_ArgumentNull;}var database=Calc.Convert._toArray(args[0]);var field=args[1];var criteria=Calc.Convert._toArray(args[2]);var sumx=0.0;var sumx2=0.0;var n=0.0;var enumerator=new _DatabaseEnumerator(database,field,criteria);while(enumerator.moveNext()){var obj=enumerator.current();if(Calc.Convert.isNumber(obj)){var x;if(isNaN(x=Calc.Convert.toDouble(obj))){return CalcErrorsValue}sumx+=x;sumx2+=x*x;n++}else if(Calc.Convert.isError(obj)){return obj}}if(n<=1.0){return CalcErrorsDivideByZero}return Calc.Convert.toResult(Math_max(0.0,(n*sumx2-sumx*sumx)/(n*(n-1.0))))}function db_dvarp(args){if(!args[0]||!args[1]||!args[2]){throw spread.SR.Exp_ArgumentNull;}var database=Calc.Convert._toArray(args[0]);var field=args[1];var criteria=Calc.Convert._toArray(args[2]);var sumx=0.0;var sumx2=0.0;var n=0.0;var enumerator=new _DatabaseEnumerator(database,field,criteria);while(enumerator.moveNext()){var obj=enumerator.current();if(Calc.Convert.isNumber(obj)){var x;if(isNaN(x=Calc.Convert.toDouble(obj))){return CalcErrorsValue}sumx+=x;sumx2+=x*x;n++}else if(Calc.Convert.isError(obj)){return obj}}if(n<=1.0){return CalcErrorsDivideByZero}return Calc.Convert.toResult(Math_max(0.0,(n*sumx2-sumx*sumx)/(n*n)))}Functions.def("DAVERAGE",db_daverage,{minArgs:3,maxArgs:3,acceptsReference:Functions.acceptsNotSecond,acceptsArray:Functions.acceptsNotSecond});Functions.def("DCOUNT",db_dcount,{minArgs:3,maxArgs:3,acceptsReference:Functions.acceptsNotSecond,acceptsArray:Functions.acceptsNotSecond});Functions.def("DCOUNTA",db_dcounta,{minArgs:3,maxArgs:3,acceptsReference:Functions.acceptsNotSecond,acceptsArray:Functions.acceptsNotSecond});Functions.def("DGET",db_dget,{minArgs:3,maxArgs:3,acceptsReference:Functions.acceptsNotSecond,acceptsArray:Functions.acceptsNotSecond});Functions.def("DMAX",db_dmax,{minArgs:3,maxArgs:3,acceptsReference:Functions.acceptsNotSecond,acceptsArray:Functions.acceptsNotSecond});Functions.def("DMIN",db_dmin,{minArgs:3,maxArgs:3,acceptsReference:Functions.acceptsNotSecond,acceptsArray:Functions.acceptsNotSecond});Functions.def("DPRODUCT",db_dproduct,{minArgs:3,maxArgs:3,acceptsReference:Functions.acceptsNotSecond,acceptsArray:Functions.acceptsNotSecond});Functions.def("DSTDEV",db_dstdev,{minArgs:3,maxArgs:3,acceptsReference:Functions.acceptsNotSecond,acceptsArray:Functions.acceptsNotSecond});Functions.def("DSTDEVP",db_dstdevp,{minArgs:3,maxArgs:3,acceptsReference:Functions.acceptsNotSecond,acceptsArray:Functions.acceptsNotSecond});Functions.def("DSUM",db_dsum,{minArgs:3,maxArgs:3,acceptsReference:Functions.acceptsNotSecond,acceptsArray:Functions.acceptsNotSecond});Functions.def("DVAR",db_dvar,{minArgs:3,maxArgs:3,acceptsReference:Functions.acceptsNotSecond,acceptsArray:Functions.acceptsNotSecond});Functions.def("DVARP",db_dvarp,{minArgs:3,maxArgs:3,acceptsReference:Functions.acceptsNotSecond,acceptsArray:Functions.acceptsNotSecond})})(Calc.Functions||(Calc.Functions={}));var Functions=Calc.Functions})(spread.Calc||(spread.Calc={}));var Calc=spread.Calc})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){(function(Calc){(function(Functions){spread.feature("calc.functions_eng",["calc.functions"]);var keyword_null=null,Math_abs=Math.abs,Math_sin=Math.sin,Math_cos=Math.cos,Math_sqrt=Math.sqrt,Math_log=Math.log,Math_pow=Math.pow,Math_exp=Math.exp,Math_PI=Math.PI,Math_E=Math.E,Math_atan2=Math.atan2,Math_floor=Math.floor;var CalcErrors=Calc.Errors,CalcErrorsNull=CalcErrors.Null,CalcErrorsDivideByZero=CalcErrors.DivideByZero,CalcErrorsValue=CalcErrors.Value,CalcErrorsReference=CalcErrors.Reference,CalcErrorsName=CalcErrors.Name,CalcErrorsNotAvailable=CalcErrors.NotAvailable,CalcErrorsNumber=CalcErrors.Number;var INFINITY=1.79769313486231570815E308,MAXNUM=1.79769313486231570815E308,SQ2OPI=7.9788456080286535587989E-1,THPIO4=2.35619449019234492885,TWOOPI=6.36619772367581343075535E-1,PIO4=7.85398163397448309616E-1,MACHEP=1.11022302462515654042E-16,EUL=5.772156649015328606065e-1;function _getPP(){var PP=[];PP[0]=(7.96936729297347051624E-4);PP[1]=(8.28352392107440799803E-2);PP[2]=(1.23953371646414299388E0);PP[3]=(5.44725003058768775090E0);PP[4]=(8.74716500199817011941E0);PP[5]=(5.30324038235394892183E0);PP[6]=(9.99999999999999997821E-1);return PP}function _getPP2(){var PP=[];PP[0]=(7.62125616208173112003E-4);PP[1]=(7.31397056940917570436E-2);PP[2]=(1.12719608129684925192E0);PP[3]=(5.11207951146807644818E0);PP[4]=(8.42404590141772420927E0);PP[5]=(5.21451598682361504063E0);PP[6]=(1.00000000000000000254E0);return PP}function _getPQ(){var PQ=[];PQ[0]=(9.24408810558863637013E-4);PQ[1]=(8.56288474354474431428E-2);PQ[2]=(1.25352743901058953537E0);PQ[3]=(5.47097740330417105182E0);PQ[4]=(8.76190883237069594232E0);PQ[5]=(5.30605288235394617618E0);PQ[6]=(1.00000000000000000218E0);return PQ}function _getPQ2(){var PQ=[];PQ[0]=(5.71323128072548699714E-4);PQ[1]=(6.88455908754495404082E-2);PQ[2]=(1.10514232634061696926E0);PQ[3]=(5.07386386128601488557E0);PQ[4]=(8.39985554327604159757E0);PQ[5]=(5.20982848682361821619E0);PQ[6]=(9.99999999999999997461E-1);return PQ}function _getQP(){var QP=[];QP[0]=(-1.13663838898469149931E-2);QP[1]=(-1.28252718670509318512E0);QP[2]=(-1.95539544257735972385E1);QP[3]=(-9.32060152123768231369E1);QP[4]=(-1.77681167980488050595E2);QP[5]=(-1.47077505154951170175E2);QP[6]=(-5.14105326766599330220E1);QP[7]=(-6.05014350600728481186E0);return QP}function _getQP2(){var QP=[];QP[0]=(5.10862594750176621635E-2);QP[1]=(4.98213872951233449420E0);QP[2]=(7.58238284132545283818E1);QP[3]=(3.66779609360150777800E2);QP[4]=(7.10856304998926107277E2);QP[5]=(5.97489612400613639965E2);QP[6]=(2.11688757100572135698E2);QP[7]=(2.52070205858023719784E1);return QP}function _getQQ(){var QQ=[];QQ[0]=(6.43178256118178023184E1);QQ[1]=(8.56430025976980587198E2);QQ[2]=(3.88240183605401609683E3);QQ[3]=(7.24046774195652478189E3);QQ[4]=(5.93072701187316984827E3);QQ[5]=(2.06209331660327847417E3);QQ[6]=(2.42005740240291393179E2);return QQ}function _getQQ2(){var QQ=[];QQ[0]=(7.42373277035675149943E1);QQ[1]=(1.05644886038262816351E3);QQ[2]=(4.98641058337653607651E3);QQ[3]=(9.56231892404756170795E3);QQ[4]=(7.99704160447350683650E3);QQ[5]=(2.82619278517639096600E3);QQ[6]=(3.36093607810698293419E2);return QQ}function _getYP(){var YP=[];YP[0]=(1.55924367855235737965E4);YP[1]=(-1.46639295903971606143E7);YP[2]=(5.43526477051876500413E9);YP[3]=(-9.82136065717911466409E11);YP[4]=(8.75906394395366999549E13);YP[5]=(-3.46628303384729719441E15);YP[6]=(4.42733268572569800351E16);YP[7]=(-1.84950800436986690637E16);return YP}function _getYP2(){var YP=[];YP[0]=(1.26320474790178026440E9);YP[1]=(-6.47355876379160291031E11);YP[2]=(1.14509511541823727583E14);YP[3]=(-8.12770255501325109621E15);YP[4]=(2.02439475713594898196E17);YP[5]=(-7.78877196265950026825E17);return YP}function _getYQ(){var YQ=[];YQ[0]=(1.04128353664259848412E3);YQ[1]=(6.26107330137134956842E5);YQ[2]=(2.68919633393814121987E8);YQ[3]=(8.64002487103935000337E10);YQ[4]=(2.02979612750105546709E13);YQ[5]=(3.17157752842975028269E15);YQ[6]=(2.50596256172653059228E17);return YQ}function _getYQ2(){var YQ=[];YQ[0]=(5.94301592346128195359E2);YQ[1]=(2.35564092943068577943E5);YQ[2]=(7.34811944459721705660E7);YQ[3]=(1.87601316108706159478E10);YQ[4]=(3.88231277496238566008E12);YQ[5]=(6.20557727146953693363E14);YQ[6]=(6.87141087355300489866E16);YQ[7]=(3.97270608116560655612E18);return YQ}function _getRP(){var RP=[];RP[0]=(-4.79443220978201773821E9);RP[1]=(1.95617491946556577543E12);RP[2]=(-2.49248344360967716204E14);RP[3]=(9.70862251047306323952E15);return RP}function _getRP2(){var RP=[];RP[0]=(-8.99971225705559398224E8);RP[1]=(4.52228297998194034323E11);RP[2]=(-7.27494245221818276015E13);RP[3]=(3.68295732863852883286E15);return RP}function _getRQ(){var RQ=[];RQ[0]=(4.99563147152651017219E2);RQ[1]=(1.73785401676374683123E5);RQ[2]=(4.84409658339962045305E7);RQ[3]=(1.11855537045356834862E10);RQ[4]=(2.11277520115489217587E12);RQ[5]=(3.10518229857422583814E14);RQ[6]=(3.18121955943204943306E16);RQ[7]=(1.71086294081043136091E18);return RQ}function _getRQ2(){var RQ=[];RQ[0]=(6.20836478118054335476E2);RQ[1]=(2.56987256757748830383E5);RQ[2]=(8.35146791431949253037E7);RQ[3]=(2.21511595479792499675E10);RQ[4]=(4.74914122079991414898E12);RQ[5]=(7.84369607876235854894E14);RQ[6]=(8.95222336184627338078E16);RQ[7]=(5.32278620332680085395E18);return RQ}function _gamma(x){var i,k,m;var ga,gr,z;var r=1.0;var g=[1.0,0.5772156649015329,-0.6558780715202538,-0.420026350340952e-1,0.1665386113822915,-0.421977345555443e-1,-0.9621971527877e-2,0.7218943246663e-2,-0.11651675918591e-2,-0.2152416741149e-3,0.1280502823882e-3,-0.201348547807e-4,-0.12504934821e-5,0.1133027232e-5,-0.2056338417e-6,0.6116095e-8,0.50020075e-8,-0.11812746e-8,0.1043427e-9,0.77823e-11,-0.36968e-11,0.51e-12,-0.206e-13,-0.54e-14,0.14e-14];if(x>171.0){return 1e308}if(x===parseInt(x,10)){if(x>0.0){ga=1.0;for(i=2;i<x;i++){ga*=i}}else
{ga=1e308}}else
{if(Math_abs(x)>1.0){z=Math_abs(x);m=parseInt(z,10);r=1.0;for(k=1;k<=m;k++){r*=(z-k)}z-=m}else
{z=x}gr=g[24];for(k=23;k>=0;k--){gr=gr*z+g[k]}ga=1.0/(gr*z);if(Math_abs(x)>1.0){ga*=r;if(x<0.0){ga=-Math_PI/(x*ga*Math_sin(Math_PI*x))}}}return ga}function _lgamma(x){var x0,x2,xp,gl,gl0;var k;var n=0;var a=[8.333333333333333e-02,-2.777777777777778e-03,7.936507936507937e-04,-5.952380952380952e-04,8.417508417508418e-04,-1.917526917526918e-03,6.410256410256410e-03,-2.955065359477124e-02,1.796443723688307e-01,-1.39243221690590];x0=x;if(x<=0.0){return 1e308}else if((x===1.0)||(x===2.0)){return 0.0}else if(x<=7.0){n=parseInt((7-x).toString(),10);x0=x+n}x2=1.0/(x0*x0);xp=2.0*Math_PI;gl0=a[9];for(k=8;k>=0;k--){gl0=gl0*x2+a[k]}gl=gl0/x0+0.5*Math_log(xp)+(x0-0.5)*Math_log(x0)-x0;if(x<=7.0){for(k=1;k<=n;k++){gl-=Math_log(x0-1.0);x0-=1.0}}return gl}function _expx2(x,sign){var u,u1,m,f;x=Math_abs(x);if(sign<0){x=-x}m=0.0078125*Math_floor(128*x+0.5);f=x-m;u=m*m;u1=2*m*f+f*f;if(sign<0){u=-u;u1=-u1}if((u+u1)>Math_log(MAXNUM)){return(INFINITY)}u=Math_exp(u)*Math_exp(u1);return(u)}function _polevl(x,coef,N){var ans;var i;var k=0;ans=parseFloat(coef[k++]);i=N;do
ans=ans*x+parseFloat(coef[k++]);while(--i!==0);return(ans)}function _p1evl(x,coef,N){var ans;var i;var k=0;ans=x+parseFloat(coef[k++]);i=N-1;do
ans=ans*x+parseFloat(coef[k++]);while(--i!==0);return(ans)}function _j0(x){var PP=_getPP();var PQ=_getPQ();var QP=_getQP();var QQ=_getQQ();var YP=_getYP();var YQ=_getYQ();var DR1=5.78318596294678452118E0;var DR2=3.04712623436620863991E1;var RP=_getRP();var RQ=_getRQ();var PIO4=7.85398163397448309616E-1;var SQ2OPI=7.9788456080286535587989E-1;var w,z,p,q,xn;if(x<0){x=-x}if(x<=5.0){z=x*x;if(x<1.0e-5){return(1.0-z/4.0)}p=(z-DR1)*(z-DR2);p=p*_polevl(z,RP,3)/_p1evl(z,RQ,8);return(p)}w=5.0/x;q=25.0/(x*x);p=_polevl(q,PP,6)/_polevl(q,PQ,6);q=_polevl(q,QP,7)/_p1evl(q,QQ,7);xn=x-PIO4;p=p*Math_cos(xn)-w*q*Math_sin(xn);return(p*SQ2OPI/Math_sqrt(x))}function _j1(x){var RP=_getRP2();var RQ=_getRQ2();var QP=_getQP2();var QQ=_getQQ2();var PP=_getPP2();var PQ=_getPQ2();var Z1=1.46819706421238932572E1;var Z2=4.92184563216946036703E1;var w,z,p,q,xn;var SQ2OPI=7.9788456080286535587989E-1;var THPIO4=2.35619449019234492885;w=x;if(x<0){w=-x}if(w<=5.0){z=x*x;w=_polevl(z,RP,3)/_p1evl(z,RQ,8);w=w*x*(z-Z1)*(z-Z2);return(w)}w=5.0/x;z=w*w;p=_polevl(z,PP,6)/_polevl(z,PQ,6);q=_polevl(z,QP,7)/_p1evl(z,QQ,7);xn=x-THPIO4;p=p*Math_cos(xn)-w*q*Math_sin(xn);return(p*SQ2OPI/Math_sqrt(x))}function _jn(n,x){var pkm2,pkm1,pk,xk,r,ans;var k,sign;var MACHEP=1.11022302462515654042E-16;if(n<0){n=-n;if((n&1)===0){sign=1}else
{sign=-1}}else
{sign=1}if(x<0.0){if((n&1)!==0){sign=-sign}x=-x}if(n===0){return(sign*_j0(x))}if(n===1){return(sign*_j1(x))}if(n===2){return(sign*(2.0*_j1(x)/x-_j0(x)))}if(x<MACHEP){return(0.0)}k=56;pk=2*(n+k);ans=pk;xk=x*x;do
{pk-=2.0;ans=pk-(xk/ans)}while(--k>0);ans=x/ans;pk=1.0;pkm1=1.0/ans;k=n-1;r=2*k;do
{pkm2=(pkm1*r-pk*x)/x;pk=pkm1;pkm1=pkm2;r-=2.0}while(--k>0);if(Math_abs(pk)>Math_abs(pkm1)){ans=_j1(x)/pk}else
{ans=_j0(x)/pkm1}return(sign*ans)}function _adoneGoto(ans,x,s){ans=Math_exp(-x)*Math_sqrt(Math_PI/(2.0*x))*s}function _asympGoto(x,n,k,pn,pk,z0,fn,t,s,nkf,i,z,ans,nk1f){if(x>Math_log(MAXNUM)){return(0.0)}k=n;pn=4.0*k*k;pk=1.0;z0=8.0*x;fn=1.0;t=1.0;s=t;nkf=MAXNUM;i=0;do
{z=pn-pk*pk;t=t*z/(fn*z0);nk1f=Math_abs(t);if((i>=n)&&(nk1f>nkf)){_adoneGoto(ans,x,s)}nkf=nk1f;s+=t;fn+=1.0;pk+=2.0;i+=1}while(Math_abs(t/s)>MACHEP)}function _kn(nn,x){var k,kf,nk1f,nkf,zn,t,s,z0,z;var ans,fn,pn,pk,zmn,tlg,tox;var i,n;if(nn<0){n=-nn}else
{n=nn}if(n>31){return(MAXNUM)}if(x<=0.0){return(MAXNUM)}if(x>9.55){_asympGoto(x,n,k,pn,pk,z0,fn,t,s,nkf,i,z,ans,nk1f)}ans=0.0;z0=0.25*x*x;fn=1.0;pn=0.0;zmn=1.0;tox=2.0/x;if(n>0){pn=-EUL;k=1.0;for(i=1;i<n;i++){pn+=1.0/k;k+=1.0;fn*=k}zmn=tox;if(n===1){ans=1.0/x}else
{nk1f=fn/n;kf=1.0;s=nk1f;z=-z0;zn=1.0;for(i=1;i<n;i++){nk1f=nk1f/(n-i);kf=kf*i;zn*=z;t=nk1f*zn/kf;s+=t;if((MAXNUM-Math_abs(t))<Math_abs(s)){return(MAXNUM)}if((tox>1.0)&&((MAXNUM/tox)<zmn)){return(MAXNUM)}zmn*=tox}s*=0.5;t=Math_abs(s);if((zmn>1.0)&&((MAXNUM/zmn)<t)){return(MAXNUM)}if((t>1.0)&&((MAXNUM/t)<zmn)){return(MAXNUM)}ans=s*zmn}}tlg=2.0*Math_log(0.5*x);pk=-EUL;if(n===0){pn=pk;t=1.0}else
{pn=pn+1.0/n;t=1.0/fn}s=(pk+pn-tlg)*t;k=1.0;do
{t*=z0/(k*(k+n));pk+=1.0/k;pn+=1.0/(k+n);s+=(pk+pn-tlg)*t;k+=1.0}while(Math_abs(t/s)>MACHEP);s=0.5*s/zmn;if((n&1)!==0){s=-s}ans+=s;return(ans)}function _y1(x){var w,z,p,q,xn;var QP=_getQP2();var QQ=_getQQ2();var PP=_getPP2();var PQ=_getPQ2();var YP=_getYP2();var YQ=_getYQ2();if(x<=5.0){if(x<=0.0){return(-MAXNUM)}z=x*x;w=x*(_polevl(z,YP,5)/_p1evl(z,YQ,8));w+=TWOOPI*(_j1(x)*Math_log(x)-1.0/x);return(w)}w=5.0/x;z=w*w;p=_polevl(z,PP,6)/_polevl(z,PQ,6);q=_polevl(z,QP,7)/_p1evl(z,QQ,7);xn=x-THPIO4;p=p*Math_sin(xn)+w*q*Math_cos(xn);return(p*SQ2OPI/Math_sqrt(x))}function _y0(x){var w,z,p,q,xn;var PP=_getPP();var PQ=_getPQ();var QP=_getQP();var QQ=_getQQ();var YP=_getYP();var YQ=_getYQ();if(x<=5.0){if(x<=0.0){return(-MAXNUM)}z=x*x;w=_polevl(z,YP,7)/_p1evl(z,YQ,7);w+=TWOOPI*Math_log(x)*_j0(x);return(w)}w=5.0/x;z=25.0/(x*x);p=_polevl(z,PP,6)/_polevl(z,PQ,6);q=_polevl(z,QP,7)/_p1evl(z,QQ,7);xn=x-PIO4;p=p*Math_sin(xn)+w*q*Math_cos(xn);return(p*SQ2OPI/Math_sqrt(x))}function _yn(n,x){var an,anm1,anm2,r;var k,sign;if(n<0){n=-n;if((n&1)===0){sign=1}else
{sign=-1}}else
{sign=1}if(n===0){return(sign*_y0(x))}if(n===1){return(sign*_y1(x))}if(x<=0.0){return(-MAXNUM)}anm2=_y0(x);anm1=_y1(x);k=1;r=2*k;do
{an=r*anm1/x-anm2;anm2=anm1;anm1=an;r+=2.0;++k}while(k<n);return(sign*an)}function _fact(n){var result=1.0;for(var i=n;i>1;i--){result*=i}return result}function _bessel(num,order,modfied){if(order<0){return NaN}var Z,Zm,N1,N2,n1,n2,act,old;var iterMax=100;Z=num*0.5;Zm=Z*Z;Z=Math_pow(Z,parseFloat(order));N1=_fact(order);n1=0.0;N2=1.0;n2=parseFloat(order);act=Z/N1;old=act*0.9;if(modfied){while(act!==old&&iterMax!==0){Z*=Zm;n1++;N1*=n1;n2++;N2*=n2;old=act;act+=Z/N1/N2;iterMax--}}else
{var add=false;while(act!==old&&iterMax!==0){Z*=Zm;n1++;N1*=n1;n2++;N2*=n2;old=act;if(add){act+=Z/N1/N2}else
{act-=Z/N1/N2}iterMax--;add=!add}}return act}function _stringToLong(s,radix){var limit=Math_pow(radix,10.0);var number=parseInt(s,radix);if(isNaN(number)){return CalcErrorsNumber}if(limit/2<=number){number-=limit}return number}function _longToString(number,radix,places){var buffer;if(number<0){number+=Math_pow(radix,10.0)}buffer=number.toString(radix);if(buffer.length<places){var pos=places-buffer.length;for(var i=0;i<pos;i++){buffer="0"+buffer}}return buffer.toUpperCase()}var Complex=(function(){function Complex(real,imag){this._real=real;this._imag=imag}Complex.prototype.real=function(){return this._real};Complex.prototype.imag=function(){return this._imag};Complex.prototype.toString=function(suffix){if(!suffix){suffix="i"}var self=this;var sb=new spread._StringBuilder;if(self._real!==0.0||self._imag===0.0){sb.append(self._real.toString())}if(self._imag===-1.0){sb.append("-")}else if(self._real!==0.0&&self._imag>0.0){sb.append("+")}if(self._imag!==-1.0&&self._imag!==0.0&&self._imag!==1.0){sb.append(self._imag.toString())}if(self._imag!==0.0){sb.append(suffix)}return sb.toString()};Complex._parse=function(s){var real=0.0;var imag=0.0;var realDigit=false;var imagDigit=false;var imagSuffix=false;var realLen=0;var imagLen=0;var i=0;if(!s){throw spread.SR.Exp_ArgumentNull;}if(s.length===0){throw spread.SR.Exp_Format;}if(i<s.length&&(s.charAt(i)==='+'||s.charAt(i)==='-')){i++}while(i<s.length&&(!isNaN(Number(s.charAt(i))))){i++;realDigit=true}if(i<s.length&&s.charAt(i)==='.'){i++}while(i<s.length&&(!isNaN(Number(s.charAt(i))))){i++;realDigit=true}if(i<s.length&&(s.charAt(i)==='E'||s.charAt(i)==='e')){i++;realDigit=false;if(i<s.length&&(s.charAt(i)==='+'||s.charAt(i)==='-')){i++}while(i<s.length&&(!isNaN(Number(s.charAt(i))))){i++;realDigit=true}}if(i<s.length&&(s.charAt(i)==='+'||s.charAt(i)==='-')){realLen=i;i++;while(i<s.length&&!isNaN(Number(s.charAt(i)))){i++;imagDigit=true}if(i<s.length&&s.charAt(i)==='.'){i++}while(i<s.length&&!isNaN(Number(s.charAt(i)))){i++;imagDigit=true}if(i<s.length&&(s.charAt(i)==='E'||s.charAt(i)==='e')){i++;imagDigit=false;if(i<s.length&&(s.charAt(i)==='+'||s.charAt(i)==='-')){i++}while(i<s.length&&!isNaN(Number(s.charAt(i)))){i++;imagDigit=true}}if(i<s.length&&(s.charAt(i)==='i'||s.charAt(i)==='j')){i++;imagSuffix=true}imagLen=i-realLen}else if(i<s.length&&(s.charAt(i)==='i'||s.charAt(i)==='j')){i++;imagLen=i;imagDigit=realDigit;imagSuffix=true;realDigit=false}else
{realLen=i}if(i<s.length){throw spread.SR.Exp_Format;}if(realLen>0){if(realDigit){real=parseInt(s.substr(0,realLen),10)}else
{throw spread.SR.Exp_Format;}}if(imagLen>0){if(!imagSuffix){throw spread.SR.Exp_Format;}if(imagLen===1){imag=1.0}else if(imagLen===2&&s.charAt(realLen)==='+'){imag=1.0}else if(imagLen===2&&s.charAt(realLen)==='-'){imag=-1.0}else if(imagDigit){imag=parseInt(s.substr(realLen,imagLen-1),10)}else
{throw spread.SR.Exp_Format;}}return new Complex(real,imag)};return Complex})();var ComplexConvert=(function(){function ComplexConvert(){}ComplexConvert._toComplex=function(value){try
{if(!value){return new Complex(0.0,0.0)}else if(value.constructor===Number){return new Complex(parseFloat(value),0.0)}else if(value.constructor===String){return Complex._parse(value)}else
{throw spread.SR.Exp_InvalidCast;}}catch(err){throw spread.SR.Exp_InvalidCast;}};ComplexConvert._toResult=function(value,suffix){if(isNaN(value.real())||(value.real()===Number.POSITIVE_INFINITY)||isNaN(value.imag())||value.imag()===Number.POSITIVE_INFINITY){return CalcErrorsNumber}else
{return value.toString(suffix)}};return ComplexConvert})();var one_g_to_sg=0.00006852205001;var one_g_to_lbm=0.002204622915;var one_g_to_u=6.02217e+23;var one_g_to_ozm=0.035273972;var one_m_to_Nmi=(1/1852.0);var one_m_to_in=(10000/254.0);var one_m_to_ft=(one_m_to_in/12);var one_m_to_yd=(one_m_to_ft/3);var one_m_to_mi=(one_m_to_yd/1760.0);var one_m_to_ang=1e10;var one_m_to_Pica=2834.645669;var one_m_to_km=0.001;var one_yr_to_day=365.25;var one_yr_to_hr=(24*one_yr_to_day);var one_yr_to_mn=(60*one_yr_to_hr);var one_yr_to_sec=(60*one_yr_to_mn);var one_Pa_to_atm=0.9869233e-5;var one_Pa_to_mmHg=0.00750061708;var one_N_to_dyn=100000;var one_N_to_lbf=0.224808924;var one_HP_to_W=745.701;var one_J_to_e=9999995.193;var one_J_to_c=0.239006249;var one_J_to_cal=0.238846191;var one_J_to_eV=6.2146e+18;var one_J_to_HPh=(1.0/(3600*one_HP_to_W));var one_J_to_Wh=(1.0/3600);var one_J_to_flb=23.73042222;var one_J_to_BTU=0.000947815;var one_T_to_ga=10000;var C_K_offset=273.15;var one_tsp_to_tbs=(1.0/3);var one_tsp_to_oz=(1.0/6);var one_tsp_to_cup=(1.0/48);var one_tsp_to_pt=(1.0/96);var one_tsp_to_qt=(1.0/192);var one_tsp_to_gal=(1.0/768);var one_tsp_to_l=0.004929994;var one_tsp_to_ukpt=0.008675585;var yotta=1e+24;var zetta=1e+21;var exa=1e+18;var peta=1e+15;var tera=1e+12;var giga=1e+09;var mega=1e+06;var kilo=1e+03;var hecto=1e+02;var deka=1e+01;var deci=1e-01;var centi=1e-02;var milli=1e-03;var micro=1e-06;var nano=1e-09;var pico=1e-12;var femto=1e-15;var atto=1e-18;var zepto=1e-21;var yocto=1e-24;var Eng_convert_unit_t=(function(){function Eng_convert_unit_t(str,c){this.str=str;this.c=c}return Eng_convert_unit_t})();var _weight_units=[new Eng_convert_unit_t("g",1.0),new Eng_convert_unit_t("sg",one_g_to_sg),new Eng_convert_unit_t("lbm",one_g_to_lbm),new Eng_convert_unit_t("u",one_g_to_u),new Eng_convert_unit_t("ozm",one_g_to_ozm),new Eng_convert_unit_t(keyword_null,0.0)];var _distance_units=[new Eng_convert_unit_t("m",1.0),new Eng_convert_unit_t("mi",one_m_to_mi),new Eng_convert_unit_t("Nmi",one_m_to_Nmi),new Eng_convert_unit_t("in",one_m_to_in),new Eng_convert_unit_t("ft",one_m_to_ft),new Eng_convert_unit_t("yd",one_m_to_yd),new Eng_convert_unit_t("ang",one_m_to_ang),new Eng_convert_unit_t("Pica",one_m_to_Pica),new Eng_convert_unit_t("km",one_m_to_km),new Eng_convert_unit_t(keyword_null,0.0)];var _time_units=[new Eng_convert_unit_t("yr",1.0),new Eng_convert_unit_t("day",one_yr_to_day),new Eng_convert_unit_t("hr",one_yr_to_hr),new Eng_convert_unit_t("mn",one_yr_to_mn),new Eng_convert_unit_t("sec",one_yr_to_sec),new Eng_convert_unit_t(keyword_null,0.0)];var _pressure_units=[new Eng_convert_unit_t("Pa",1.0),new Eng_convert_unit_t("atm",one_Pa_to_atm),new Eng_convert_unit_t("mmHg",one_Pa_to_mmHg),new Eng_convert_unit_t("p",1.0),new Eng_convert_unit_t("at",one_Pa_to_atm),new Eng_convert_unit_t(keyword_null,0.0)];var _force_units=[new Eng_convert_unit_t("N",1.0),new Eng_convert_unit_t("dyn",one_N_to_dyn),new Eng_convert_unit_t("lbf",one_N_to_lbf),new Eng_convert_unit_t("dy",one_N_to_dyn),new Eng_convert_unit_t(keyword_null,0.0)];var _energy_units=[new Eng_convert_unit_t("J",1.0),new Eng_convert_unit_t("e",one_J_to_e),new Eng_convert_unit_t("c",one_J_to_c),new Eng_convert_unit_t("cal",one_J_to_cal),new Eng_convert_unit_t("eV",one_J_to_eV),new Eng_convert_unit_t("HPh",one_J_to_HPh),new Eng_convert_unit_t("Wh",one_J_to_Wh),new Eng_convert_unit_t("flb",one_J_to_flb),new Eng_convert_unit_t("BTU",one_J_to_BTU),new Eng_convert_unit_t("ev",one_J_to_eV),new Eng_convert_unit_t("hh",one_J_to_HPh),new Eng_convert_unit_t("wh",one_J_to_Wh),new Eng_convert_unit_t("btu",one_J_to_BTU),new Eng_convert_unit_t(keyword_null,0.0)];var _power_units=[new Eng_convert_unit_t("HP",1.0),new Eng_convert_unit_t("W",one_HP_to_W),new Eng_convert_unit_t("h",1.0),new Eng_convert_unit_t("w",one_HP_to_W),new Eng_convert_unit_t(keyword_null,0.0)];var _magnetism_units=[new Eng_convert_unit_t("T",1.0),new Eng_convert_unit_t("ga",one_T_to_ga),new Eng_convert_unit_t(keyword_null,0.0)];var _liquid_units=[new Eng_convert_unit_t("tsp",1.0),new Eng_convert_unit_t("tbs",one_tsp_to_tbs),new Eng_convert_unit_t("oz",one_tsp_to_oz),new Eng_convert_unit_t("cup",one_tsp_to_cup),new Eng_convert_unit_t("pt",one_tsp_to_pt),new Eng_convert_unit_t("qt",one_tsp_to_qt),new Eng_convert_unit_t("gal",one_tsp_to_gal),new Eng_convert_unit_t("l",one_tsp_to_l),new Eng_convert_unit_t("uk_pt",one_tsp_to_ukpt),new Eng_convert_unit_t("us_pt",one_tsp_to_pt),new Eng_convert_unit_t("lt",one_tsp_to_l),new Eng_convert_unit_t(keyword_null,0.0)];var _prefixes=[new Eng_convert_unit_t("Y",yotta),new Eng_convert_unit_t("Z",zetta),new Eng_convert_unit_t("E",exa),new Eng_convert_unit_t("P",peta),new Eng_convert_unit_t("T",tera),new Eng_convert_unit_t("G",giga),new Eng_convert_unit_t("M",mega),new Eng_convert_unit_t("k",kilo),new Eng_convert_unit_t("h",hecto),new Eng_convert_unit_t("e",deka),new Eng_convert_unit_t("d",deci),new Eng_convert_unit_t("c",centi),new Eng_convert_unit_t("m",milli),new Eng_convert_unit_t("u",micro),new Eng_convert_unit_t("n",nano),new Eng_convert_unit_t("p",pico),new Eng_convert_unit_t("f",femto),new Eng_convert_unit_t("a",atto),new Eng_convert_unit_t("z",zepto),new Eng_convert_unit_t("y",yocto),new Eng_convert_unit_t(keyword_null,0.0)];var _c=0.0;var _prefix=0.0;var _v=0.0;var _fixPrefixesList=["cup","mmHg","J","sec","cel","kel","hh","Wh","wh","flb","BTU"];function _fixPrefixes(unitName){for(var i=0;_fixPrefixesList[i].str;i++){if(unitName.localeCompare(_fixPrefixesList[i].str)===0){return false}}return true}function _get_constant_of_unit(units,prefixes,unit_name){var i;_c=0;_prefix=1;for(i=0;units[i].str;i++){if((unit_name.localeCompare(units[i].str))===0){_c=units[i].c;return true}}var j=0;if(prefixes){for(i=0;prefixes[i].str;i++){var u=unit_name.substr(0,1).toLowerCase();var p=prefixes[i].str.substr(0,1).toLowerCase();if((u===p)&&_fixPrefixes(unit_name)){_prefix=prefixes[i].c;j++}}}for(i=0;units[i].str;i++){var u1=unit_name.substr(1,units[i].str.Length);var u2=units[i].str.substr(0,units[i].str.Length);if((u1===u2)&&_fixPrefixes(unit_name)){_c=units[i].c;return true}}return false}function _convert(units,prefixes,from_unit,to_unit,n){var from_c,from_prefix,to_c,to_prefix;from_c=0.0;from_prefix=0.0;to_prefix=0.0;to_c=0.0;var from_result=_get_constant_of_unit(units,prefixes,from_unit);from_c=_c;from_prefix=_prefix;var to_result=_get_constant_of_unit(units,prefixes,to_unit);to_prefix=_prefix;to_c=_c;if(from_result){if(!to_result){return false}if(from_c===0||to_prefix===0){return false}_v=((n*from_prefix)/from_c)*to_c/to_prefix;return true}return false}function eg_convert(args){var n=parseFloat(args[0]);if(isNaN(n)){return CalcErrorsValue}var from_unit=Calc.Convert.toString(args[1]);var to_unit=Calc.Convert.toString(args[2]);if(!from_unit||from_unit===""||!to_unit||to_unit===""){return CalcErrorsNotAvailable}else if((from_unit.localeCompare("C")===0||from_unit.localeCompare("cel")===0)&&(to_unit.localeCompare("C")===0)||to_unit.localeCompare("cel")===0){return n}else if((from_unit.localeCompare("F")===0||from_unit.localeCompare("fah")===0)&&(to_unit.localeCompare("F")===0||to_unit.localeCompare("fah")===0)){return n}else if((from_unit.localeCompare("K")===0||from_unit.localeCompare("kel")===0)&&(to_unit.localeCompare("K")===0||to_unit.localeCompare("kel")===0)){return n}else if((from_unit.localeCompare("C")===0||from_unit.localeCompare("cel")===0)&&(to_unit.localeCompare("F")===0||to_unit.localeCompare("fah")===0)){return n*9/5+32}else if((from_unit.localeCompare("F")===0||from_unit.localeCompare("fah")===0)&&(to_unit.localeCompare("C")===0||to_unit.localeCompare("cel")===0)){return(n-32)*5/9}else if((from_unit.localeCompare("F")===0||from_unit.localeCompare("fah")===0)&&(to_unit.localeCompare("F")===0||to_unit.localeCompare("fah")===0)){return n}else if((from_unit.localeCompare("F")===0||from_unit.localeCompare("fah")===0)&&(to_unit.localeCompare("K")===0||to_unit.localeCompare("kel")===0)){return(n-32)*5/9+C_K_offset}else if((from_unit.localeCompare("K")===0||from_unit.localeCompare("kel")===0)&&(to_unit.localeCompare("F")===0||to_unit.localeCompare("fah")===0)){return(n-C_K_offset)*9/5+32}else if((from_unit.localeCompare("C")===0||from_unit.localeCompare("cel")===0)&&(to_unit.localeCompare("K")===0||to_unit.localeCompare("kel")===0)){return n+C_K_offset}else if((from_unit.localeCompare("K")===0||from_unit.localeCompare("kel")===0)&&(to_unit.localeCompare("C")===0||to_unit.localeCompare("cel")===0)){return n-C_K_offset}if(_convert(_weight_units,_prefixes,from_unit,to_unit,n)){return _v}if(_convert(_distance_units,_prefixes,from_unit,to_unit,n)){return _v}if(_convert(_time_units,keyword_null,from_unit,to_unit,n)){return _v}if(_convert(_pressure_units,_prefixes,from_unit,to_unit,n)){return _v}if(_convert(_force_units,_prefixes,from_unit,to_unit,n)){return _v}if(_convert(_energy_units,_prefixes,from_unit,to_unit,n)){return _v}if(_convert(_power_units,_prefixes,from_unit,to_unit,n)){return _v}if(_convert(_magnetism_units,_prefixes,from_unit,to_unit,n)){return _v}if(_convert(_liquid_units,_prefixes,from_unit,to_unit,n)){return _v}if(_convert(_magnetism_units,_prefixes,from_unit,to_unit,n)){return _v}return CalcErrorsNotAvailable}function eg_besseli(args){var x=Calc.Convert.toDouble(args[0]);if(isNaN(x)){return CalcErrorsValue}var n=Calc.Convert.toInt(args[1]);if(isNaN(n)){return CalcErrorsValue}if(n<0){return CalcErrorsNumber}return Calc.Convert.toResult(_bessel(x,n,true))}function eg_besselj(args){var x=Calc.Convert.toDouble(args[0]);if(isNaN(x)){return CalcErrorsValue}var n=Calc.Convert.toInt(args[1]);if(isNaN(n)){return CalcErrorsValue}if(n<0){return CalcErrorsNumber}return Calc.Convert.toResult(_bessel(x,n,false))}function eg_besselk(args){var x=Calc.Convert.toDouble(args[0]);if(isNaN(x)){return CalcErrorsValue}var n=Calc.Convert.toInt(args[1]);if(isNaN(n)){return CalcErrorsValue}if(x<=0.0){return CalcErrorsNumber}if(n<0){return CalcErrorsNumber}return Calc.Convert.toResult(_kn(n,x))}function eg_bessely(args){var x=Calc.Convert.toDouble(args[0]);if(isNaN(x)){return CalcErrorsValue}var n=Calc.Convert.toInt(args[1]);if(isNaN(n)){return CalcErrorsValue}if(x<=0.0){return CalcErrorsNumber}if(n<0){return CalcErrorsNumber}return Calc.Convert.toResult(_yn(n,x))}function eg_bin2dec(args){var number=Calc.Convert.toString(args[0]);var result;if(number.length>10){return CalcErrorsNumber}result=_stringToLong(number,2);if(result.length<number.length){return CalcErrorsNumber}return result}function eg_bin2hex(args){var number=Calc.Convert.toString(args[0]);var places=Calc._Helper._argumentExists(args,1)?Calc.Convert.toInt(args[1]):1;var temp;var result;if(number.length>10){return CalcErrorsNumber}if(places<1||10<places){return CalcErrorsNumber}temp=_stringToLong(number,2);if(temp.length<number.length){return CalcErrorsNumber}result=_longToString(temp,16,places);if(places<result.length&&0<=temp&&Calc._Helper._argumentExists(args,1)){return CalcErrorsNumber}return result}function eg_bin2oct(args){var number=Calc.Convert.toString(args[0]);var places=Calc._Helper._argumentExists(args,1)?Calc.Convert.toInt(args[1]):1;var temp;var result;if(10<number.length){return CalcErrorsNumber}if(places<1||10<places){return CalcErrorsNumber}temp=_stringToLong(number,2);if(temp.length<number.length){return CalcErrorsNumber}result=_longToString(temp,8,places);if(0<=temp&&places<result.length&&Calc._Helper._argumentExists(args,1)){return CalcErrorsNumber}return result}function eg_dec2bin(args){var number=Calc.Convert.toDouble(args[0]);var places=Calc._Helper._argumentExists(args,1)?Calc.Convert.toInt(args[1]):1;var result;if(number<-512||511<number){return CalcErrorsNumber}if(places<1||10<places){return CalcErrorsNumber}result=_longToString(number,2,places);if(0<=result&&places<result.length&&Calc._Helper._argumentExists(args,1)){return CalcErrorsNumber}return result}function eg_dec2hex(args){var number=Calc.Convert.toDouble(args[0]);var places=Calc._Helper._argumentExists(args,1)?Calc.Convert.toInt(args[1]):1;var result;if(number<-549755813888||549755813887<number){return CalcErrorsNumber}if(places<1||10<places){return CalcErrorsNumber}result=_longToString(number,16,places);if(0<=result&&places<result.length&&Calc._Helper._argumentExists(args,1)){return CalcErrorsNumber}return result}function eg_dex2oct(args){var number=Calc.Convert.toDouble(args[0]);var places=Calc._Helper._argumentExists(args,1)?Calc.Convert.toInt(args[1]):1;var result;if(number<-536870912||536870911<number){return CalcErrorsNumber}if(places<1||10<places){return CalcErrorsNumber}result=_longToString(number,8,places);if(0<=result&&places<result.length&&Calc._Helper._argumentExists(args,1)){return CalcErrorsNumber}return result}function eg_hex2bin(args){var number=Calc.Convert.toString(args[0]);var places=Calc._Helper._argumentExists(args,1)?Calc.Convert.toInt(args[1]):1;var temp;var result;if(10<number.length){return CalcErrorsNumber}if(places<1||10<places){return CalcErrorsNumber}temp=_stringToLong(number.toLowerCase(),16);if(temp.length<number.length){return CalcErrorsNumber}if(temp<-512||511<temp){return CalcErrorsNumber}result=_longToString(temp,2,places);if(0<=temp&&places<result.length&&Calc._Helper._argumentExists(args,1)){return CalcErrorsNumber}return result}function eg_hex2dec(args){var number=Calc.Convert.toString(args[0]);var result;if(10<number.length){return CalcErrorsNumber}result=_stringToLong(number.toLowerCase(),16);if(result.length<number.length){return CalcErrorsNumber}return Calc.Convert.toResult(result)}function eg_hex2oct(args){var number=Calc.Convert.toString(args[0]);var places=Calc._Helper._argumentExists(args,1)?Calc.Convert.toInt(args[1]):1;var temp;var result;if(10<number.length){return CalcErrorsNumber}if(places<1||10<places){return CalcErrorsNumber}temp=_stringToLong(number,16);if(temp.length<number.length){return CalcErrorsNumber}if(temp<-536870912||536870911<temp){return CalcErrorsNumber}result=_longToString(temp,8,places);if(0<=temp&&places<result.length&&Calc._Helper._argumentExists(args,1)){return CalcErrorsNumber}return result}function eg_oct2bin(args){var number=Calc.Convert.toString(args[0]);var places=Calc._Helper._argumentExists(args,1)?Calc.Convert.toInt(args[1]):1;var temp;var result;if(10<number.length){return CalcErrorsNumber}if(places<1||10<places){return CalcErrorsNumber}temp=_stringToLong(number,8);if(temp.length<number.length){return CalcErrorsNumber}if(temp<-512||511<temp){return CalcErrorsNumber}result=_longToString(temp,2,places);if(0<=temp&&places<result.length&&Calc._Helper._argumentExists(args,1)){return CalcErrorsNumber}return result}function eg_oct2dec(args){var number=Calc.Convert.toString(args[0]);var result;if(10<number.length){return CalcErrorsNumber}result=_stringToLong(number,8);if(result.length<number.length){return CalcErrorsNumber}return Calc.Convert.toResult(result)}function eg_oct2hex(args){var number=Calc.Convert.toString(args[0]);var places=Calc._Helper._argumentExists(args,1)?Calc.Convert.toInt(args[1]):1;var temp;var result;if(10<number.length){return CalcErrorsNumber}if(places<1||10<places){return CalcErrorsNumber}temp=_stringToLong(number,8);if(temp.length<number.length){return CalcErrorsNumber}if(temp<-549755813888||549755813887<temp){return CalcErrorsNumber}result=_longToString(temp,16,places);if(0<=temp&&places<result.length&&Calc._Helper._argumentExists(args,1)){return CalcErrorsNumber}return result}function eg_erf(args){var lower=Calc.Convert.toDouble(args[0]);if(isNaN(lower)){return CalcErrorsValue}var upper=0.0;if(Calc._Helper._argumentExists(args,1)){upper=Calc.Convert.toDouble(args[1]);if(isNaN(upper)){return CalcErrorsValue}}var ans;if(lower<0||upper<0){return CalcErrorsNumber}if(lower>27||upper>27){return CalcErrorsNumber}var val=Functions.Functions._StatHelper.st_normsdist([lower*Math_sqrt(2)]);if(typeof val===typeof Calc.Errors){return NaN}ans=parseFloat(val)*2-1;if(Calc._Helper._argumentExists(args,1)){val=Functions.Functions._StatHelper.st_normsdist([upper*Math_sqrt(2)]);if(typeof val===typeof Calc.Errors){return NaN}var x=parseFloat(val)*2-1;ans=x-ans}return ans}function eg_erfc(args){var x=Calc.Convert.toDouble(args[0]);if(isNaN(x)){return CalcErrorsValue}if(x<0){return CalcErrorsNumber}var val=eg_erf([x]);if(typeof val===typeof Calc.Errors){return NaN}return 1.0-parseFloat(val)}function eg_delta(args){var num1=Calc.Convert.toDouble(args[0]);if(isNaN(num1)){return CalcErrorsValue}var num2=0.0;if(Calc._Helper._argumentExists(args,1)){num2=Calc.Convert.toDouble(args[1]);if(isNaN(num2)){return CalcErrorsValue}}return Functions.Functions._MathHelper.approxEqual(num1,num2)?1:0}function eg_gestep(args){var num=Calc.Convert.toDouble(args[0]);if(isNaN(num)){return CalcErrorsValue}var step=0.0;if(Calc._Helper._argumentExists(args,1)){step=Calc.Convert.toDouble(args[1]);if(isNaN(step)){return CalcErrorsValue}}return num>=step?1:0}function eg_complex(args){var real=Calc.Convert.toDouble(args[0]);var imag=Calc.Convert.toDouble(args[1]);if(isNaN(real)||isNaN(imag)){return CalcErrorsValue}var suffix=Calc._Helper._argumentExists(args,2)?Calc.Convert.toString(args[2]):"i";if(suffix!=="i"&&suffix!=="j"){return CalcErrorsValue}return ComplexConvert._toResult(new Complex(real,imag),suffix)}function eg_imabs(args){var num=ComplexConvert._toComplex(args[0]);var x=num.real();var y=num.imag();return Calc.Convert.toResult(Math_sqrt(x*x+y*y))}function eg_imaginary(args){var num=ComplexConvert._toComplex(args[0]);return Calc.Convert.toResult(num.imag())}function eg_imargument(args){var num=ComplexConvert._toComplex(args[0]);var x=num.real();var y=num.imag();if(x===0.0&&y===0.0){return CalcErrorsDivideByZero}return Calc.Convert.toResult(Math_atan2(y,x))}function eg_imconjugate(args){var num=ComplexConvert._toComplex(args[0]);var x=num.real();var y=num.imag();return ComplexConvert._toResult(new Complex(x,-y))}function eg_imcos(args){var num=ComplexConvert._toComplex(args[0]);var x=num.real();var y=num.imag();return ComplexConvert._toResult(new Complex(Math_cos(x)*Functions.Functions._MathHelper.cosh(y),-Math_sin(x)*Functions.Functions._MathHelper.sinh(y)))}function eg_imdiv(args){var num0=ComplexConvert._toComplex(args[0]);var num1=ComplexConvert._toComplex(args[1]);var a=num0.real();var b=num0.imag();var c=num1.real();var d=num1.imag();if(c===0.0&&d===0.0){return CalcErrorsNumber}return ComplexConvert._toResult(new Complex((a*c+b*d)/(c*c+d*d),(b*c-a*d)/(c*c+d*d)))}function eg_imexp(args){var num=ComplexConvert._toComplex(args[0]);var x=num.real();var y=num.imag();return ComplexConvert._toResult(new Complex(Math_exp(x)*Math_cos(y),Math_exp(x)*Math_sin(y)))}function eg_imln(args){var num=ComplexConvert._toComplex(args[0]);var x=num.real();var y=num.imag();if(x===0.0&&y===0.0){return CalcErrorsNumber}var abs=Math_sqrt(x*x+y*y);var phi=Math_atan2(y,x);return ComplexConvert._toResult(new Complex(Math_log(abs),phi))}function eg_imlog10(args){var num=ComplexConvert._toComplex(args[0]);var x=num.real();var y=num.imag();if(x===0.0&&y===0.0){return CalcErrorsNumber}var abs=Math_sqrt(x*x+y*y);var phi=Math_atan2(y,x);var log10e=Functions.Functions._MathHelper.log10(Math_E);return ComplexConvert._toResult(new Complex(log10e*Math_log(abs),log10e*phi))}function eg_imlog2(args){var num=ComplexConvert._toComplex(args[0]);var x=num.real();var y=num.imag();if(x===0.0&&y===0.0){return CalcErrorsNumber}var abs=Math_sqrt(x*x+y*y);var phi=Math_atan2(y,x);var log2e=Functions.Functions._MathHelper.log(Math_E,2);return ComplexConvert._toResult(new Complex(log2e*Math_log(abs),log2e*phi))}function eg_impower(args){var num=ComplexConvert._toComplex(args[0]);var pow=parseFloat(args[1]);if(isNaN(pow)){return CalcErrorsValue}var x=num.real();var y=num.imag();if(x===0.0&&y===0.0){if(pow>0.0){return ComplexConvert._toResult(new Complex(0.0,0.0))}else
{return CalcErrorsNumber}}var abs=Math_sqrt(x*x+y*y);var phi=Math_atan2(y,x);return ComplexConvert._toResult(new Complex(Math_pow(abs,pow)*Math_cos(pow*phi),Math_pow(abs,pow)*Math_sin(pow*phi)))}function eg_improduct(args){var real=1.0;var imag=0.0;var num,a,b,c,d;for(var i=0;i<args.length;i++){if(args[i].constructor===Calc.CalcArray){var array=args[i];for(var j=0;j<array.rowCount;j++){for(var k=0;k<array.columnCount;k++){num=ComplexConvert._toComplex(array.getValue(j,k));a=real;b=imag;c=num.real();d=num.imag();real=a*c-b*d;imag=a*d+b*c}}}else
{num=ComplexConvert._toComplex(args[i]);a=real;b=imag;c=num.real();d=num.imag();real=a*c-b*d;imag=a*d+b*c}}return ComplexConvert._toResult(new Complex(real,imag))}function eg_imreal(args){var num=ComplexConvert._toComplex(args[0]);return Calc.Convert.toResult(num.real())}function eg_imsin(args){var num=ComplexConvert._toComplex(args[0]);var x=num.real();var y=num.imag();return ComplexConvert._toResult(new Complex(Math_sin(x)*Functions.Functions._MathHelper.cosh(y),Math_cos(x)*Functions.Functions._MathHelper.sinh(y)))}function eg_imsqrt(args){var num=ComplexConvert._toComplex(args[0]);var x=num.real();var y=num.imag();if(x===0.0&&y===0.0){return ComplexConvert._toResult(new Complex(0.0,0.0))}var abs=Math_sqrt(x*x+y*y);var phi=Math_atan2(y,x);return ComplexConvert._toResult(new Complex(Math_sqrt(abs)*Math_cos(phi/2.0),Math_sqrt(abs)*Math_sin(phi/2.0)))}function eg_imsub(args){var num0=ComplexConvert._toComplex(args[0]);var num1=ComplexConvert._toComplex(args[1]);var a=num0.real();var b=num0.imag();var c=num1.real();var d=num1.imag();return ComplexConvert._toResult(new Complex(a-c,b-d))}function eg_imsum(args){var real=0.0;var imag=0.0;var num,a,b,c,d;for(var i=0;i<args.length;i++){if(args[i].constructor===Calc.CalcArray){var array=args[i];for(var j=0;j<array.rowCount;j++){for(var k=0;k<array.columnCount;k++){num=ComplexConvert._toComplex(array.getValue(j,k));a=real;b=imag;c=num.real();d=num.imag();real=a+c;imag=b+d}}}else
{num=ComplexConvert._toComplex(args[i]);a=real;b=imag;c=num.real();d=num.imag();real=a+c;imag=b+d}}return ComplexConvert._toResult(new Complex(real,imag))}Functions.def("BESSELI",eg_besseli,{minArgs:2,maxArgs:2});Functions.def("BESSELJ",eg_besselj,{minArgs:2,maxArgs:2});Functions.def("BESSELK",eg_besselk,{minArgs:2,maxArgs:2});Functions.def("BESSELY",eg_bessely,{minArgs:2,maxArgs:2});Functions.def("BIN2DEC",eg_bin2dec,{minArgs:1,maxArgs:1});Functions.def("BIN2HEX",eg_bin2hex,{minArgs:1,maxArgs:2,acceptsMissingArgument:Functions.acceptsOne});Functions.def("BIN2OCT",eg_bin2oct,{minArgs:1,maxArgs:2,acceptsMissingArgument:Functions.acceptsOne});Functions.def("DEC2BIN",eg_dec2bin,{minArgs:1,maxArgs:2,acceptsMissingArgument:Functions.acceptsOne});Functions.def("DEC2HEX",eg_dec2hex,{minArgs:1,maxArgs:2,acceptsMissingArgument:Functions.acceptsOne});Functions.def("DEC2OCT",eg_dex2oct,{minArgs:1,maxArgs:2,acceptsMissingArgument:Functions.acceptsOne});Functions.def("HEX2BIN",eg_hex2bin,{minArgs:1,maxArgs:2,acceptsMissingArgument:Functions.acceptsOne});Functions.def("HEX2DEC",eg_hex2dec,{minArgs:1,maxArgs:1});Functions.def("HEX2OCT",eg_hex2oct,{minArgs:1,maxArgs:2,acceptsMissingArgument:Functions.acceptsOne});Functions.def("OCT2BIN",eg_oct2bin,{minArgs:1,maxArgs:2,acceptsMissingArgument:Functions.acceptsOne});Functions.def("OCT2DEC",eg_oct2dec,{minArgs:1,maxArgs:1});Functions.def("OCT2HEX",eg_oct2hex,{minArgs:1,maxArgs:2,acceptsMissingArgument:Functions.acceptsOne});Functions.def("ERF",eg_erf,{minArgs:1,maxArgs:2,acceptsMissingArgument:Functions.acceptsOne});Functions.def("ERFC",eg_erfc,{minArgs:1,maxArgs:1});Functions.def("DELTA",eg_delta,{minArgs:1,maxArgs:2,acceptsMissingArgument:Functions.acceptsOne});Functions.def("GESTEP",eg_gestep,{minArgs:1,maxArgs:2,acceptsMissingArgument:Functions.acceptsOne});Functions.def("COMPLEX",eg_complex,{minArgs:2,maxArgs:3,acceptsMissingArgument:Functions.acceptsTwo});Functions.def("IMABS",eg_imabs,{minArgs:1,maxArgs:1});Functions.def("IMAGINARY",eg_imaginary,{minArgs:1,maxArgs:1});Functions.def("IMARGUMENT",eg_imargument,{minArgs:1,maxArgs:1});Functions.def("IMCONJUGATE",eg_imconjugate,{minArgs:1,maxArgs:1});Functions.def("IMCOS",eg_imcos,{minArgs:1,maxArgs:1});Functions.def("IMDIV",eg_imdiv,{minArgs:2,maxArgs:2});Functions.def("IMEXP",eg_imexp,{minArgs:1,maxArgs:1});Functions.def("IMLN",eg_imln,{minArgs:1,maxArgs:1});Functions.def("IMLOG10",eg_imlog10,{minArgs:1,maxArgs:1});Functions.def("IMLOG2",eg_imlog2,{minArgs:1,maxArgs:1});Functions.def("IMPOWER",eg_impower,{minArgs:2,maxArgs:2});Functions.def("IMPRODUCT",eg_improduct,{minArgs:1,maxArgs:255,acceptsMissingArgument:Functions.acceptsNotZero});Functions.def("IMREAL",eg_imreal,{minArgs:1,maxArgs:1});Functions.def("IMSIN",eg_imsin,{minArgs:1,maxArgs:1});Functions.def("IMSQRT",eg_imsqrt,{minArgs:1,maxArgs:1});Functions.def("IMSUB",eg_imsub,{minArgs:2,maxArgs:2});Functions.def("IMSUM",eg_imsum,{minArgs:1,maxArgs:255,acceptsMissingArgument:Functions.acceptsNotZero});Functions.def("CONVERT",eg_convert,{minArgs:3,maxArgs:3})})(Calc.Functions||(Calc.Functions={}));var Functions=Calc.Functions})(spread.Calc||(spread.Calc={}));var Calc=spread.Calc})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){(function(Calc){(function(Functions){spread.feature("calc.functions_fin",["calc.functions"]);var keyword_null=null,Math_pow=Math.pow,Math_abs=Math.abs,Math_ceil=Math.ceil,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_floor=Math.floor,Math_max=Math.max,Math_min=Math.min;var CalcErrors=Calc.Errors,CalcErrorsNull=CalcErrors.Null,CalcErrorsDivideByZero=CalcErrors.DivideByZero,CalcErrorsValue=CalcErrors.Value,CalcErrorsReference=CalcErrors.Reference,CalcErrorsName=CalcErrors.Name,CalcErrorsNotAvailable=CalcErrors.NotAvailable,CalcErrorsNumber=CalcErrors.Number;var __isLeapYear=Functions._FinancialHelper.__isLeapYear;var __compareDateTime=Functions._FinancialHelper.__compareDateTime;var __toOADate=Functions._FinancialHelper.__toOADate;var __annual_year_basis=Functions._FinancialHelper.__annual_year_basis;var __getDaysInMonth=Functions._FinancialHelper.__getDaysInMonth;var __Days_Between_BASIS_30E_360=Functions._FinancialHelper.__Days_Between_BASIS_30E_360;var __Days_Between_BASIS_30Ep_360=Functions._FinancialHelper.__Days_Between_BASIS_30Ep_360;var __Days_Between_BASIS_MSRB_30_360_SYM=Functions._FinancialHelper.__Days_Between_BASIS_MSRB_30_360_SYM;var __Days_Between_BASIS_MSRB_30_360=Functions._FinancialHelper.__Days_Between_BASIS_MSRB_30_360;var __days_between_basis=Functions._FinancialHelper.__days_between_basis;function __days_monthly_basis(date_i,date_m,basis){var issue_day,issue_month,issue_year;var maturity_day,maturity_month,maturity_year;var months,days,years;var leap_year;var maturity,issue;issue_year=date_i.getFullYear();issue_month=date_i.getMonth();issue_day=date_i.getDate();maturity_year=date_m.getFullYear();maturity_month=date_m.getMonth();maturity_day=date_m.getDate();years=maturity_year-issue_year;months=maturity_month-issue_month;days=maturity_day-issue_day;months=years*12+months;leap_year=__isLeapYear(issue_year);switch(basis){case 0:var list=[];list[0]=date_i;list[1]=date_m;return Functions.Functions._DateHelper.days360(list);case 1:case 2:case 3:issue=__toOADate(date_i);maturity=__toOADate(date_m);return maturity-issue;case 4:return months*30+days;default:return-1}}function __getRmz(fZins,fZzr,fBw,fZw,nF){var fRmz;if(fZins===0.0){fRmz=(fBw+fZw)/fZzr}else
{var fTerm=Math_pow(1.0+fZins,fZzr);if(nF>0){fRmz=(fZw*fZins/(fTerm-1.0)+fBw*fZins/(1.0-1.0/fTerm))/(1.0+fZins)}else
{fRmz=fZw*fZins/(fTerm-1.0)+fBw*fZins/(1.0-1.0/fTerm)}}return-fRmz}function __getZw(fZins,fZzr,fRmz,fBw,nF){var fZw;if(fZins===0.0){fZw=fBw+fRmz*fZzr}else
{var fTerm=Math_pow(1.0+fZins,fZzr);if(nF>0){fZw=fBw*fTerm+fRmz*(1.0+fZins)*(fTerm-1.0)/fZins}else
{fZw=fBw*fTerm+fRmz*(fTerm-1.0)/fZins}}return-fZw}function __calculate_pvif(rate,nper){var ret=(Math_pow(1.0+rate,nper));if(isNaN(ret)||!isFinite(ret)){return CalcErrorsNumber}return ret}function __calculate_fvifa(rate,nper){if(rate===0.0){return nper}else
{var x=Math_pow(1.0+rate,nper);var y=x-1.0;var ret=y/rate;if(isNaN(ret)||!isFinite(ret)){return CalcErrorsNumber}return ret}}function __calculate_pmt(rate,nper,pv,fv,type){var pvif,fvifa;pvif=__calculate_pvif(rate,nper);fvifa=__calculate_fvifa(rate,nper);var x=-pv*pvif-fv;var y=1.0+rate*Calc.Convert.toDouble(type);var z=y*fvifa;var ret=x/z;if(isNaN(ret)||!isFinite(ret)){return CalcErrorsNumber}return ret}function __calculate_interest_part(pv,pmt,rate,per){var x=Math_pow(1.0+rate,per);var y=x-1.0;var ret=-(pv*x*rate+pmt*y);if(isNaN(ret)||!isFinite(ret)){return CalcErrorsNumber}return ret}function __coup_cd(settlement,maturity,freq,next){var months,periods;var is_eom_special;var result=new Date(1,0,1);result.setFullYear(1);var ndays=0;is_eom_special=(maturity.getDate()===__getDaysInMonth(maturity.getFullYear(),maturity.getMonth()));months=12/freq;periods=(maturity.getFullYear()-settlement.getFullYear());if(periods>0){periods=(periods-1)*freq}do
{result=new Date(maturity.getFullYear(),maturity.getMonth(),maturity.getDate());periods++;result.setMonth(result.getMonth()-(periods*months));if(is_eom_special){ndays=__getDaysInMonth(result.getFullYear(),result.getMonth());result=new Date(result.getFullYear(),result.getMonth(),ndays)}}while(__compareDateTime(settlement,result)<0);if(next){result=new Date(maturity.getFullYear(),maturity.getMonth(),maturity.getDate());periods--;result.setMonth(result.getMonth()-(periods*months));if(is_eom_special){ndays=__getDaysInMonth(result.getFullYear(),result.getMonth());result=new Date(result.getFullYear(),result.getMonth(),ndays)}}return result}function __coupdaybs(settlement,maturity,freq,basis){var prev_coupon=__coup_cd(settlement,maturity,freq,false);return __days_between_basis(prev_coupon,settlement,basis)}function __coupdays(settlement,maturity,freq,basis){var prev,next;switch(basis){case 0:case 2:case 4:case 5:return 360/freq;case 3:return 365.0/freq;default:next=__coup_cd(settlement,maturity,freq,true);prev=__coup_cd(settlement,maturity,freq,false);return __days_between_basis(prev,next,1)}}function __coupdaysnc(settlement,maturity,freq,basis){var next_coupon=__coup_cd(settlement,maturity,freq,true);return __days_between_basis(settlement,next_coupon,basis)}function __coupncd(settlement,maturity,freq){var date=__coup_cd(settlement,maturity,freq,true);return __toOADate(date)}function __coupnum(settlement,maturity,freq){var months;var coupondate=new Date(maturity.getFullYear(),maturity.getMonth(),maturity.getDate());months=maturity.getMonth()-settlement.getMonth()+12*(maturity.getFullYear()-settlement.getFullYear());coupondate.setMonth(coupondate.getMonth()-months);if(maturity.getDate()===__getDaysInMonth(maturity.getFullYear(),maturity.getMonth())){while(coupondate.getDate()!==__getDaysInMonth(coupondate.getFullYear(),coupondate.getMonth())){coupondate.setDate(coupondate.getDate()+1.0)}}if(settlement.getDate()>=coupondate.getDate()){months--}return parseInt((1+months/(12/freq)).toString(),10)}function __couppcd(settlement,maturity,freq){var date=__coup_cd(settlement,maturity,freq,false);return __toOADate(date)}function __duration(nSettle,nMat,fCoup,fYield,nFreq,nBase,fNumOfCoups){var fDur=0.0;var t,p=0.0;var f100=100.0;var Convert=Calc.Convert;fCoup*=f100/Convert.toDouble(nFreq);fYield/=nFreq;fYield+=1.0;for(t=1.0;t<fNumOfCoups;t++){fDur+=t*(fCoup)/Math_pow(fYield,t)}fDur+=fNumOfCoups*(fCoup+f100)/Math_pow(fYield,fNumOfCoups);for(t=1.0;t<fNumOfCoups;t++){p+=fCoup/Math_pow(fYield,t)}p+=(fCoup+f100)/Math_pow(fYield,fNumOfCoups);fDur/=p;fDur/=Convert.toDouble(nFreq);return(fDur)}function __goal_seek_initialise(data){data.havexpos=data.havexneg=false;data.xmin=-1.0e10;data.xmax=+1.0e10;data.precision=1.0e-10;return data}function __update_data(x,y,data){if(y>0){if(data.havexpos){if(data.havexneg){if(Math_abs(x-data.xneg)<Math_abs(data.xpos-data.xneg)){data.xpos=x;data.ypos=y}}else if(y<data.ypos){data.xpos=x;data.ypos=y}}else
{data.xpos=x;data.ypos=y;data.havexpos=true}return[false,data]}else if(y<0){if(data.havexneg){if(data.havexpos){if(Math_abs(x-data.xpos)<Math_abs(data.xpos-data.xneg)){data.xneg=x;data.yneg=y}}else if(-y<-data.yneg){data.xneg=x;data.yneg=y}}else
{data.xneg=x;data.yneg=y;data.havexneg=true}return[false,data]}else
{data.root=x;return[true,data]}}function __price(settlement,maturity,rate,yieldParam,redemption,freq,basis){var a,d,e,sum,den,based,exponent,first_term,last_term;var k,n;a=__coupdaybs(settlement,maturity,freq,basis);d=__coupdaysnc(settlement,maturity,freq,basis);e=__coupdays(settlement,maturity,freq,basis);n=parseInt((__coupnum(settlement,maturity,freq)).toString(),10);sum=0.0;den=100.0*rate/freq;based=1.0+yieldParam/freq;exponent=d/e;for(k=0;k<n;k++){sum+=den/Math_pow(based,exponent+k)}first_term=redemption/Math_pow(based,(n-1.0+d/e));last_term=a/e*den;return(first_term+sum-last_term)}function __date_ratio(d1,d2,d3,freq,basis){var next_coupon,prev_coupon;var res;next_coupon=__coup_cd(d1,d3,freq,true);prev_coupon=__coup_cd(d1,d3,freq,false);if(__compareDateTime(next_coupon,d2)>=0){return __days_between_basis(d1,d2,basis)/__coupdays(prev_coupon,next_coupon,freq,basis)}res=__days_between_basis(d1,next_coupon,basis)/__coupdays(prev_coupon,next_coupon,freq,basis);while(true){prev_coupon=new Date(next_coupon.getFullYear(),next_coupon.getMonth(),next_coupon.getDate());next_coupon.setMonth(next_coupon.getMonth()+12/freq);if(__compareDateTime(next_coupon,d2)>=0){res+=__days_between_basis(prev_coupon,d2,basis)/__coupdays(prev_coupon,next_coupon,freq,basis);return res}res+=1.0}}function __calc_oddfprice(settlement,maturity,issue,first_coupon,rate,yieldParam,redemption,freq,basis){var a=__days_between_basis(issue,settlement,basis);var ds=__days_between_basis(settlement,first_coupon,basis);var df=__days_between_basis(issue,first_coupon,basis);var e=__coupdays(settlement,maturity,freq,basis);var n=parseInt((__coupnum(settlement,maturity,freq)).toString(),10);var scale=100.0*rate/freq;var f=1.0+yieldParam/freq;var sum,term1,term2;if(ds>e){switch(basis){case 0:case 4:var cdays=__days_between_basis(first_coupon,maturity,basis);n=1+parseInt((Math_ceil(cdays/e)).toString(),10);break;default:var d=new Date(first_coupon.getFullYear(),first_coupon.getMonth(),first_coupon.getDate());var INT_MAXVALUE=32767;for(n=0;n<INT_MAXVALUE;n++){var prev_date=new Date(d.getFullYear(),d.getMonth(),d.getDate());d.setMonth(d.getMonth()+12/freq);if(__compareDateTime(d,maturity)>=0){n+=parseInt((Math_ceil(__days_between_basis(prev_date,maturity,basis))/__coupdays(prev_date,d,freq,basis)).toString(),10)+1;break}}a=e*__date_ratio(issue,settlement,first_coupon,freq,basis);ds=e*__date_ratio(settlement,first_coupon,first_coupon,freq,basis);df=e*__date_ratio(issue,first_coupon,first_coupon,freq,basis);break}}term1=redemption/Math_pow(f,n-1.0+ds/e);term2=(df/e)/Math_pow(f,ds/e);sum=Math_pow(f,-ds/e)*(Math_pow(f,-n)-1/f)/(1/f-1);return term1+scale*(term2+sum-a/e)}function __one_euro(str,prec){var subStr=str.substr(0,3);var round=Functions.Functions._MathHelper.round;switch(str[0]){case'A':if(subStr==="ATS"){return round(13.7603,prec)}break;case'B':if(subStr==="BEF"){return round(40.3399,prec)}break;case'D':if(subStr==="DEM"){return round(1.95583,prec)}break;case'E':if(subStr==="ESP"){return round((166.386),prec)}else if(subStr==="EUR"){return round((1.0),prec)}break;case'F':if(subStr==="FIM"){return round((5.94573),prec)}else if(subStr==="FRF"){return round((6.55957),prec)}break;case'G':if(subStr==="GRD"){return round((340.75),prec)}break;case'I':if(subStr==="IEP"){return round((0.787564),prec)}else if(subStr==="ITL"){return round((1936.27),prec)}break;case'L':if(subStr==="LUX"||subStr==="LUF"){return round((40.3399),prec)}break;case'N':if(subStr==="NLG"){return round((2.20371),prec)}break;case'P':if(subStr==="PTE"){return round((200.482),prec)}break;default:break}return-1}function __calcPrecision(str){var subStr=str.substr(0,3);switch(str[0]){case'A':if(subStr==="ATS"){return 2}break;case'B':if(subStr==="BEF"){return 0}break;case'D':if(subStr==="DEM"){return 2}break;case'E':if(subStr==="ESP"){return 0}else if(subStr==="EUR"){return 2}break;case'F':if(subStr==="FIM"){return 2}else if(subStr==="FRF"){return 2}break;case'G':if(subStr==="GRD"){return 2}break;case'I':if(subStr==="IEP"){return 2}else if(subStr==="ITL"){return 0}break;case'L':if(subStr==="LUX"||subStr==="LUF"){return 0}break;case'N':if(subStr==="NLG"){return 2}break;case'P':if(subStr==="PTE"){return 1}break;default:break}return 2}function __displayPrecision(str){var subStr=str.substr(0,3);switch(str[0]){case'A':if(subStr==="ATS"){return 2}break;case'B':if(subStr==="BEF"){return 0}break;case'D':if(subStr==="DEM"){return 2}break;case'E':if(subStr==="ESP"){return 0}else if(subStr==="EUR"){return 2}break;case'F':if(subStr==="FIM"){return 2}else if(subStr==="FRF"){return 2}break;case'G':if(subStr==="GRD"){return 2}break;case'I':if(subStr==="IEP"){return 2}else if(subStr==="ITL"){return 0}break;case'L':if(subStr==="LUX"||subStr==="LUF"){return 0}break;case'N':if(subStr==="NLG"){return 2}break;case'P':if(subStr==="PTE"){return 2}break;default:break}return 2}function fi_fv(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var rate=Convert.toDouble(args[0]);var nper=Convert.toDouble(args[1]);var pmt=Convert.toDouble(args[2]);var pv=_Helper._argumentExists(args,3)?Convert.toDouble(args[3]):0.0;var type=_Helper._argumentExists(args,4)?Convert.toDouble(args[4]):0.0;if(type!==0.0){type=1.0}if(rate===0.0){return Convert.toResult(-(pmt*nper+pv))}else
{return Convert.toResult(-(pv*Math_pow(1.0+rate,nper)+pmt*(1.0+rate*type)*(Math_pow(1.0+rate,nper)-1.0)/rate))}}function fi_fvschedule(args){var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;var fv=Convert.toDouble(args[0]);for(var i=0;i<_ArrayHelper.getLength(args[1]);i++){var rate=Convert.toDouble(_ArrayHelper.getValueByIndex(args[1],i));fv*=1.0+rate}return fv}function fi_npv(args){var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;var rate=Convert.toDouble(args[0]);var npvResult=0.0;var i=1;var val=0;for(var k=1;k<args.length;k++){if(Convert.isError(args[k])){return args[k]}if(_ArrayHelper.isArrayOrReference(args[k])){for(var j=0;j<_ArrayHelper.getLength(args[k]);j++){var o=_ArrayHelper.getValueByIndex(args[k],j);if(Convert.isError(o)){Convert._inArray=false;return o}if(Convert.isNumber(o)){val=Convert.toDouble(_ArrayHelper.getValueByIndex(args[k],j));npvResult+=val/Math_pow(1.0+rate,i);i++}else if(Convert.isError(o)){Convert._inArray=false;return o}}Convert._inArray=false}else
{val=Convert.toDouble(args[k]);npvResult+=val/Math_pow(1.0+rate,i);i++}}return npvResult}function fi_pv(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var rate=Convert.toDouble(args[0]);var nper=Convert.toDouble(args[1]);var pmt=Convert.toDouble(args[2]);var fv=_Helper._argumentExists(args,3)?Convert.toDouble(args[3]):0.0;var type=_Helper._argumentExists(args,4)?Convert.toDouble(args[4]):0.0;if(type!==0.0){type=1.0}if(rate===0.0){return Convert.toResult(-(pmt*nper+fv))}else
{if(rate===-1.0){return CalcErrorsDivideByZero}return Convert.toResult(-(fv+pmt*(1.0+rate*type)*(Math_pow(1.0+rate,nper)-1.0)/rate)/Math_pow(1.0+rate,nper))}}function fi_received(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var settlement=Convert.toDateTime(args[0]);var maturity=Convert.toDateTime(args[1]);var investment=Convert.toDouble(args[2]);var discount=Convert.toDouble(args[3]);var basis=_Helper._argumentExists(args,4)?Convert.toInt(args[4]):0;var a,d,n;if(__compareDateTime(settlement,maturity)>=0){return CalcErrorsNumber}if(investment<=0.0||discount<=0.0||basis<0||4<basis){return CalcErrorsNumber}a=__days_monthly_basis(settlement,maturity,basis);d=__annual_year_basis(settlement,basis);if(a<=0||d<=0){return CalcErrorsNumber}n=1.0-(discount*a/d);if(n<=0){return CalcErrorsNumber}return investment/n}function fi_xnpv(args){var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;var len1=_ArrayHelper.getLength(args[1]);var len2=_ArrayHelper.getLength(args[2]);if(len1!==len2){return CalcErrorsNumber}var rate=Convert.toDouble(args[0]);var values=[];var dates=[];var sum=0.0;for(var k=0;k<len1;k++){values[k]=Convert.toDouble(_ArrayHelper.getValueByIndex(args[1],k))}for(k=0;k<len2;k++){dates[k]=Convert.toDateTime(_ArrayHelper.getValueByIndex(args[2],k))}for(var i=0;i<len1;i++){sum+=values[i]/Math_pow(1.0+rate,((__toOADate(dates[i])-__toOADate(dates[0]))/365.0))}return sum}function __get_cumipmt(fRate,nNumPeriods,fVal,nStart,nEnd,nPayType){var fRmz,fZinsZ;var i;fRmz=__getRmz(fRate,nNumPeriods,fVal,0.0,nPayType);fZinsZ=0.0;if(nStart===1){if(nPayType<=0){fZinsZ=-fVal}nStart++}for(i=nStart;i<=nEnd;i++){if(nPayType>0){fZinsZ+=__getZw(fRate,(i-2),fRmz,fVal,1)-fRmz}else
{fZinsZ+=__getZw(fRate,(i-1),fRmz,fVal,0)}}fZinsZ*=fRate;return fZinsZ}function fi_cumipmt(args){var Convert=Calc.Convert;var fRate=Convert.toDouble(args[0]);var nNumPeriods=Convert.toInt(args[1]);var fVal=Convert.toDouble(args[2]);var nStartPer=Convert.toInt(args[3]);var nEndPer=Convert.toInt(args[4]);var nPayType=Convert.toInt(args[5]);if(nStartPer<1||nEndPer<nStartPer||fRate<=0.0||nEndPer>nNumPeriods||nNumPeriods<=0||fVal<=0.0||(nPayType!==0&&nPayType!==1)){return CalcErrorsNumber}return __get_cumipmt(fRate,nNumPeriods,fVal,nStartPer,nEndPer,nPayType)}function __get_cumprinc(fRate,nNumPeriods,fVal,nStart,nEnd,nPayType){var fRmz,fKapZ;var i;fRmz=__getRmz(fRate,nNumPeriods,fVal,0.0,nPayType);fKapZ=0.0;if(nStart===1){if(nPayType<=0){fKapZ=fRmz+fVal*fRate}else
{fKapZ=fRmz}nStart++}for(i=nStart;i<=nEnd;i++){if(nPayType>0){fKapZ+=fRmz-(__getZw(fRate,(i-2),fRmz,fVal,1)-fRmz)*fRate}else
{fKapZ+=fRmz-__getZw(fRate,(i-1),fRmz,fVal,0)*fRate}}return fKapZ}function fi_cumprinc(args){var Convert=Calc.Convert;var fRate=Convert.toDouble(args[0]);var nNumPeriods=Convert.toInt(args[1]);var fVal=Convert.toDouble(args[2]);var nStartPer=Convert.toInt(args[3]);var nEndPer=Convert.toInt(args[4]);var nPayType=Convert.toInt(args[5]);if(nStartPer<1||nEndPer<nStartPer||fRate<=0.0||nEndPer>nNumPeriods||nNumPeriods<=0||fVal<=0.0||(nPayType!==0&&nPayType!==1)){return CalcErrorsNumber}return __get_cumprinc(fRate,nNumPeriods,fVal,nStartPer,nEndPer,nPayType)}function fi_ipmt(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var rate=Convert.toDouble(args[0]);var per=Convert.toDouble(args[1]);var nper=Convert.toDouble(args[2]);var pv=Convert.toDouble(args[3]);var fv=_Helper._argumentExists(args,4)?Convert.toDouble(args[4]):0.0;var type=_Helper._argumentExists(args,5)?Convert.toInt(args[5]):0;if(per<1.0||per>=nper+1.0||nper<1.0){return CalcErrorsNumber}else
{var pmt=__calculate_pmt(rate,nper,pv,fv,type);return __calculate_interest_part(pv,pmt,rate,per-1.0)}}function fi_ispmt(args){var Convert=Calc.Convert;var rate=Convert.toDouble(args[0]);var per=Convert.toInt(args[1]);var nper=Convert.toInt(args[2]);var pv=Convert.toDouble(args[3]);if(nper===0){return CalcErrorsDivideByZero}return Convert.toResult(pv*rate*(Convert.toDouble(per)/Convert.toDouble(nper)-1.0))}function fi_pmt(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var rate=Convert.toDouble(args[0]);var nper=Convert.toDouble(args[1]);var pv=Convert.toDouble(args[2]);var fv=_Helper._argumentExists(args,3)?Convert.toDouble(args[3]):0.0;var type=_Helper._argumentExists(args,4)?Convert.toDouble(args[4]):0.0;if(type!==0.0){type=1.0}if(rate===0.0){if(nper===0.0){return CalcErrorsDivideByZero}return Convert.toResult(-(pv+fv)/nper)}else
{if(nper===0.0){return CalcErrorsDivideByZero}return Convert.toResult(-(pv*Math_pow(1.0+rate,nper)+fv)/((1.0+rate*type)*(Math_pow(1.0+rate,nper)-1.0)/rate))}}function fi_ppmt(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var rate=Convert.toDouble(args[0]);var per=Convert.toDouble(args[1]);var nper=Convert.toDouble(args[2]);var pv=Convert.toDouble(args[3]);var fv=_Helper._argumentExists(args,4)?Convert.toDouble(args[4]):0;var type=_Helper._argumentExists(args,5)?Convert.toBool(args[5]):false;if(per<1.0||per>=nper+1.0){return CalcErrorsNumber}else
{var pmt=__calculate_pmt(rate,nper,pv,fv,type?1:0);var ipmt=__calculate_interest_part(pv,pmt,rate,per-1.0);return pmt-ipmt}}function fi_coupdaybsFunc(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var settlement=Convert.toDateTime(args[0]);var maturity=Convert.toDateTime(args[1]);var frequency=Convert.toInt(args[2]);var basis=_Helper._argumentExists(args,3)?Convert.toInt(args[3]):0;var numError=CalcErrorsNumber;if(basis<0||basis>4){return numError}if(frequency!==1&&frequency!==2&&frequency!==4){return numError}if(__compareDateTime(settlement,maturity)>=0){return numError}return __coupdaybs(settlement,maturity,frequency,basis)}function fi_coupdaysFunc(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var settlement=Convert.toDateTime(args[0]);var maturity=Convert.toDateTime(args[1]);var frequency=Convert.toInt(args[2]);var basis=_Helper._argumentExists(args,3)?Convert.toInt(args[3]):0;var numError=CalcErrorsNumber;if(basis<0||basis>4){return numError}if(frequency!==1&&frequency!==2&&frequency!==4){return numError}if(__compareDateTime(settlement,maturity)>=0){return numError}return __coupdays(settlement,maturity,frequency,basis)}function fi_coupdaysncFunc(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var settlement=Convert.toDateTime(args[0]);var maturity=Convert.toDateTime(args[1]);var frequency=Convert.toInt(args[2]);var basis=_Helper._argumentExists(args,3)?Convert.toInt(args[3]):0;if(basis<0||basis>4){return CalcErrorsNumber}if(frequency!==1&&frequency!==2&&frequency!==4){return CalcErrorsNumber}if(__compareDateTime(settlement,maturity)>=0){return CalcErrorsNumber}return __coupdaysnc(settlement,maturity,frequency,basis)}function fi_coupncdFunc(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var settlement=Convert.toDateTime(args[0]);var maturity=Convert.toDateTime(args[1]);var frequency=Convert.toInt(args[2]);var basis=_Helper._argumentExists(args,3)?Convert.toInt(args[3]):0;if(basis<0||basis>4){return CalcErrorsNumber}if(frequency!==1&&frequency!==2&&frequency!==4){return CalcErrorsNumber}if(__compareDateTime(settlement,maturity)>=0){return CalcErrorsNumber}return __coupncd(settlement,maturity,frequency)}function fi_coupnumFunc(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var settlement=Convert.toDateTime(args[0]);var maturity=Convert.toDateTime(args[1]);var frequency=Convert.toInt(args[2]);var basis=_Helper._argumentExists(args,3)?Convert.toInt(args[3]):0;if(basis<0||basis>4){return CalcErrorsNumber}if(frequency!==1&&frequency!==2&&frequency!==4){return CalcErrorsNumber}if(__compareDateTime(settlement,maturity)>=0){return CalcErrorsNumber}return __coupnum(settlement,maturity,frequency)}function fi_couppcdFunc(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var settlement=Convert.toDateTime(args[0]);var maturity=Convert.toDateTime(args[1]);var frequency=Convert.toInt(args[2]);var basis=Calc._Helper._argumentExists(args,3)?Convert.toInt(args[3]):0;if(basis<0||basis>4){return CalcErrorsNumber}if(frequency!==1&&frequency!==2&&frequency!==4){return CalcErrorsNumber}if(__compareDateTime(settlement,maturity)>=0){return CalcErrorsNumber}return __couppcd(settlement,maturity,frequency)}function fi_durationFunc(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var settlement=Convert.toDateTime(args[0]);var maturity=Convert.toDateTime(args[1]);var coup=Convert.toDouble(args[2]);var yld=Convert.toDouble(args[3]);var frequency=Convert.toInt(args[4]);var basis=_Helper._argumentExists(args,5)?Convert.toInt(args[5]):0;var fNumOfCoups;if(basis<0||basis>4){return CalcErrorsNumber}if(frequency!==1&&frequency!==2&&frequency!==4){return CalcErrorsNumber}if(__compareDateTime(settlement,maturity)>0){return CalcErrorsNumber}fNumOfCoups=__coupnum(settlement,maturity,frequency);return __duration(settlement,maturity,coup,yld,frequency,basis,fNumOfCoups)}function __get_mduration(nSettle,nMat,fCoup,fYield,nFreq,nBase,fNumOfCoups){var fRet=__duration(nSettle,nMat,fCoup,fYield,nFreq,nBase,fNumOfCoups);fRet/=1.0+(fYield/Calc.Convert.toDouble(nFreq));return fRet}function fi_mduration(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var settlement=Convert.toDateTime(args[0]);var maturity=Convert.toDateTime(args[1]);var coup=Convert.toDouble(args[2]);var yld=Convert.toDouble(args[3]);var frequency=Convert.toInt(args[4]);var basis=_Helper._argumentExists(args,5)?Convert.toInt(args[5]):0;var fNumOfCoups;if(basis<0||basis>4){return CalcErrorsNumber}if(frequency!==1&&frequency!==2&&frequency!==4){return CalcErrorsNumber}if(__compareDateTime(settlement,maturity)>0){return CalcErrorsNumber}fNumOfCoups=__coupnum(settlement,maturity,frequency);return __get_mduration(settlement,maturity,coup,yld,frequency,basis,fNumOfCoups)}function fi_nper(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var rate=Convert.toDouble(args[0]);var pmt=Convert.toDouble(args[1]);var pv=Convert.toDouble(args[2]);var fv=_Helper._argumentExists(args,3)?Convert.toDouble(args[3]):0.0;var type=_Helper._argumentExists(args,4)?Convert.toDouble(args[4]):0.0;if(type!==0.0){type=1.0}if(rate===0.0){if(pmt===0.0){return CalcErrorsDivideByZero}return Convert.toResult(-(pv+fv)/pmt)}else
{if(rate<=-1.0){return CalcErrorsNumber}return Convert.toResult(Math_log((pmt*(1.0+rate*type)-fv*rate)/(pv*rate+pmt*(1.0+rate*type)))/Math_log(1.0+rate))}}function __yield_f(yieldParam,y,settlement,maturity,rate,par,redemption,freq,basis){y=__price(settlement,maturity,rate,yieldParam,redemption,freq,basis)-par;return[true,y]}function __fake_df(x,dfx,xstep,data,settle,maturity,rate,price,redemption,freq,basis){var xl,xr;var status;var yl=0.0;var yr=0.0;xl=x-xstep;if(xl<data.xmin){xl=x}xr=x+xstep;if(xr>data.xmax){xr=x}if(xl===xr){return[false,dfx,data]}var resultArray=__yield_f(xl,yl,settle,maturity,rate,price,redemption,freq,basis);yl=resultArray[1];status=resultArray[0];if(!status){return[status,dfx,data]}resultArray=__yield_f(xr,yr,settle,maturity,rate,price,redemption,freq,basis);yr=resultArray[1];status=resultArray[0];if(!status){return[status,dfx,data]}dfx=(yr-yl)/(xr-xl);return[true,dfx,data]}function __goal_seek_newton(data,settle,maturity,rate,price,redem,freq,basis,x0){var iterations;var status;var precision=data.precision/2.0;for(iterations=0;iterations<20;iterations++){var x1,stepsize;var y0=0.0;var df0=0.0;if(x0<data.xmin||x0>data.xmax){return[false,data]}var resultArray=__yield_f(x0,y0,settle,maturity,rate,price,redem,freq,basis);y0=resultArray[1];status=resultArray[0];if(!status){return[status,data]}resultArray=__update_data(x0,y0,data);data=resultArray[1];if(resultArray[0]){return[true,data]}var xstep;if(Math_abs(x0)<1.0e-10){if(data.havexneg&&data.havexpos){xstep=Math_abs(data.xpos-data.xneg)/1.0e6}else
{xstep=(data.xmax-data.xmin)/1.0e6}}else
{xstep=Math_abs(x0)/1.0e6}var resultArray3=__fake_df(x0,df0,xstep,data,settle,maturity,rate,price,redem,freq,basis);data=resultArray3[2];df0=resultArray3[1];status=resultArray3[0];if(!status){return[status,data]}if(df0===0){return[false,data]}x1=x0-1.000001*y0/df0;if(x1===x0){data.root=x0;return[true,data]}stepsize=Math_abs(x1-x0)/(Math_abs(x0)+Math_abs(x1));x0=x1;if(stepsize<precision){data.root=x0;return[true,data]}}return[false,data]}function __goal_seek_point(data,settle,maturity,rate,price,redem,freq,basis,x0){var status;var y0=0.0;if(x0<data.xmin||x0>data.xmax){return[false,data]}var resultArray=__yield_f(x0,y0,settle,maturity,rate,price,redem,freq,basis);y0=resultArray[1];status=resultArray[0];if(!status){return[status,data]}resultArray=__update_data(x0,y0,data);data=resultArray[1];if(resultArray[0]){return[true,data]}return[false,data]}function __replaceGoto(data,settle,maturity,rate,price,redem,freq,basis,stepsize,newton_submethod,xmid,ymid,status,method){switch(method){case 0:xmid=data.xpos-data.ypos*((data.xneg-data.xpos)/(data.yneg-data.ypos));break;case 1:var det;xmid=(data.xpos+data.xneg)/2.0;var resultArray=__yield_f(xmid,ymid,settle,maturity,rate,price,redem,freq,basis);ymid=resultArray[1];status=resultArray[0];if(!status){return[keyword_null,data,newton_submethod,xmid,ymid,method]}if(ymid===0.0){data=__update_data(xmid,ymid,data)[1];return[true,data,newton_submethod,xmid,ymid,method]}det=Math_sqrt(ymid*ymid-data.ypos*data.yneg);if(det===0){return[keyword_null,data,newton_submethod,xmid,ymid,method]}xmid+=(xmid-data.xpos)*ymid/det;break;case 3:xmid=(data.xpos+data.xneg)/2.0;break;case 2:var x0=0.0;var y0=0.0;var xstep=0.0;var df0=0.0;if(stepsize>0.1){method=3;return __replaceGoto(data,settle,maturity,rate,price,redem,freq,basis,stepsize,newton_submethod,xmid,ymid,status,method)}switch(newton_submethod++%4){case 0:x0=data.xpos;x0=data.ypos;break;case 2:x0=data.xneg;y0=data.yneg;break;default:case 3:case 1:x0=(data.xpos+data.xneg)/2.0;var resultArray2=__yield_f(x0,y0,settle,maturity,rate,price,redem,freq,basis);y0=resultArray2[1];status=resultArray2[0];if(!status){return[keyword_null,data,newton_submethod,xmid,ymid,method]}break}xstep=Math_abs(data.xpos-data.xneg)/1e6;var resultArray3=__fake_df(x0,df0,xstep,data,settle,maturity,rate,price,redem,freq,basis);data=resultArray3[2];df0=resultArray3[1];status=resultArray3[0];if(!status){return[keyword_null,data,newton_submethod,xmid,ymid,method]}if(df0===0){return[keyword_null,data,newton_submethod,xmid,ymid,method]}xmid=x0-1.01*y0/df0;if((xmid<data.xpos&&xmid<data.xneg)||(xmid>data.xpos&&xmid>data.xneg)){return[keyword_null,data,newton_submethod,xmid,ymid,method]}break;default:break}return[false,data,newton_submethod,xmid,ymid,method]}function __goal_seek_bisection(data,settle,maturity,rate,price,redem,freq,basis){var iterations;var stepsize;var newton_submethod=0;if(!data.havexpos||!data.havexneg){return[false,data]}stepsize=Math_abs(data.xpos-data.xneg)/(Math_abs(data.xpos)+Math_abs(data.xneg));for(iterations=0;iterations<100+2*4;iterations++){var xmid=0.0;var ymid=0.0;var status;var method;method=(iterations%4===0)?1:((iterations%4===2)?2:3);var resultOfGoto=__replaceGoto(data,settle,maturity,rate,price,redem,freq,basis,stepsize,newton_submethod,xmid,ymid,status,method);data=resultOfGoto[1];newton_submethod=resultOfGoto[2];xmid=resultOfGoto[3];ymid=resultOfGoto[4];method=resultOfGoto[5];if(!resultOfGoto[0]){continue}else if(resultOfGoto[0]){return[true,data]}var resultArray4=__yield_f(xmid,ymid,settle,maturity,rate,price,redem,freq,basis);ymid=resultArray4[1];status=resultArray4[0];if(!status){continue}var resultArray5=__update_data(xmid,ymid,data);data=resultArray5[1];if(resultArray5[0]){return[true,data]}stepsize=Math_abs(data.xpos-data.xneg)/(Math_abs(data.xpos)+Math_abs(data.xneg));if(stepsize<data.precision){if(data.yneg<ymid){ymid=data.yneg;xmid=data.xneg}if(data.ypos<ymid){ymid=data.ypos;xmid=data.xpos}data.root=xmid;return[true,data]}}return[false,data]}function fi_yieldFunc(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var settlement=Convert.toDateTime(args[0]);var maturity=Convert.toDateTime(args[1]);var rate=Convert.toDouble(args[2]);var par=Convert.toDouble(args[3]);var redemption=Convert.toDouble(args[4]);var freq=Convert.toInt(args[5]);var basis=_Helper._argumentExists(args,6)?Convert.toInt(args[6]):0;var n;if(basis<0||basis>4||!(freq===1||freq===2||freq===4)||__compareDateTime(settlement,maturity)>0){return CalcErrorsNumber}if(rate<0.0||par<0.0||redemption<=0.0){return CalcErrorsNumber}n=__coupnum(settlement,maturity,freq);if(n<=1.0){var a=__coupdaybs(settlement,maturity,freq,basis);var d=__coupdaysnc(settlement,maturity,freq,basis);var e=__coupdays(settlement,maturity,freq,basis);var coeff=freq*e/d;var num=(redemption/100.0+rate/freq)-(par/100.0+(a/e*rate/freq));var den=par/100.0+(a/e*rate/freq);return num/den*coeff}else
{var data={};var status;var yield0=0.1;data.xmin=0.0;data.xmax=0.0;data.precision=0.0;data.havexpos=false;data.xpos=0.0;data.ypos=0.0;data.havexneg=false;data.xneg=0.0;data.yneg=0.0;data.root=0.0;data=__goal_seek_initialise(data);data.xmin=Math_max(data.xmin,0);data.xmax=Math_min(data.xmax,1000);var resultArray=__goal_seek_newton(data,settlement,maturity,rate,par,redemption,freq,basis,yield0);data=resultArray[1];status=resultArray[0];if(!status){for(yield0=1e-10;yield0<data.xmax;yield0*=2){data=__goal_seek_point(data,settlement,maturity,rate,par,redemption,freq,basis,yield0)[1]}resultArray=__goal_seek_bisection(data,settlement,maturity,rate,par,redemption,freq,basis);data=resultArray[1];status=resultArray[0]}if(!status){return CalcErrorsNumber}return data.root}}function fi_yielddisc(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var settlement=Convert.toDateTime(args[0]);var maturity=Convert.toDateTime(args[1]);var fPrice=Convert.toDouble(args[2]);var fRedemp=Convert.toDouble(args[3]);var nBase=_Helper._argumentExists(args,4)?Convert.toInt(args[4]):0;var ret;var yfrac;if(nBase<0||nBase>4){return CalcErrorsNumber}if(fRedemp<=0.0||fPrice<=0.0||__compareDateTime(settlement,maturity)>=0){return CalcErrorsNumber}ret=(fRedemp/fPrice)-1.0;yfrac=Functions.Functions._DateHelper.yearfrac([settlement,maturity,nBase]);return ret/yfrac}function __get_yieldmat(nSettle,nMat,nIssue,fRate,fPrice,nBase){var yearfrac=Functions.Functions._DateHelper.yearfrac;var fIssMat=yearfrac([nIssue,nMat,nBase]);var fIssSet=yearfrac([nIssue,nSettle,nBase]);var fSetMat=yearfrac([nSettle,nMat,nBase]);var y=1.0+fIssMat*fRate;y/=fPrice/100.0+fIssSet*fRate;y--;y/=fSetMat;return y}function fi_yieldmat(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var nSettle=Convert.toDateTime(args[0]);var nMat=Convert.toDateTime(args[1]);var nIssue=Convert.toDateTime(args[2]);var fRate=Convert.toDouble(args[3]);var fPrice=Convert.toDouble(args[4]);var nBase=_Helper._argumentExists(args,5)?Convert.toInt(args[5]):0;if(nBase<0||nBase>4||fRate<0.0){return CalcErrorsNumber}return __get_yieldmat(nSettle,nMat,nIssue,fRate,fPrice,nBase)}function __odd_yield_f(yieldParam,y,settlement,maturity,issue,first_coupon,rate,price,redemption,freq,basis){y=__calc_oddfprice(settlement,maturity,issue,first_coupon,rate,yieldParam,redemption,freq,basis)-price;return[true,y]}function __odd_fake_df(x,dfx,xstep,data,settle,maturity,issue,first_coupon,rate,price,redemption,freq,basis){var xl,xr;var status;var yl=0.0;var yr=0.0;xl=x-xstep;if(xl<data.xmin){xl=x}xr=x+xstep;if(xr>data.xmax){xr=x}if(xl===xr){return[false,dfx,data]}var resultArray=__odd_yield_f(xl,yl,settle,maturity,issue,first_coupon,rate,price,redemption,freq,basis);yl=resultArray[1];status=resultArray[0];if(!status){return[status,dfx,data]}resultArray=__odd_yield_f(xr,yr,settle,maturity,issue,first_coupon,rate,price,redemption,freq,basis);yr=resultArray[1];status=resultArray[0];if(!status){return[status,dfx,data]}dfx=(yr-yl)/(xr-xl);return[true,dfx,data]}function __odd_goal_seek_newton(data,settle,maturity,issue,first_coupon,rate,price,redem,freq,basis,x0){var iterations;var status;var precision=data.precision/2.0;for(iterations=0;iterations<20;iterations++){var x1,stepsize;var y0=0.0;var df0=0.0;if(x0<data.xmin||x0>data.xmax){return[false,data]}var resultArray=__odd_yield_f(x0,y0,settle,maturity,issue,first_coupon,rate,price,redem,freq,basis);y0=resultArray[1];status=resultArray[0];if(!status){return[status,data]}resultArray=__update_data(x0,y0,data);data=resultArray[1];if(resultArray[0]){return[true,data]}var xstep;if(Math_abs(x0)<1.0e-10){if(data.havexneg&&data.havexpos){xstep=Math_abs(data.xpos-data.xneg)/1.0e6}else
{xstep=(data.xmax-data.xmin)/1.0e6}}else
{xstep=Math_abs(x0)/1.0e6}var resultArray3=__odd_fake_df(x0,df0,xstep,data,settle,maturity,issue,first_coupon,rate,price,redem,freq,basis);data=resultArray3[2];df0=resultArray3[1];status=resultArray3[0];if(!status){return[status,data]}if(df0===0){return[false,data]}x1=x0-1.000001*y0/df0;if(x1===x0){data.root=x0;return[true,data]}stepsize=Math_abs(x1-x0)/(Math_abs(x0)+Math_abs(x1));x0=x1;if(stepsize<precision){data.root=x0;return[true,data]}}return[false,data]}function __odd_goal_seek_point(data,settle,maturity,issue,first_coupon,rate,price,redem,freq,basis,x0){var status;var y0=0.0;if(x0<data.xmin||x0>data.xmax){return[false,data]}var resultArray=__odd_yield_f(x0,y0,settle,maturity,issue,first_coupon,rate,price,redem,freq,basis);y0=resultArray[1];status=resultArray[0];if(!status){return[status,data]}resultArray=__update_data(x0,y0,data);data=resultArray[1];if(resultArray[0]){return[true,data]}return[false,data]}function __odd_replaceGoto(data,settle,maturity,issue,first_coupon,rate,price,redem,freq,basis,stepsize,newton_submethod,xmid,ymid,status,method){switch(method){case 0:xmid=data.xpos-data.ypos*((data.xneg-data.xpos)/(data.yneg-data.ypos));break;case 1:var det;xmid=(data.xpos+data.xneg)/2.0;var resultArray=__odd_yield_f(xmid,ymid,settle,maturity,issue,first_coupon,rate,price,redem,freq,basis);ymid=resultArray[1];status=resultArray[0];if(!status){return[keyword_null,data,newton_submethod,xmid,ymid,method]}if(ymid===0.0){data=__update_data(xmid,ymid,data)[1];return[true,data,newton_submethod,xmid,ymid,method]}det=Math_sqrt(ymid*ymid-data.ypos*data.yneg);if(det===0){return[keyword_null,data,newton_submethod,xmid,ymid,method]}xmid+=(xmid-data.xpos)*ymid/det;break;case 3:xmid=(data.xpos+data.xneg)/2.0;break;case 2:var x0=0.0;var y0=0.0;var xstep=0.0;var df0=0.0;if(stepsize>0.1){method=3;return __odd_replaceGoto(data,settle,maturity,issue,first_coupon,rate,price,redem,freq,basis,stepsize,newton_submethod,xmid,ymid,status,method)}switch(newton_submethod++%4){case 0:x0=data.xpos;x0=data.ypos;break;case 2:x0=data.xneg;y0=data.yneg;break;default:case 3:case 1:x0=(data.xpos+data.xneg)/2.0;var resultArray2=__odd_yield_f(x0,y0,settle,maturity,issue,first_coupon,rate,price,redem,freq,basis);y0=resultArray2[1];status=resultArray2[0];if(!status){return[keyword_null,data,newton_submethod,xmid,ymid,method]}break}xstep=Math_abs(data.xpos-data.xneg)/1e6;var resultArray3=__odd_fake_df(x0,df0,xstep,data,settle,maturity,issue,first_coupon,rate,price,redem,freq,basis);data=resultArray3[2];df0=resultArray3[1];status=resultArray3[0];if(!status){return[keyword_null,data,newton_submethod,xmid,ymid,method]}if(df0===0){return[keyword_null,data,newton_submethod,xmid,ymid,method]}xmid=x0-1.01*y0/df0;if((xmid<data.xpos&&xmid<data.xneg)||(xmid>data.xpos&&xmid>data.xneg)){return[keyword_null,data,newton_submethod,xmid,ymid,method]}break;default:break}return[false,data,newton_submethod,xmid,ymid,method]}function __odd_goal_seek_bisection(data,settle,maturity,issue,first_coupon,rate,price,redem,freq,basis){var iterations;var stepsize;var newton_submethod=0;if(!data.havexpos||!data.havexneg){return[false,data]}stepsize=Math_abs(data.xpos-data.xneg)/(Math_abs(data.xpos)+Math_abs(data.xneg));for(iterations=0;iterations<100+2*4;iterations++){var xmid=0.0;var ymid=0.0;var status;var method;method=(iterations%4===0)?1:((iterations%4===2)?2:3);var resultOfGoto=__odd_replaceGoto(data,settle,maturity,issue,first_coupon,rate,price,redem,freq,basis,stepsize,newton_submethod,xmid,ymid,status,method);data=resultOfGoto[1];newton_submethod=resultOfGoto[2];xmid=resultOfGoto[3];ymid=resultOfGoto[4];method=resultOfGoto[5];if(resultOfGoto[0]===undefined||resultOfGoto[0]===keyword_null){continue}else if(resultOfGoto[0]){return[true,data]}var resultArray4=__odd_yield_f(xmid,ymid,settle,maturity,issue,first_coupon,rate,price,redem,freq,basis);ymid=resultArray4[1];status=resultArray4[0];if(!status){continue}var resultArray5=__update_data(xmid,ymid,data);data=resultArray5[1];if(resultArray5[0]){return[true,data]}stepsize=Math_abs(data.xpos-data.xneg)/(Math_abs(data.xpos)+Math_abs(data.xneg));if(stepsize<data.precision){if(data.yneg<ymid){ymid=data.yneg;xmid=data.xneg}if(data.ypos<ymid){ymid=data.ypos;xmid=data.xpos}data.root=xmid;return[true,data]}}return[false,data]}function fi_oddfyield(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var settlement=Convert.toDateTime(args[0]);var maturity=Convert.toDateTime(args[1]);var issue=Convert.toDateTime(args[2]);var first_coupon=Convert.toDateTime(args[3]);var rate=Convert.toDouble(args[4]);var price=Convert.toDouble(args[5]);var redemption=Convert.toDouble(args[6]);var freq=Convert.toInt(args[7]);var basis=_Helper._argumentExists(args,8)?Convert.toInt(args[8]):0;var yield0=0.1;var data={};if(basis<0||basis>4||!(freq===1||freq===2||freq===4)||__compareDateTime(issue,settlement)>0||__compareDateTime(settlement,first_coupon)>0||__compareDateTime(first_coupon,maturity)>0){return CalcErrorsNumber}if(rate<0.0||price<=0.0||redemption<=0.0){return CalcErrorsNumber}data.xmin=0.0;data.xmax=0.0;data.precision=0.0;data.havexpos=false;data.xpos=0.0;data.ypos=0.0;data.havexneg=false;data.xneg=0.0;data.yneg=0.0;data.root=0.0;data=__goal_seek_initialise(data);data.xmin=Math_max(data.xmin,0);data.xmax=Math_min(data.xmax,1000);var resultArray=__odd_goal_seek_newton(data,settlement,maturity,issue,first_coupon,rate,price,redemption,freq,basis,yield0);data=resultArray[1];var status=resultArray[0];if(status){for(yield0=1e-10;yield0<data.xmax;yield0*=2){data=__odd_goal_seek_point(data,settlement,maturity,issue,first_coupon,rate,price,redemption,freq,basis,yield0)[1]}resultArray=__odd_goal_seek_bisection(data,settlement,maturity,issue,first_coupon,rate,price,redemption,freq,basis);data=resultArray[1];status=resultArray[0]}if(!status){return CalcErrorsNumber}return data.root}function __calc_oddlyield(settlement,maturity,last_interest,rate,price,redemption,freq,basis){var d=new Date(last_interest.getFullYear(),last_interest.getMonth(),last_interest.getDate());var x1,x2,x3;do
d.setMonth(d.getMonth()+12/freq);while(__compareDateTime(d,maturity)<0);x1=__date_ratio(last_interest,settlement,d,freq,basis);x2=__date_ratio(last_interest,maturity,d,freq,basis);x3=__date_ratio(settlement,maturity,d,freq,basis);return(freq*(redemption-price)+100*rate*(x2-x1))/(x3*price+100*rate*x1*x3/freq)}function fi_oddlyield(args){var Convert=Calc.Convert,_Helper=Calc._Helper;var settlement=Convert.toDateTime(args[0]);var maturity=Convert.toDateTime(args[1]);var last_interest=Convert.toDateTime(args[2]);var rate=Convert.toDouble(args[3]);var pr=Convert.toDouble(args[4]);var redemption=Convert.toDouble(args[5]);var freq=Convert.toInt(args[6]);var basis=_Helper._argumentExists(args,7)?Convert.toInt(args[7]):0;if(basis<0||basis>4||!(freq===1||freq===2||freq===4)||__compareDateTime(settlement,maturity)>0||__compareDateTime(last_interest,settlement)>0){return CalcErrorsNumber}if(rate<0.0||pr<0.0||redemption<=0.0){return CalcErrorsNumber}return __calc_oddlyield(settlement,maturity,last_interest,rate,pr,redemption,freq,basis)}function fi_tbilleq(args){var Convert=Calc.Convert;var settlement=Convert.toDateTime(args[0]);var maturity=Convert.toDateTime(args[1]);var discount=Convert.toDouble(args[2]);var dsm;if(__compareDateTime(settlement,maturity)>=0){return CalcErrorsNumber}if(discount<=0.0){return CalcErrorsNumber}dsm=__toOADate(maturity)-__toOADate(settlement);if(dsm>365.0){return CalcErrorsNumber}var p1=365.0*discount;var p2=(360.0-discount*dsm);if(p2===0.0){return CalcErrorsDivideByZero}else if(p2<0.0){return CalcErrorsNumber}return Convert.toResult(p1/p2)}function fi_tbillyield(args){var Convert=Calc.Convert;var settlement=Convert.toDateTime(args[0]);var maturity=Convert.toDateTime(args[1]);var pr=Convert.toDouble(args[2]);var dsm;if(__compareDateTime(settlement,maturity)>=0){return CalcErrorsNumber}if(pr<=0.0){return CalcErrorsNumber}dsm=__toOADate(maturity)-__toOADate(settlement);if(dsm>365.0){return CalcErrorsNumber}return((100.0-pr)/pr)*(360.0/dsm)}function __irr_npv(rate,y,vals){var n=vals.length;var sum=0.0;var f=1.0;var ff=1.0/(rate+1.0);var i;for(i=0;i<n;i++){sum+=vals[i]*f;f*=ff}y=sum;return[true,y]}function __irr_npv_df(rate,y,vals){var n=vals.length;var sum=0.0;var f=1.0;var ff=1.0/(rate+1.0);var i;for(i=1;i<n;i++){sum+=vals[i]*(-i)*f;f*=ff}y=sum;return[true,y]}function __irr_goal_seek_newton(data,vals,x0){var iterations;var precision=data.precision/2.0;for(iterations=0;iterations<20;iterations++){var x1,stepsize;var status;var y0=0.0;var df0=0.0;if(x0<data.xmin||x0>data.xmax){return[false,data]}var resultArray=__irr_npv(x0,y0,vals);y0=resultArray[1];status=resultArray[0];if(!status){return[status,data]}resultArray=__update_data(x0,y0,data);data=resultArray[1];if(resultArray[0]){return[true,data]}resultArray=__irr_npv_df(x0,df0,vals);df0=resultArray[1];status=resultArray[0];if(!status){return[status,data]}if(df0===0){return[false,data]}x1=x0-1.000001*y0/df0;if(x1===x0){data.root=x0;return[true,data]}stepsize=Math_abs(x1-x0)/(Math_abs(x0)+Math_abs(x1));x0=x1;if(stepsize<precision){data.root=x0;return[true,data]}}return[false,data]}function __irr_goal_seek_point(data,vals,x0){var status;var y0=0.0;if(x0<data.xmin||x0>data.xmax){return[false,data]}var resultArray=__irr_npv(x0,y0,vals);y0=resultArray[1];status=resultArray[0];if(!status){return[status,data]}resultArray=__update_data(x0,y0,data);data=resultArray[1];if(resultArray[0]){return[true,data]}return[false,data]}function _irr_fake_df(x,dfx,xstep,data,vals){var xl,xr;var status;var yl=0.0;var yr=0.0;xl=x-xstep;if(xl<data.xmin){xl=x}xr=x+xstep;if(xr>data.xmax){xr=x}if(xl===xr){return[false,dfx,data]}var resultArray=__irr_npv(xl,yl,vals);yl=resultArray[1];status=resultArray[0];if(!status){return[status,dfx,data]}resultArray=__irr_npv(xr,yr,vals);yr=resultArray[1];status=resultArray[0];if(!status){return[status,dfx,data]}dfx=(yr-yl)/(xr-xl);return[true,dfx,data]}function __irr_replaceGoto(data,vals,stepsize,newton_submethod,xmid,ymid,status,method){switch(method){case 0:xmid=data.xpos-data.ypos*((data.xneg-data.xpos)/(data.yneg-data.ypos));break;case 1:var det;xmid=(data.xpos+data.xneg)/2.0;var resultArray=__irr_npv(xmid,ymid,vals);ymid=resultArray[1];status=resultArray[0];if(!status){return[keyword_null,data,newton_submethod,xmid,ymid,method]}if(ymid===0){data=__update_data(xmid,ymid,data)[1];return[true,data,newton_submethod,xmid,ymid,method]}det=Math_sqrt(ymid*ymid-data.ypos*data.yneg);if(det===0){return[keyword_null,data,newton_submethod,xmid,ymid,method]}xmid+=(xmid-data.xpos)*ymid/det;break;case 3:xmid=(data.xpos+data.xneg)/2.0;break;case 2:var x0,xstep;var y0=0.0;var df0=0.0;if(stepsize>0.1){method=3;return __irr_replaceGoto(data,vals,stepsize,newton_submethod,xmid,ymid,status,method)}switch(newton_submethod++%4){case 0:x0=data.xpos;x0=data.ypos;break;case 2:x0=data.xneg;y0=data.yneg;break;default:case 3:case 1:x0=(data.xpos+data.xneg)/2.0;var resultArray2=__irr_npv(x0,y0,vals);y0=resultArray2[1];status=resultArray2[0];if(!status){return[keyword_null,data,newton_submethod,xmid,ymid,method]}break}xstep=Math_abs(data.xpos-data.xneg)/1.0e6;var resultArray3=_irr_fake_df(x0,df0,xstep,data,vals);data=resultArray3[2];df0=resultArray3[1];status=resultArray3[0];if(!status){return[keyword_null,data,newton_submethod,xmid,ymid,method]}if(df0===0){return[keyword_null,data,newton_submethod,xmid,ymid,method]}xmid=x0-1.01*y0/df0;if((xmid<data.xpos&&xmid<data.xneg)||(xmid>data.xpos&&xmid>data.xneg)){return[keyword_null,data,newton_submethod,xmid,ymid,method]}break;default:return[false,data,newton_submethod,xmid,ymid,method]}return[false,data,newton_submethod,xmid,ymid,method]}function __irr_goal_seek_bisection(data,vals){var iterations;var stepsize;var newton_submethod=0;if(!data.havexpos||!data.havexneg){return[false,data]}stepsize=Math_abs(data.xpos-data.xneg)/(Math_abs(data.xpos)+Math_abs(data.xneg));for(iterations=0;iterations<100+15*4;iterations++){var xmid;var ymid=0.0;var status;var method=0;method=(iterations%4===0)?1:((iterations%4===2)?2:3);var resultOfGoto=__irr_replaceGoto(data,vals,stepsize,newton_submethod,xmid,ymid,status,method);data=resultOfGoto[1];newton_submethod=resultOfGoto[2];xmid=resultOfGoto[3];ymid=resultOfGoto[4];method=resultOfGoto[5];if(resultOfGoto[0]===keyword_null){continue}else if(resultOfGoto[0]){return[true,data]}var resultArray=__irr_npv(xmid,ymid,vals);ymid=resultArray[1];status=resultArray[0];if(!status){continue}resultArray=__update_data(xmid,ymid,data);data=resultArray[1];if(resultArray[0]){return[true,data]}stepsize=Math_abs(data.xpos-data.xneg)/(Math_abs(data.xpos)+Math_abs(data.xneg));if(stepsize<data.precision){if(data.yneg<ymid){ymid=data.yneg;xmid=data.xneg}if(data.ypos<ymid){ymid=data.ypos;xmid=data.xpos}data.root=xmid;return[true,data]}}return[false,data]}function fi_irr(args){var data={};data.xmin=0.0;data.xmax=0.0;data.precision=0.0;data.havexpos=false;data.xpos=0.0;data.ypos=0.0;data.havexneg=false;data.xneg=0.0;data.yneg=0.0;data.root=0.0;data=__goal_seek_initialise(data);var a1=args[0];var Convert=Calc.Convert,_Helper=Calc._Helper,_ArrayHelper=Calc._ArrayHelper;var guess=_Helper._argumentExists(args,1)?Convert.toDouble(args[1]):0.10;if(Math_abs(guess)>1){guess=0.10}var len=_ArrayHelper.getLength(a1);if(!_ArrayHelper.isArrayOrReference(a1)||len<2){return CalcErrorsNumber}var DOUBLE_MAXVALUE=1.79769e+308;var vals=[];data.xmin=-1;data.xmax=Math_min(data.xmax,Math_pow(DOUBLE_MAXVALUE/1.0e10,1.0/len)-1);var posVal=false;var negVal=false;for(var j=0;j<len;j++){var obj=_ArrayHelper.getValueByIndex(a1,j);if(Convert.isNumber(obj)){var dval=Convert.toDouble(obj);vals[j]=dval;if(dval>0){posVal=true}if(dval<0){negVal=true}}else if(Convert.isError(obj)){return obj}}if(!posVal||!negVal){Convert._inArray=false;return CalcErrorsNumber}var resultArray=__irr_goal_seek_newton(data,vals,guess);data=resultArray[1];var status=resultArray[0];if(!status){var factor;for(factor=2;!(data.havexneg&&data.havexpos)&&factor<100;factor*=2){data=__irr_goal_seek_point(data,vals,guess*factor)[1];data=__irr_goal_seek_point(data,vals,guess/factor)[1]}resultArray=__irr_goal_seek_bisection(data,vals);data=resultArray[1];status=resultArray[0]}Convert._inArray=false;if(status){return data.root}else
{return CalcErrorsNumber}}function fi_mirr(args){var Convert=Calc.Convert,_ArrayHelper=Calc._ArrayHelper;var frate=Convert.toDouble(args[1]);var rrate=Convert.toDouble(args[2]);var pos=0;var neg=0;var n=0;var posnpv=0.0;var negnpv=0.0;var count=_ArrayHelper.getLength(args[0]);var vals=[];if(!_ArrayHelper.isArrayOrReference(args[0])){return CalcErrorsDivideByZero}var length=_ArrayHelper.getLength(args[0]);for(var k=0;k<length;k++){var o=_ArrayHelper.getValueByIndex(args[0],k);if(Convert.isNumber(o)){var val=Convert.toDouble(o);vals[k]=val;if(val>=0.0){pos++}else
{neg++}}else if(Convert.isError(o)){Convert._inArray=false;return o}}Convert._inArray=false;n=neg+pos;for(var i=0;i<n;i++){var v=vals[i];if(v>=0.0){posnpv+=v/Math_pow(1.0+rrate,i)}else
{negnpv+=v/Math_pow(1.0+frate,i)}}if(negnpv===0.0||posnpv===0.0||rrate<=-1.0){return CalcErrorsDivideByZero}var res=Math_pow((-posnpv*Math_pow(1.0+rrate,n))/(negnpv*(1.0+rrate)),(1.0/(n-1.0)))-1.0;return res}function __xirr_f(rate,y,dates,values){var sum=0.0;var n=values.length;for(var i=0;i<n;i++){var d=__toOADate(dates[i])-__toOADate(dates[0]);if(d<0.0){return[false,y]}sum+=values[i]/Functions.Functions._MathHelper.pow1p(rate,d/365.0)}if(!isFinite(sum)){if(sum===Number.POSITIVE_INFINITY){y=1.79769e+308}else if(sum===Number.NEGATIVE_INFINITY){y=-1.79769e+308}}else if(isNaN(sum)){y=4.94066e-324}else
{y=sum}return[true,y]}function __xirr_fake_df(x,dfx,xstep,data,dates,values){var xl,xr;var status;var yl=0.0;var yr=0.0;xl=x-xstep;if(xl<data.xmin){xl=x}xr=x+xstep;if(xr>data.xmax){xr=x}if(xl===xr){return[false,dfx,data]}var resultArray=__xirr_f(xl,yl,dates,values);yl=resultArray[1];status=resultArray[0];if(!status){return[status,dfx,data]}resultArray=__xirr_f(xr,yr,dates,values);yr=resultArray[1];status=resultArray[0];if(!status){return[status,dfx,data]}dfx=(yr-yl)/(xr-xl);return[true,dfx,data]}function __xirr_goal_seek_newton(data,dates,values,x0){var iterations;var status;var precision=data.precision/2.0;for(iterations=0;iterations<20;iterations++){var x1,stepsize;var y0=0.0;var df0=0.0;var resultArray=__xirr_f(x0,y0,dates,values);y0=resultArray[1];status=resultArray[0];if(!status){return[status,data]}resultArray=__update_data(x0,y0,data);data=resultArray[1];if(resultArray[0]){return[true,data]}var xstep;if(Math_abs(x0)<1.0e-10){if(data.havexneg&&data.havexpos){xstep=Math_abs(data.xpos-data.xneg)/1.0e6}else
{xstep=(data.xmax-data.xmin)/1.0e6}}else
{xstep=Math_abs(x0)/1.0e6}var resultArray3=__xirr_fake_df(x0,df0,xstep,data,dates,values);status=resultArray3[0];df0=resultArray3[1];data=resultArray3[2];if(!status){return[status,data]}if(df0===0){return[false,data]}x1=x0-1.000001*y0/df0;if(x1===x0){data.root=x0;return[true,data]}stepsize=Math_abs(x1-x0)/(Math_abs(x0)+Math_abs(x1));x0=x1;if(stepsize<precision){data.root=x0;return[true,data]}}return[false,data]}function __xirr_goal_seek_point(data,x0,y,dates,values){var status;var y0=0.0;if(x0<data.xmin||x0>data.xmax){return[false,data,y]}var resultArray=__xirr_f(x0,y,dates,values);y=resultArray[1];status=resultArray[0];if(!status){return[status,data,y]}resultArray=__update_data(x0,y0,data);data=resultArray[1];if(resultArray[0]){return[true,data,y]}return[false,data,y]}function __xirr_replaceGoto(data,dates,values,stepsize,newton_submethod,xmid,ymid,status,method){switch(method){case 0:xmid=data.xpos-data.ypos*((data.xneg-data.xpos)/(data.yneg-data.ypos));break;case 1:var det;xmid=(data.xpos+data.xneg)/2.0;var resultArray=__xirr_f(xmid,ymid,dates,values);ymid=resultArray[1];status=resultArray[0];if(!status){return[keyword_null,data,newton_submethod,xmid,ymid,method]}if(ymid===0.0){data=__update_data(xmid,ymid,data)[1];return[true,data,newton_submethod,xmid,ymid,method]}det=Math_sqrt(ymid*ymid-data.ypos*data.yneg);if(det===0){return[keyword_null,data,newton_submethod,xmid,ymid,method]}xmid+=(xmid-data.xpos)*ymid/det;break;case 3:xmid=(data.xpos+data.xneg)/2.0;break;case 2:var x0=0.0;var y0=0.0;var xstep=0.0;var df0=0.0;if(stepsize>0.1){method=3;return __xirr_replaceGoto(data,dates,values,stepsize,newton_submethod,xmid,ymid,status,method)}switch(newton_submethod++%4){case 0:x0=data.xpos;x0=data.ypos;break;case 2:x0=data.xneg;y0=data.yneg;break;default:case 3:case 1:x0=(data.xpos+data.xneg)/2.0;var resultArray2=__xirr_f(x0,y0,dates,values);y0=resultArray2[1];status=resultArray2[0];if(!status){return[keyword_null,data,newton_submethod,xmid,ymid,method]}break}xstep=Math_abs(data.xpos-data.xneg)/1e6;var resultArray3=__xirr_fake_df(x0,df0,xstep,data,dates,values);data=resultArray3[2];df0=resultArray3[1];status=resultArray3[0];if(!status){return[keyword_null,data,newton_submethod,xmid,ymid,method]}if(df0===0){return[keyword_null,data,newton_submethod,xmid,ymid,method]}xmid=x0-1.01*y0/df0;if((xmid<data.xpos&&xmid<data.xneg)||(xmid>data.xpos&&xmid>data.xneg)){return[keyword_null,data,newton_submethod,xmid,ymid,method]}break;default:break}return[false,data,newton_submethod,xmid,ymid,method]}function __xirr_goal_seek_bisection(data,dates,values){var iterations;var stepsize;var newton_submethod=0;if(!data.havexpos||!data.havexneg){return[false,data]}stepsize=Math_abs(data.xpos-data.xneg)/(Math_abs(data.xpos)+Math_abs(data.xneg));for(iterations=0;iterations<100+2*4;iterations++){var xmid=0.0;var ymid=0.0;var status;var method;method=(iterations%4===0)?1:((iterations%4===2)?2:3);var resultOfGoto=__xirr_replaceGoto(data,dates,values,stepsize,newton_submethod,xmid,ymid,status,method);data=resultOfGoto[1];newton_submethod=resultOfGoto[2];xmid=resultOfGoto[3];ymid=resultOfGoto[4];method=resultOfGoto[5];if(!resultOfGoto[0]){continue}else if(resultOfGoto[0]){return[true,data]}var resultArray=__xirr_f(xmid,ymid,dates,values);ymid=resultArray[1];status=resultArray[0];if(!status){continue}resultArray=__update_data(xmid,ymid,data);data=resultArray[1];if(resultArray[0]){return[true,data]}stepsize=Math_abs(data.xpos-data.xneg)/(Math_abs(data.xpos)+Math_abs(data.xneg));if(stepsize<data.precision){if(data.yneg<ymid){ymid=data.yneg;xmid=data.xneg}if(data.ypos<ymid){ymid=data.ypos;xmid=data.xpos}data.root=xmid;return[true,data]}}return[false,data]}function fi_xirr(args){var length1=Calc._ArrayHelper.getLength(args[0]);var length2=Calc._ArrayHelper.getLength((args[1]));var values=[];var dates=[];var guess=Calc._Helper._argumentExists(args,2)?Calc.Convert.toDouble(args[2]):0.1;if(length1!==length2){return CalcErrorsNumber}for(var k=0;k<length1;k++){values[k]=Calc.Convert.toDouble(Calc._ArrayHelper.getValueByIndex(args[0],k))}for(k=0;k<length2;k++){dates[k]=Calc.Convert.toDateTime(Calc._ArrayHelper.getValueByIndex(args[1],k))}var data={};data.xmin=0.0;data.xmax=0.0;data.precision=0.0;data.havexpos=false;data.xpos=0.0;data.ypos=0.0;data.havexneg=false;data.xneg=0.0;data.yneg=0.0;data.root=0.0;data=__goal_seek_initialise(data);data.xmin=-1;data.xmax=Math_min(1000,data.xmax);var resultArray=__xirr_goal_seek_newton(data,dates,values,guess);data=resultArray[1];if(resultArray[0]){return data.root}else
{var i;var status;for(i=1;i<=1024;i+=i){var ii=Calc.Convert.toDouble(i);var y=(-1.0+10.0)/(ii+9.0);var resultArray2=__xirr_goal_seek_point(data,guess,y,dates,values);data=resultArray2[1];y=resultArray2[2];y=ii;resultArray2=__xirr_goal_seek_point(data,guess,y,dates,values);data=resultArray2[1];y=resultArray2[2];var resultArray3=__xirr_goal_seek_bisection(data,dates,values);data=resultArray3[1];status=resultArray3[0];if(status){return data.root}}return CalcErrorsNumber}}function __get_amordegrc(fCost,nDate,nFirstPer,fRestVal,nPer,fRate,nBase){var n;var fAmorCoeff,fNRate,fRest,fUsePer;fUsePer=1.0/fRate;if(fUsePer<3.0){fAmorCoeff=1.0}else if(fUsePer<5.0){fAmorCoeff=1.5}else if(fUsePer<=6.0){fAmorCoeff=2.0}else
{fAmorCoeff=2.5}fRate*=fAmorCoeff;var o=Functions.Functions._DateHelper.yearfrac([nDate,nFirstPer,nBase]);if(Calc.Convert.isError(o)){return 0.0}var val=o;fNRate=Math_floor((val*fRate*fCost)+0.5);fCost-=fNRate;fRest=fCost-fRestVal;for(n=0;n<nPer;n++){fNRate=Math_floor((fRate*fCost)+0.5);fRest-=fNRate;if(fRest<0.0){switch(nPer-n){case 0:case 1:return Math_floor((fCost*0.5)+0.5);default:return 0.0}}fCost-=fNRate}return fNRate}function fi_amordegrc(args){var cost=Calc.Convert.toDouble(args[0]);var purchased=Calc.Convert.toDateTime(args[1]);var firstPer=Calc.Convert.toDateTime(args[2]);var salvage=Calc.Convert.toDouble(args[3]);var per=Calc.Convert.toInt(args[4]);var rate=Calc.Convert.toDouble(args[5]);var basis=Calc._Helper._argumentExists(args,6)?Calc.Convert.toInt(args[6]):0;var errCheck=1.0/rate;if((errCheck>0&&errCheck<1)||(errCheck>1&&errCheck<2)||(errCheck>2&&errCheck<3)||(errCheck>4&&errCheck<5)){return CalcErrorsNumber}if(__compareDateTime(purchased,firstPer)>0){return CalcErrorsNumber}if(basis<0||basis>4||rate<=0.0||basis===2){return CalcErrorsNumber}return __get_amordegrc(cost,purchased,firstPer,salvage,per,rate,basis)}function __get_amorlinc(fCost,nDate,nFirstPer,fRestVal,nPer,fRate,nBase){var fOneRate=fCost*fRate;var fCostDelta=fCost-fRestVal;var o=Functions.Functions._DateHelper.yearfrac([nDate,nFirstPer,nBase]);if(Calc.Convert.isError(o)){return 0.0}var val=o;var f0Rate=val*fRate*fCost;var multiplier=(fCost-fRestVal-f0Rate)/fOneRate;var nNumOfFullPeriods=Calc.Convert.toInt((fCost-fRestVal-f0Rate)/fOneRate);var result;if(nPer===0){result=f0Rate}else if(nPer<=nNumOfFullPeriods){result=fOneRate*(multiplier<1.0?multiplier:1.0)}else if(nPer===nNumOfFullPeriods+1){result=fCostDelta-fOneRate*nNumOfFullPeriods-f0Rate}else
{result=0.0}return result}function fi_amorlinc(args){var cost=Calc.Convert.toDouble(args[0]);var purchased=Calc.Convert.toDateTime(args[1]);var firstPer=Calc.Convert.toDateTime(args[2]);var salvage=Calc.Convert.toDouble(args[3]);var per=Calc.Convert.toInt(args[4]);var rate=Calc.Convert.toDouble(args[5]);var basis=Calc._Helper._argumentExists(args,6)?Calc.Convert.toInt(args[6]):0;if(__compareDateTime(purchased,firstPer)>0){return CalcErrorsNumber}if(basis<0||basis>4||rate<=0.0||basis===2){return CalcErrorsNumber}return __get_amorlinc(cost,purchased,firstPer,salvage,per,rate,basis)}function fi_db(args){var cost=Calc.Convert.toDouble(args[0]);var salvage=Calc.Convert.toDouble(args[1]);var life=Calc.Convert.toInt(args[2]);var period=Calc.Convert.toInt(args[3]);var month=Calc._Helper._argumentExists(args,4)?Calc.Convert.toInt(args[4]):12;var lastPeriod=life+(month<12?1:0);if(cost<0.0||life<1||period<1||lastPeriod<period||month<1||12<month){return CalcErrorsNumber}if(cost===0.0){return 0.0}var rate=Functions.Functions._MathHelper.round(1.0-Math_pow(salvage/cost,1.0/life),3);var total=0.0;var result=0.0;for(var i=1;i<=period;i++){if(i===1){result=cost*rate*month/12.0}else if(i===life+1){result=(cost-total)*rate*(12.0-month)/12.0}else
{result=(cost-total)*rate}total+=result}return result}function fi_ddb(args){var cost=Calc.Convert.toDouble(args[0]);var salvage=Calc.Convert.toDouble(args[1]);var life=Calc.Convert.toInt(args[2]);var period=Calc.Convert.toInt(args[3]);var factor=Calc._Helper._argumentExists(args,4)?Calc.Convert.toDouble(args[4]):2.0;var total=0.0;var result=0.0;if(life<=0||cost<0.0){return CalcErrorsNumber}if(life<period){return CalcErrorsNumber}if(factor<=0.0){return CalcErrorsNumber}if(period<=0){return CalcErrorsNumber}if(cost<=salvage){return 0.0}for(var i=1;i<=period;i++){result=(cost-total)*(factor/life);result=Math_min(result,cost-total-salvage);total+=result}return result}function fi_sln(args){var cost=Calc.Convert.toDouble(args[0]);var salvage=Calc.Convert.toDouble(args[1]);var life=Calc.Convert.toInt(args[2]);if(life===0){return CalcErrorsDivideByZero}return(cost-salvage)/life}function fi_syd(args){var cost=Calc.Convert.toDouble(args[0]);var salvage=Calc.Convert.toDouble(args[1]);var life=Calc.Convert.toInt(args[2]);var per=Calc.Convert.toInt(args[3]);if(salvage<0.0||life<1||per<=0||per>life){return CalcErrorsNumber}return((cost-salvage)*(life-per+1)*2)/(life*(life+1))}function __ScGetGDA(fWert,fRest,fDauer,fPeriode,fFaktor){var fGda,fZins,fAlterWert,fNeuerWert;fZins=fFaktor/fDauer;if(fZins>=1.0){fZins=1.0;if(fPeriode===1.0){fAlterWert=fWert}else
{fAlterWert=0.0}}else
{fAlterWert=fWert*Math_pow(1.0-fZins,fPeriode-1.0)}fNeuerWert=fWert*Math_pow(1.0-fZins,fPeriode);if(fNeuerWert<fRest){fGda=fAlterWert-fRest}else
{fGda=fAlterWert-fNeuerWert}if(fGda<0.0){fGda=0.0}return fGda}function __ScInterVDB(cost,salvage,life,life1,period,factor){var fVdb=0;var fIntEnd=Math_ceil(period);var nLoopEnd=Calc.Convert.toInt(fIntEnd);var fTerm,fLia;var fRestwert=cost-salvage;var bNowLia=false;var fGda;var i;fLia=0;for(i=1;i<=nLoopEnd;i++){if(!bNowLia){fGda=__ScGetGDA(cost,salvage,life,i,factor);fLia=fRestwert/(life1-(i-1));if(fLia>fGda){fTerm=fLia;bNowLia=true}else
{fTerm=fGda;fRestwert-=fGda}}else
{fTerm=fLia}if(i===nLoopEnd){fTerm*=(period+1.0-fIntEnd)}fVdb+=fTerm}return fVdb}function __get_vdb(cost,salvage,life,start_period,end_period,factor,flag){var fVdb;var fIntStart=Math_floor(start_period);var fIntEnd=Math_ceil(end_period);var i;var nLoopStart=Calc.Convert.toInt(fIntStart);var nLoopEnd=Calc.Convert.toInt(fIntEnd);fVdb=0.0;if(flag){for(i=nLoopStart+1;i<=nLoopEnd;i++){var fTerm;fTerm=__ScGetGDA(cost,salvage,life,i,factor);if(i===nLoopStart+1){fTerm*=(Math_min(end_period,fIntStart+1.0)-start_period)}else if(i===nLoopEnd){fTerm*=(end_period+1.0-fIntEnd)}fVdb+=fTerm}}else
{var life1=life;var fPart;if(start_period!==Math_floor(start_period)){if(factor>1.0){if(start_period>=life/2.0){fPart=start_period-life/2.0;start_period=life/2.0;end_period-=fPart;life1+=1.0}}}cost-=__ScInterVDB(cost,salvage,life,life1,start_period,factor);fVdb=__ScInterVDB(cost,salvage,life,life-start_period,end_period-start_period,factor)}return fVdb}function fi_vdb(args){var cost=Calc.Convert.toDouble(args[0]);var salvage=Calc.Convert.toDouble(args[1]);var life=Calc.Convert.toInt(args[2]);var start=Calc.Convert.toDouble(args[3]);var end=Calc.Convert.toDouble(args[4]);var factor=Calc._Helper._argumentExists(args,5)?Calc.Convert.toDouble(args[5]):2.0;var noswitch=Calc._Helper._argumentExists(args,6)?Calc.Convert.toBool(args[6]):false;if(cost<0.0||salvage<0.0||life<0||start<0||end<0||end<start){return CalcErrorsNumber}if(cost<salvage&&start===0.0&&end===1.0){return cost-salvage}return __get_vdb(cost,salvage,life,start,end,factor,noswitch)}function fi_accrint(args){var maturity=Calc.Convert.toDateTime(args[0]);var first_interest=Calc.Convert.toDateTime(args[1]);var settlement=Calc.Convert.toDateTime(args[2]);var rate=Calc.Convert.toDouble(args[3]);var par=Calc._Helper._argumentExists(args,4)?Calc.Convert.toDouble(args[4]):1000.0;var freq=Calc.Convert.toInt(args[5]);var basis=Calc._Helper._argumentExists(args,6)?Calc.Convert.toInt(args[6]):0;var calc_method=Calc._Helper._argumentExists(args,7)?Calc.Convert.toBool(args[7]):true;var a,d,coefficient,x;if(rate<=0.0||par<=0.0){return CalcErrorsNumber}if(basis<0||4<basis){return CalcErrorsNumber}if(!(freq===1||freq===2||freq===4)){return CalcErrorsNumber}if(__compareDateTime(maturity,settlement)>=0){return CalcErrorsNumber}a=__days_monthly_basis(maturity,settlement,basis);d=__annual_year_basis(maturity,basis);if(a<0||d<=0){return CalcErrorsNumber}coefficient=par*rate/Calc.Convert.toDouble(freq);x=a/d;return coefficient*Calc.Convert.toDouble(freq)*x}function fi_accrintm(args){var issue=Calc.Convert.toDateTime(args[0]);var maturity=Calc.Convert.toDateTime(args[1]);var rate=Calc.Convert.toDouble(args[2]);var par=Calc._Helper._argumentExists(args,3)?Calc.Convert.toDouble(args[3]):1000.0;var basis=Calc._Helper._argumentExists(args,4)?Calc.Convert.toInt(args[4]):0;var a,d;if(rate<=0.0||par<=0.0||basis<0||4<basis){return CalcErrorsNumber}if(__compareDateTime(issue,maturity)>0){return CalcErrorsNumber}a=__days_monthly_basis(issue,maturity,basis);d=__annual_year_basis(issue,basis);if(a<0||d<=0){return CalcErrorsNumber}return par*rate*a/d}function fi_disc(args){var settlement=Calc.Convert.toDateTime(args[0]);var maturity=Calc.Convert.toDateTime(args[1]);var par=Calc.Convert.toDouble(args[2]);var redemption=Calc.Convert.toDouble(args[3]);var basis=Calc._Helper._argumentExists(args,4)?Calc.Convert.toInt(args[4]):0;var dsm,b;if(__compareDateTime(settlement,maturity)>=0){return CalcErrorsNumber}if(par<=0.0||redemption<=0.0||basis<0||4<basis){return CalcErrorsNumber}b=__annual_year_basis(settlement,basis);dsm=__days_monthly_basis(settlement,maturity,basis);if(dsm<=0||b<=0){return CalcErrorsNumber}return(redemption-par)/redemption*(b/dsm)}function fi_effect(args){var rate=Calc.Convert.toDouble(args[0]);var nper=Calc.Convert.toInt(args[1]);if(rate<=0.0||nper<1){return CalcErrorsNumber}return Math_pow((1.0+rate/nper),nper)-1.0}function fi_intrate(args){var settlement=Calc.Convert.toDateTime(args[0]);var maturity=Calc.Convert.toDateTime(args[1]);var investment=Calc.Convert.toDouble(args[2]);var redemption=Calc.Convert.toDouble(args[3]);var basis=Calc._Helper._argumentExists(args,4)?Calc.Convert.toInt(args[4]):0;var a,d;if(__compareDateTime(settlement,maturity)>=0){return CalcErrorsNumber}if(investment<=0.0||redemption<=0.0||basis<0||4<basis){return CalcErrorsNumber}a=__days_monthly_basis(settlement,maturity,basis);d=__annual_year_basis(settlement,basis);if(a<=0||d<=0){return CalcErrorsNumber}return(redemption-investment)/investment*(d/a)}function fi_nominal(args){var rate=Calc.Convert.toDouble(args[0]);var nper=Calc.Convert.toInt(args[1]);if(rate<=0.0||nper<1){return CalcErrorsNumber}return nper*(Math_pow(1.0+rate,1.0/nper)-1.0)}function __rate_f(rate,y,user_data){if(rate>-1.0&&rate!==0){var data=user_data;var x=Math_pow(1.0+rate,data.nper);var z=(Math_pow(1.0+rate,data.nper)-1.0)/rate;y=data.pv*x+data.pmt*(1.0+rate*data.type)*z+data.fv;return[true,y,user_data]}else
{return[false,y,user_data]}}function __rate_df(rate,y,user_data){if(rate>-1.0&&rate!==0.0){var data=user_data;var x=Math_pow(1.0+rate,data.nper-1.0);var z=(Math_pow(1.0+rate,data.nper)-1.0)/rate;y=-data.pmt*z/rate+x*data.nper*(data.pv+data.pmt*(data.type+1.0/rate));return[true,y,user_data]}else
{return[false,y,user_data]}}function __rate_goal_seek_newton(data,user_data,x0){var iterations;var precision=data.precision/2.0;for(iterations=0;iterations<100;iterations++){var x1,stepsize;var status;var y0=0.0;var df0=0.0;if(x0<data.xmin||x0>data.xmax){return[false,data,user_data]}var resultArray=__rate_f(x0,y0,user_data);user_data=resultArray[2];y0=resultArray[1];status=resultArray[0];if(!status){return[status,data,user_data]}var resultArray2=__update_data(x0,y0,data);data=resultArray2[1];if(resultArray2[0]){return[true,data,user_data]}resultArray=__rate_df(x0,df0,user_data);user_data=resultArray[2];df0=resultArray[1];status=resultArray[0];if(!status){return[status,data,user_data]}if(df0===0){return[false,data,user_data]}x1=x0-1.000001*y0/df0;if(x1===x0){data.root=x0;return[true,data,user_data]}stepsize=Math_abs(x1-x0)/(Math_abs(x0)+Math_abs(x1));x0=x1;if(stepsize<precision){data.root=x0;return[true,data,user_data]}}return[false,data,user_data]}function __rate_goal_seek_point(data,user_data,x0){var status;var y0=0.0;if(x0<data.xmin||x0>data.xmax){return[false,data,user_data]}var resultArray=__rate_f(x0,y0,user_data);user_data=resultArray[2];y0=resultArray[1];status=resultArray[0];if(!status){return[status,data,user_data]}var resultArray2=__update_data(x0,y0,data);data=resultArray2[1];if(resultArray2[0]){return[true,data,user_data]}return[false,data,user_data]}function __rate_fake_df(x,dfx,xstep,data,user_data){var xl,xr;var status;var yl=0.0;var yr=0.0;xl=x-xstep;if(xl<data.xmin){xl=x}xr=x+xstep;if(xr>data.xmax){xr=x}if(xl===xr){return[false,dfx,data,user_data]}var resultArray=__rate_f(xl,yl,user_data);user_data=resultArray[2];yl=resultArray[1];status=resultArray[0];if(!status){return[status,dfx,data,user_data]}resultArray=__rate_f(xr,yr,user_data);user_data=resultArray[2];yr=resultArray[1];status=resultArray[0];if(!status){return[status,dfx,data,user_data]}dfx=(yr-yl)/(xr-xl);return[true,dfx,data,user_data]}function __rate_replaceGoto(data,user_data,stepsize,newton_submethod,xmid,ymid,status,method){switch(method){case 0:xmid=data.xpos-data.ypos*((data.xneg-data.xpos)/(data.yneg-data.ypos));break;case 1:var det;xmid=(data.xpos+data.xneg)/2.0;var resultArray=__rate_f(xmid,ymid,user_data);user_data=resultArray[2];ymid=resultArray[1];status=resultArray[0];if(!status){return[keyword_null,data,user_data,newton_submethod,xmid,ymid,method]}if(ymid===0){data=__update_data(xmid,ymid,data)[1];return[true,data,user_data,newton_submethod,xmid,ymid,method]}det=Math_sqrt(ymid*ymid-data.ypos*data.yneg);if(det===0){return[keyword_null,data,user_data,newton_submethod,xmid,ymid,method]}xmid+=(xmid-data.xpos)*ymid/det;break;case 3:xmid=(data.xpos+data.xneg)/2.0;break;case 2:var x0,xstep;var y0=0.0;var df0=0.0;if(stepsize>0.1){method=3;return __rate_replaceGoto(data,user_data,stepsize,newton_submethod,xmid,ymid,status,method)}switch(newton_submethod++%4){case 0:x0=data.xpos;x0=data.ypos;break;case 2:x0=data.xneg;y0=data.yneg;break;default:case 3:case 1:x0=(data.xpos+data.xneg)/2.0;resultArray=__rate_f(x0,y0,user_data);user_data=resultArray[2];y0=resultArray[1];status=resultArray[0];if(!status){return[keyword_null,data,user_data,newton_submethod,xmid,ymid,method]}break}xstep=Math_abs(data.xpos-data.xneg)/1.0e6;var resultArray4=__rate_fake_df(x0,df0,xstep,data,user_data);user_data=resultArray4[3];data=resultArray4[2];df0=resultArray4[1];status=resultArray4[0];if(!status){return[keyword_null,data,user_data,newton_submethod,xmid,ymid,method]}if(df0===0){return[keyword_null,data,user_data,newton_submethod,xmid,ymid,method]}xmid=x0-1.01*y0/df0;if((xmid<data.xpos&&xmid<data.xneg)||(xmid>data.xpos&&xmid>data.xneg)){return[keyword_null,data,user_data,newton_submethod,xmid,ymid,method]}break;default:return[false,data,user_data,newton_submethod,xmid,ymid,method]}return[false,data,user_data,newton_submethod,xmid,ymid,method]}function __rate_goal_seek_bisection(data,user_data){var iterations;var stepsize;var newton_submethod=0;if(!data.havexpos||!data.havexneg){return[false,data,user_data]}stepsize=Math_abs(data.xpos-data.xneg)/(Math_abs(data.xpos)+Math_abs(data.xneg));for(iterations=0;iterations<100+15*4;iterations++){var xmid;var ymid=0.0;var status;var method=0;method=(iterations%4===0)?1:((iterations%4===2)?2:3);var resultOfGoto=__rate_replaceGoto(data,user_data,stepsize,newton_submethod,xmid,ymid,status,method);data=resultOfGoto[1];user_data=resultOfGoto[2];newton_submethod=resultOfGoto[3];xmid=resultOfGoto[4];ymid=resultOfGoto[5];method=resultOfGoto[6];if(!resultOfGoto[0]){continue}else if(resultOfGoto[0]){return[true,data,user_data]}var resultArray=__rate_f(xmid,ymid,user_data);user_data=resultArray[2];ymid=resultArray[1];status=resultArray[0];if(!status){continue}var resultArray2=__update_data(xmid,ymid,data);data=resultArray2[1];if(resultArray2[0]){return[true,data,user_data]}stepsize=Math_abs(data.xpos-data.xneg)/(Math_abs(data.xpos)+Math_abs(data.xneg));if(stepsize<data.precision){if(data.yneg<ymid){ymid=data.yneg;xmid=data.xneg}if(data.ypos<ymid){ymid=data.ypos;xmid=data.xpos}data.root=xmid;return[true,data,user_data]}}return[false,data,user_data]}function fi_rate(args){var data={};var nper=Calc.Convert.toDouble(args[0]);var pmt=Calc.Convert.toDouble(args[1]);var pv=Calc.Convert.toDouble(args[2]);var fv=Calc._Helper._argumentExists(args,3)?Calc.Convert.toDouble(args[3]):0.0;var type=Calc._Helper._argumentExists(args,4)?Calc.Convert.toInt(args[4]):0;var guess=Calc._Helper._argumentExists(args,5)?Calc.Convert.toDouble(args[5]):0.1;if(nper<=0){return CalcErrorsNumber}if(type<0){return CalcErrorsValue}if(type>1){type=1}data.xmin=0.0;data.xmax=0.0;data.precision=0.0;data.havexpos=false;data.xpos=0.0;data.ypos=0.0;data.havexneg=false;data.xneg=0.0;data.yneg=0.0;data.root=0.0;data=__goal_seek_initialise(data);data.xmin=Math_max(data.xmin,-Math_pow(1.7976931348623158e+308/1.0e10,1.0/nper)+1.0);data.xmax=Math_min(data.xmax,Math_pow(1.7976931348623158e+308/1.0e10,1.0/nper)-1.0);var udata={};udata.nper=nper;udata.pmt=pmt;udata.pv=pv;udata.fv=fv;udata.type=Calc.Convert.toInt(type);var resultArray=__rate_goal_seek_newton(data,udata,guess);udata=resultArray[2];data=resultArray[1];var status=resultArray[0];if(!status){var factor;for(factor=2;!(data.havexneg&&data.havexpos)&&factor<100;factor*=2){resultArray=__rate_goal_seek_point(data,udata,guess*factor);udata=resultArray[2];data=resultArray[1];resultArray=__rate_goal_seek_point(data,udata,guess/factor);udata=resultArray[2];data=resultArray[1]}resultArray=__rate_goal_seek_bisection(data,udata);udata=resultArray[2];data=resultArray[1];status=resultArray[0]}if(status){return data.root}else
{return CalcErrorsNumber}}function fi_dollarde(args){var fractionalDollar=Calc.Convert.toDouble(args[0]);var fraction=Calc.Convert.toInt(args[1]);if(fraction===0.0){return CalcErrorsDivideByZero}if(fraction<0.0){return CalcErrorsNumber}var integerPart=(fractionalDollar<0.0)?Math_ceil(fractionalDollar):Math_floor(fractionalDollar);var decimalPart=fractionalDollar-integerPart;var power10=Math_pow(10.0,Math_ceil(Functions.Functions._MathHelper.log10(fraction)));return Calc.Convert.toResult(integerPart+decimalPart*power10/fraction)}function fi_dollarfr(args){var decimalDollar=Calc.Convert.toDouble(args[0]);var fraction=Calc.Convert.toInt(args[1]);if(fraction===0.0){return CalcErrorsDivideByZero}if(fraction<0.0){return CalcErrorsNumber}var integerPart=(decimalDollar<0.0)?Math_ceil(decimalDollar):Math_floor(decimalDollar);var decimalPart=decimalDollar-integerPart;var power10=Math_pow(10.0,Math_ceil(Functions.Functions._MathHelper.log10(fraction)));return Calc.Convert.toResult(integerPart+decimalPart*fraction/power10)}function fi_price(args){var settlement=Calc.Convert.toDateTime(args[0]);var maturity=Calc.Convert.toDateTime(args[1]);var rate=Calc.Convert.toDouble(args[2]);var yieldVar=Calc.Convert.toDouble(args[3]);var redem=Calc.Convert.toDouble(args[4]);var frequency=Calc.Convert.toInt(args[5]);var basis=Calc._Helper._argumentExists(args,6)?Calc.Convert.toInt(args[6]):0;if(yieldVar<0.0||rate<0.0||redem===0.0){return CalcErrorsNumber}if(basis<0||basis>4){return CalcErrorsNumber}if(frequency!==1&&frequency!==2&&frequency!==4){return CalcErrorsNumber}if(__compareDateTime(settlement,maturity)>0){return CalcErrorsNumber}return __price(settlement,maturity,rate,yieldVar,redem,frequency,basis)}function fi_pricedisc(args){var settlement=Calc.Convert.toDateTime(args[0]);var maturity=Calc.Convert.toDateTime(args[1]);var discount=Calc.Convert.toDouble(args[2]);var redemption=Calc.Convert.toDouble(args[3]);var basis=Calc._Helper._argumentExists(args,4)?Calc.Convert.toInt(args[4]):0;var a,d;if(__compareDateTime(settlement,maturity)>=0){return CalcErrorsNumber}if(discount<=0.0||redemption<=0.0||basis<0||4<basis){return CalcErrorsNumber}a=__days_monthly_basis(settlement,maturity,basis);d=__annual_year_basis(settlement,basis);if(a<=0||d<=0){return CalcErrorsNumber}return redemption-discount*redemption*a/d}function fi_pricemat(args){var settlement=Calc.Convert.toDateTime(args[0]);var maturity=Calc.Convert.toDateTime(args[1]);var issue=Calc.Convert.toDateTime(args[2]);var rate=Calc.Convert.toDouble(args[3]);var yld=Calc.Convert.toDouble(args[4]);var basis=Calc._Helper._argumentExists(args,5)?Calc.Convert.toInt(args[5]):0;var a,b,dsm,dim,n;if(__compareDateTime(settlement,maturity)>=0){return CalcErrorsNumber}if(rate<0.0||yld<0.0||basis<0||4<basis){return CalcErrorsNumber}dsm=__days_monthly_basis(settlement,maturity,basis);dim=__days_monthly_basis(issue,maturity,basis);a=__days_monthly_basis(issue,settlement,basis);b=__annual_year_basis(settlement,basis);if(a<=0.0||b<=0.0||dsm<=0.0||dim<=0.0){return CalcErrorsNumber}n=1.0+((dsm/b)*yld);if(n===0.0){return CalcErrorsNumber}return((100.0+((dim/b)*rate*100.0))/(n))-((a/b)*rate*100.0)}function fi_oddfprice(args){var settlement=Calc.Convert.toDateTime(args[0]);var maturity=Calc.Convert.toDateTime(args[1]);var issue=Calc.Convert.toDateTime(args[2]);var first_coupon=Calc.Convert.toDateTime(args[3]);var rate=Calc.Convert.toDouble(args[4]);var yieldVar=Calc.Convert.toDouble(args[5]);var redemption=Calc.Convert.toDouble(args[6]);var freq=Calc.Convert.toInt(args[7]);var basis=Calc._Helper._argumentExists(args,8)?Calc.Convert.toInt(args[8]):0;if(basis<0||basis>4||!(freq===1||freq===2||freq===4)||__compareDateTime(issue,settlement)>0||__compareDateTime(settlement,first_coupon)>0||__compareDateTime(first_coupon,maturity)>0){return CalcErrorsNumber}if(rate<0.0||yieldVar<0.0||redemption<=0.0){return CalcErrorsNumber}return __calc_oddfprice(settlement,maturity,issue,first_coupon,rate,yieldVar,redemption,freq,basis)}function __calc_oddlprice(settlement,maturity,last_interest,rate,yieldParam,redemption,freq,basis){var d=new Date(last_interest.getFullYear(),last_interest.getMonth(),last_interest.getDate());var x1,x2,x3;do
d.setMonth(d.getMonth()+12/freq);while(__compareDateTime(d,maturity)<0);x1=__date_ratio(last_interest,settlement,d,freq,basis);x2=__date_ratio(last_interest,maturity,d,freq,basis);x3=__date_ratio(settlement,maturity,d,freq,basis);return(redemption*freq+100*rate*(x2-x1*(1+yieldParam*x3/freq)))/(yieldParam*x3+freq)}function fi_oddlprice(args){var settlement=Calc.Convert.toDateTime(args[0]);var maturity=Calc.Convert.toDateTime(args[1]);var last_interest=Calc.Convert.toDateTime(args[2]);var rate=Calc.Convert.toDouble(args[3]);var yieldVar=Calc.Convert.toDouble(args[4]);var redemption=Calc.Convert.toDouble(args[5]);var freq=Calc.Convert.toInt(args[6]);var basis=Calc._Helper._argumentExists(args,7)?Calc.Convert.toInt(args[7]):0;if(basis<0||basis>4||!(freq===1||freq===2||freq===4)||__compareDateTime(settlement,maturity)>0||__compareDateTime(last_interest,settlement)>0){return CalcErrorsNumber}if(rate<0.0||yieldVar<0.0||redemption<=0.0){return CalcErrorsNumber}return __calc_oddlprice(settlement,maturity,last_interest,rate,yieldVar,redemption,freq,basis)}function fi_tbillprice(args){var settlement=Calc.Convert.toDateTime(args[0]);var maturity=Calc.Convert.toDateTime(args[1]);var discount=Calc.Convert.toDouble(args[2]);var dsm;if(__compareDateTime(settlement,maturity)>=0){return CalcErrorsNumber}if(discount<=0.0){return CalcErrorsNumber}dsm=__toOADate(maturity)-__toOADate(settlement);if(dsm>365.0){return CalcErrorsNumber}return 100.0*(1.0-(discount*dsm)/360.0)}function fi_euro(args){var val=Calc.Convert.toString(args[0]);var v=__one_euro(val,2);if(v>=0){return v}else
{return CalcErrorsNumber}}function fi_euroconvert(args){var n=Calc.Convert.toDouble(args[0]);var str1=Calc.Convert.toString(args[1]);var str2=Calc.Convert.toString(args[2]);var fullprec=Calc._Helper._argumentExists(args,3)?Calc.Convert.toBool(args[3]):false;var calcPrec=Calc._Helper._argumentExists(args,4)?Calc.Convert.toInt(args[4]):3;var dispPrec=0;if(calcPrec<3){return CalcErrorsValue}if(!fullprec){dispPrec=__displayPrecision(str2)}if(!Calc._Helper._argumentExists(args,4)){calcPrec=__calcPrecision(str1)}var ret=0.0;var c1=__one_euro(str1,calcPrec);var c2=__one_euro(str2,calcPrec);if(c1>=0.0&&c2>=0.0){ret=n*c2/c1}else
{return CalcErrorsValue}if(!fullprec){ret=Functions.Functions._MathHelper.round(ret,dispPrec)}return ret}Functions.def("FV",fi_fv,{minArgs:3,maxArgs:5,acceptsMissingArgument:Functions.acceptsThreeFour});Functions.def("FVSCHEDULE",fi_fvschedule,{minArgs:2,maxArgs:2,acceptsArray:Functions.acceptsOne,acceptsReference:Functions.acceptsOne});Functions.def("NPV",fi_npv,{minArgs:2,acceptsArray:Functions.acceptsPositive,acceptsReference:Functions.acceptsPositive});Functions.def("PV",fi_pv,{minArgs:3,maxArgs:5,acceptsMissingArgument:Functions.acceptsThreeFour});Functions.def("RECEIVED",fi_received,{minArgs:4,maxArgs:5,acceptsMissingArgument:Functions.acceptsFour});Functions.def("XNPV",fi_xnpv,{minArgs:3,maxArgs:3,acceptsArray:Functions.acceptsNotZero,acceptsReference:Functions.acceptsNotZero});Functions.def("CUMIPMT",fi_cumipmt,{minArgs:6,maxArgs:6});Functions.def("CUMPRINC",fi_cumprinc,{minArgs:6,maxArgs:6});Functions.def("IPMT",fi_ipmt,{minArgs:4,maxArgs:6,acceptsMissingArgument:Functions.acceptsFourFive});Functions.def("ISPMT",fi_ispmt,{minArgs:4,maxArgs:4});Functions.def("PMT",fi_pmt,{minArgs:3,maxArgs:5,acceptsMissingArgument:Functions.acceptsThreeFour});Functions.def("PPMT",fi_ppmt,{minArgs:4,maxArgs:6,acceptsMissingArgument:Functions.acceptsFourFive});Functions.def("COUPDAYBS",fi_coupdaybsFunc,{minArgs:3,maxArgs:4,acceptsMissingArgument:Functions.acceptsThree});Functions.def("COUPDAYS",fi_coupdaysFunc,{minArgs:3,maxArgs:4,acceptsMissingArgument:Functions.acceptsThree});Functions.def("COUPDAYSNC",fi_coupdaysncFunc,{minArgs:3,maxArgs:4,acceptsMissingArgument:Functions.acceptsThree});Functions.def("COUPNCD",fi_coupncdFunc,{minArgs:3,maxArgs:4,acceptsMissingArgument:Functions.acceptsThree});Functions.def("COUPNUM",fi_coupnumFunc,{minArgs:3,maxArgs:4,acceptsMissingArgument:Functions.acceptsThree});Functions.def("COUPPCD",fi_couppcdFunc,{minArgs:3,maxArgs:4,acceptsMissingArgument:Functions.acceptsThree});Functions.def("DURATION",fi_durationFunc,{minArgs:5,maxArgs:6,acceptsMissingArgument:Functions.acceptsFive});Functions.def("MDURATION",fi_mduration,{minArgs:5,maxArgs:6,acceptsMissingArgument:Functions.acceptsFive});Functions.def("NPER",fi_nper,{minArgs:3,maxArgs:5,acceptsMissingArgument:Functions.acceptsThreeFour});Functions.def("YIELD",fi_yieldFunc,{minArgs:6,maxArgs:7,acceptsMissingArgument:Functions.acceptsSix});Functions.def("YIELDDISC",fi_yielddisc,{minArgs:4,maxArgs:5,acceptsMissingArgument:Functions.acceptsFour});Functions.def("YIELDMAT",fi_yieldmat,{minArgs:5,maxArgs:6,acceptsMissingArgument:Functions.acceptsFive});Functions.def("ODDFYIELD",fi_oddfyield,{minArgs:8,maxArgs:9,acceptsMissingArgument:Functions.acceptsEight});Functions.def("ODDLYIELD",fi_oddlyield,{minArgs:7,maxArgs:8,acceptsMissingArgument:Functions.acceptsSeven});Functions.def("TBILLEQ",fi_tbilleq,{minArgs:3,maxArgs:3});Functions.def("TBILLYIELD",fi_tbillyield,{minArgs:3,maxArgs:3});Functions.def("IRR",fi_irr,{minArgs:1,maxArgs:2,acceptsMissingArgument:Functions.acceptsOne,acceptsArray:Functions.acceptsZero,acceptsReference:Functions.acceptsZero});Functions.def("MIRR",fi_mirr,{minArgs:3,maxArgs:3,acceptsArray:Functions.acceptsZero,acceptsReference:Functions.acceptsZero});Functions.def("XIRR",fi_xirr,{minArgs:2,maxArgs:3,acceptsMissingArgument:Functions.acceptsTwo,acceptsArray:Functions.acceptsNotTwo,acceptsReference:Functions.acceptsNotTwo});Functions.def("AMORDEGRC",fi_amordegrc,{minArgs:6,maxArgs:7,acceptsMissingArgument:Functions.acceptsSix});Functions.def("AMORLINC",fi_amorlinc,{minArgs:6,maxArgs:7,acceptsMissingArgument:Functions.acceptsSix});Functions.def("DB",fi_db,{minArgs:4,maxArgs:5,acceptsMissingArgument:Functions.acceptsFour});Functions.def("DDB",fi_ddb,{minArgs:4,maxArgs:5,acceptsMissingArgument:Functions.acceptsFour});Functions.def("SLN",fi_sln,{minArgs:3,maxArgs:3});Functions.def("SYD",fi_syd,{minArgs:4,maxArgs:4});Functions.def("VDB",fi_vdb,{minArgs:5,maxArgs:7,acceptsMissingArgument:Functions.acceptsFiveSix});Functions.def("ACCRINT",fi_accrint,{minArgs:6,maxArgs:8,acceptsMissingArgument:Functions.acceptsFourSixSeven});Functions.def("ACCRINTM",fi_accrintm,{minArgs:3,maxArgs:5,acceptsMissingArgument:Functions.acceptsThreeFour});Functions.def("DISC",fi_disc,{minArgs:4,maxArgs:5,acceptsMissingArgument:Functions.acceptsFour});Functions.def("EFFECT",fi_effect,{minArgs:2,maxArgs:2});Functions.def("INTRATE",fi_intrate,{minArgs:4,maxArgs:5,acceptsMissingArgument:Functions.acceptsFour});Functions.def("NOMINAL",fi_nominal,{minArgs:2,maxArgs:2});Functions.def("RATE",fi_rate,{minArgs:3,maxArgs:6,acceptsMissingArgument:Functions.acceptsThreeFourFive});Functions.def("DOLLARDE",fi_dollarde,{minArgs:2,maxArgs:2});Functions.def("DOLLARFR",fi_dollarfr,{minArgs:2,maxArgs:2});Functions.def("PRICE",fi_price,{minArgs:6,maxArgs:7,acceptsMissingArgument:Functions.acceptsSix});Functions.def("PRICEDISC",fi_pricedisc,{minArgs:4,maxArgs:5,acceptsMissingArgument:Functions.acceptsFour});Functions.def("PRICEMAT",fi_pricemat,{minArgs:5,maxArgs:6,acceptsMissingArgument:Functions.acceptsFive});Functions.def("ODDFPRICE",fi_oddfprice,{minArgs:8,maxArgs:9,acceptsMissingArgument:Functions.acceptsEight});Functions.def("ODDLPRICE",fi_oddlprice,{minArgs:7,maxArgs:8,acceptsMissingArgument:Functions.acceptsSeven});Functions.def("TBILLPRICE",fi_tbillprice,{minArgs:3,maxArgs:3});Functions.def("EURO",fi_euro,{minArgs:1,maxArgs:1});Functions.def("EUROCONVERT",fi_euroconvert,{minArgs:3,maxArgs:5,acceptsMissingArgument:Functions.acceptsThreeFour})})(Calc.Functions||(Calc.Functions={}));var Functions=Calc.Functions})(spread.Calc||(spread.Calc={}));var Calc=spread.Calc})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var __extends=this.__extends||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];function __(){this.constructor=d}__.prototype=b.prototype;d.prototype=new __};var wijmo;(function(wijmo){(function(spread){(function(Calc){(function(Functions){spread.feature("calc.functions_lookup",["calc.functions"]);var $=jQuery,keyword_null=null,keyword_undefined=undefined;var CalcErrors=Calc.Errors,CalcErrorsNull=CalcErrors.Null,CalcErrorsDivideByZero=CalcErrors.DivideByZero,CalcErrorsValue=CalcErrors.Value,CalcErrorsReference=CalcErrors.Reference,CalcErrorsName=CalcErrors.Name,CalcErrorsNotAvailable=CalcErrors.NotAvailable,CalcErrorsNumber=CalcErrors.Number;var _mlow,_mhigh,_mcurrent,_morig,_bsup,_bstarted;function value_area_get_x_y(v,x,y){if(v===keyword_undefined||v===keyword_null){return keyword_null}if(Calc._ArrayHelper.isArrayOrReference(v)){if(x>Calc._ArrayHelper.getColumnCount(v)){var xx=x;x=y;y=xx}var val=(y*Calc._ArrayHelper.getColumnCount(v))+x;Calc.Convert._inArray=false;return Calc._ArrayHelper.getValueByIndex(v,val,0)}else
{return v}}function find_compare_type_valid(find,val){if(val===keyword_undefined||val===keyword_null){return false}if(Calc.Convert.isNumber(find)&&Calc.Convert.isNumber(val)){return true}if(typeof find==='boolean'&&typeof val==='boolean'){return true}if(typeof find==='string'&&typeof val==='string'){return true}return false}function find_bound_walk(l,h,start,up,reset){if(l<0){return-1}if(h<0){return-1}if(h<l){return-1}if(start<l){return-1}if(start>h){return-1}if(reset){_mlow=l;_mhigh=h;_mcurrent=start;_morig=start;_bsup=up;_bstarted=up;return _mcurrent}if(_bsup){_mcurrent++;if(_mcurrent>_mhigh&&_bsup===_bstarted){_mcurrent=_morig-1;_bsup=false}else if(_mcurrent>_mhigh&&_bsup!==_bstarted){return-1}}else
{_mcurrent--;if(_mcurrent<_mlow&&_bsup===_bstarted){_mcurrent=_morig+1;_bsup=true}else if(_mcurrent<_mlow&&_bsup!==_bstarted){return-1}}return _mcurrent}function value_compare(a,b,case_sensitive){if(a===b){return 0}var date=keyword_null;if(typeof a==="string"){if(!b&&a.toString().length===0){return 0}else if(Calc.Convert.isNumber(b)){return 1}else if(typeof b==='boolean'){return 2}else if(typeof b==='string'){var t;if(case_sensitive){t=a.toString().localeCompare(b.toString())}else
{t=a.toLowerCase().localeCompare(b.toLowerCase())}if(t===0){return 0}else if(t>0){return 1}else
{return 2}}else if(b instanceof Date){date=wijmo.spread._DateTimeHelper._parseDate(a);if(!isNaN(date)){if(date===b){return 0}else if(date>b){return 1}else
{return 2}}return 1}else
{return-1}}else if(typeof b==='string'){if(!a&&b.toString().length===0){return 0}else if(Calc.Convert.isNumber(a)){return 2}else if(typeof a==='boolean'){return 1}else if(a instanceof Date){date=wijmo.spread._DateTimeHelper._parseDate(a);if(!isNaN(date)){if(date===b){return 0}else if(date>b){return 1}else
{return 2}}return 2}else
{return-1}}if(typeof a==='boolean'&&Calc.Convert.isNumber(b)){return 1}if(typeof b==='boolean'&&Calc.Convert.isNumber(a)){return 2}var ax=Calc.Convert.toDouble(a);var bx=Calc.Convert.toDouble(b);if(ax===bx){return 0}else if(ax<bx){return 2}else
{return 1}}function value_area_fetch_x_y(v,x,y){var res=value_area_get_x_y(v,x,y);if(res===keyword_undefined||res===keyword_null){return 0}return res}function find_index_bisection(find,data,type,height){var comp=-1;var high,low=0,prev=-1,mid=-1;if(height){high=Calc._ArrayHelper.getRowCount(data)}else
{high=Calc._ArrayHelper.getColumnCount(data)}high--;if(high<low){return-1}while(low<=high){var v=keyword_null;var start;if((type>=1)!==(comp===2)){prev=mid}mid=Calc.Convert.toInt((low+high)/2);mid=find_bound_walk(low,high,mid,type>=0,true);start=mid;var realVal=find;if(find instanceof Calc.CalcArray){realVal=find.getValue(0,0)}else if(find instanceof Calc._SheetRangeReference){realVal=find.getValue(0,0,0,0)}else if(find instanceof Calc.Reference){realVal=find.getValue(0,0,0)}while(!find_compare_type_valid(realVal,v)&&mid!==-1){var rev=false;if(height){v=value_area_get_x_y(data,0,mid)}else
{v=value_area_get_x_y(data,mid,0)}if(find_compare_type_valid(realVal,v)){break}mid=find_bound_walk(0,0,0,false,false);if(!rev&&type>=0&&mid<start){high=mid;rev=true}else if(!rev&&type<0&&mid>start){low=mid;rev=true}}if(mid===-1&&((type>=1)!==(comp===2))){return prev}else if(mid===-1){return-1}comp=value_compare(realVal,v,false);if(type>=1&&comp===1){low=mid+1}else if(type>=1&&comp===2){high=mid-1}else if(type<=-1&&comp===1){high=mid-1}else if(type<=-1&&comp===2){low=mid+1}else if(comp===0){while((type<=-1&&mid>low)||(type>=0&&mid<high)){var adj=0;if(type>=0){adj=mid+1}else
{adj=mid-1}if(height){v=value_area_fetch_x_y(data,0,adj)}else
{v=value_area_fetch_x_y(data,adj,0)}if(!v){return-1}if(!find_compare_type_valid(realVal,v)){break}comp=value_compare(realVal,v,false);if(comp!==0){break}mid=adj}return mid}}if((type>=1)!==(comp===2)){return mid}return prev}function find_index_linear(find,data,type,height){var index_val=keyword_null;var comp;var length,lp,index=-1;if(height){length=Calc._ArrayHelper.getRowCount(data)}else
{length=Calc._ArrayHelper.getColumnCount(data)}for(lp=0;lp<length;lp++){var v;if(height){v=value_area_fetch_x_y(data,0,lp)}else
{v=value_area_fetch_x_y(data,lp,0)}if(v===keyword_undefined||v===keyword_null){return-1}var realVal=find;if(find instanceof Calc.CalcArray){realVal=find.getValue(0,0)}else if(find instanceof Calc.Reference){realVal=find.getValue(0,0,0)}if(!find_compare_type_valid(realVal,v)){continue}comp=value_compare(realVal,v,false);if(type>=1&&comp===1){comp=-1;if(index>=0){comp=value_compare(v,index_val,false)}if(index<0||(index>=0&&comp===1)){index=lp;index_val=v}}else if(type<=-1&&comp===2){comp=-1;if(index>=0){comp=value_compare(v,index_val,false)}if(index<0||(index>=0&&comp===2)){index=lp;index_val=v}}else if(comp===0){return lp}}return index}function CreateStringcomparisonRegexPattern(s){if(!s||s===""){return s}var regExpKeys=[/\(/,/\[/,/\{/,/\\/,/\^/,/\$/,/\|/,/\)/,/\+/,/\./];for(var i in regExpKeys){if(i){s=s.replace(regExpKeys[i],regExpKeys[i].source)}}s=s.replace("~?","{113E2532-EAF5-444c-A5CB-3D7446971C4D}");s=s.replace("~*","{E21523B3-0F1F-458f-B547-23D25713D0EC}");s=s.replace("?",".");s=s.replace("*","((.|\\n)*)");s=s.replace("{113E2532-EAF5-444c-A5CB-3D7446971C4D}","\\?");s=s.replace("{E21523B3-0F1F-458f-B547-23D25713D0EC}","\\*");return s.toString()}function isContextSensitive(){return true}function __iterate(obj,fn,ctx){if(Calc.Convert.isError(obj)){ctx.value=obj;return false}else if(Calc.Convert._isCalcReference(obj)){for(var r=0;r<obj.getRowCount(0);r++){for(var c=0;c<obj.getColumnCount(0);c++){if(!fn(obj.getValue(0,r,c),ctx)){return false}}}}else if(Calc.Convert._isCalcArray(obj)){for(var i=0;i<obj.length();i++){if(!fn(obj.getValueByIndex(i),ctx)){return false}}}else if($.isArray(obj)){$.each(obj,function(i,v){return fn(v,ctx)})}else
{if(!fn(obj,ctx)){return false}}return true}function findBranchArgument(test){if(Calc.Convert.isError(test)){return-1}try
{return Calc.Convert.toInt(test)}catch(err){}return-1}function _checkArgumentsLength(args){if(!args){throw spread.SR.Exp_InvalidArgument;}else
{if(args.length<1||args.length>1){throw spread.SR.Exp_InvalidArgument;}}}var _CellInfoType;(function(_CellInfoType){_CellInfoType[_CellInfoType["row"]=0]="row";_CellInfoType[_CellInfoType["column"]=1]="column"})(_CellInfoType||(_CellInfoType={}));;var _CellInfoReference=(function(_super){__extends(_CellInfoReference,_super);function _CellInfoReference(source,row,column,rowCount,columnCount,type){_super.call(this,source,[new wijmo.spread.Range(row,column,rowCount,columnCount)]);var self=this;self._row=row;self._column=column;self._rowCount=rowCount;self._columnCount=columnCount;self._type=type}_CellInfoReference.prototype.type=function(){return this._type};_CellInfoReference.prototype.getValue=function(area,rowOffset,columnOffset){var self=this;switch(self._type){case 0:return self.getRow(0)+1+rowOffset;case 1:return self.getColumn(0)+1+columnOffset;default:return self.getActualValue(area,rowOffset,columnOffset)}};return _CellInfoReference})(Calc._ConcreteReference);var _TransposedArray=(function(_super){__extends(_TransposedArray,_super);function _TransposedArray(array){_super.call(this);this._array=array}_TransposedArray.prototype.getRowCount=function(){return Calc._ArrayHelper.getColumnCount(this._array)};_TransposedArray.prototype.getColumnCount=function(){return Calc._ArrayHelper.getRowCount(this._array)};_TransposedArray.prototype.getValue=function(row,column){return Calc._ArrayHelper.getValue(this._array,column,row)};return _TransposedArray})(Calc.CalcArray);function eg_row(args,context){_checkArgumentsLength([args]);if(!context){return CalcErrorsValue}var isArrayFormula=context.arrayFormulaMode;var reference=Calc._Helper._argumentExists(args,0)?args[0]:context.getReference(context.source,context.row,context.column,context.rowCount,context.columnCount);if(!reference||reference.getRangeCount()!==1){return CalcErrorsValue}if(isArrayFormula){return new _CellInfoReference(reference.getSource(),reference.getRow(0),reference.getColumn(0),reference.getRowCount(0),reference.getColumnCount(0),0)}return reference.getRow(0)+1}function eg_column(args,context){_checkArgumentsLength([args]);if(!context){return CalcErrorsValue}var isArrayFormula=context.arrayFormulaMode;var reference=Calc._Helper._argumentExists(args,0)?args[0]:context.getReference(context.source,context.row,context.column,context.rowCount,context.columnCount);if(!reference||reference.getRangeCount()!==1){return CalcErrorsValue}if(isArrayFormula){return new _CellInfoReference(reference.getSource(),reference.getRow(0),reference.getColumn(0),reference.getRowCount(0),reference.getColumnCount(0),1)}return reference.getColumn(0)+1}function eg_rows(args){_checkArgumentsLength([args]);return Calc._ArrayHelper.getRowCount(args[0])}function eg_columns(args){_checkArgumentsLength([args]);return Calc._ArrayHelper.getColumnCount(args[0])}function eg_transpose(args){_checkArgumentsLength([args]);return new _TransposedArray(args[0])}function eg_hlookup(args){var lookVal=args[0];var array=args[1];var row_index=Calc.Convert.toInt(args[2]);var approx=Calc._Helper._argumentExists(args,3)?Calc.Convert.toBool(args[3]):true;var index=-1;if(row_index<=0){return CalcErrorsValue}if(row_index>Calc._ArrayHelper.getRowCount(array)){return CalcErrorsReference}if(approx){index=find_index_bisection(args[0],args[1],1,false)}else
{index=find_index_linear(args[0],args[1],0,false)}if(index>=0){var v=value_area_fetch_x_y(args[1],index,row_index-1);return v}return CalcErrorsNotAvailable}function eg_vlookup(args){var lookVal=args[0];var array=args[1];var col_index=Calc.Convert.toInt(args[2]);var approx=Calc._Helper._argumentExists(args,3)?Calc.Convert.toBool(args[3]):true;var index=-1;if(col_index<=0){return CalcErrorsValue}if(col_index>Calc._ArrayHelper.getColumnCount(array)){return CalcErrorsReference}if(approx){index=find_index_bisection(args[0],args[1],1,true)}else
{index=find_index_linear(args[0],args[1],0,true)}if(index>=0){var v=value_area_fetch_x_y(args[1],col_index-1,index);return v}return CalcErrorsNotAvailable}function eg_lookup(args){var index=-1;var result;var width=Calc._ArrayHelper.getColumnCount(args[1]);var height=Calc._ArrayHelper.getRowCount(args[1]);if(args.length>2){result=args[2]}else
{var val=keyword_null;if(width>height){val=eg_hlookup([args[0],args[1],height]);if(val instanceof Calc.Error){return CalcErrorsNotAvailable}else
{return val}}else
{val=eg_vlookup([args[0],args[1],width]);if(val instanceof Calc.Error){return CalcErrorsNotAvailable}else
{return val}}}if(result){var width2=Calc._ArrayHelper.getColumnCount(result);var height2=Calc._ArrayHelper.getRowCount(result);if(width2>1&&height2>1){return CalcErrorsNotAvailable}}else
{result=args[1]}index=find_index_bisection(args[0],args[1],1,width>height?false:true);if(index>=0){var v=keyword_null;width=Calc._ArrayHelper.getColumnCount(result);height=Calc._ArrayHelper.getRowCount(result);if(width>height){v=value_area_fetch_x_y(result,index,height-1)}else
{v=value_area_fetch_x_y(result,width-1,index)}return v}return CalcErrorsNotAvailable}function eg_choose(args){var index=Calc.Convert.toInt(args[0]);if(index<1||args.length<=index){return CalcErrorsValue}if(!args[index]){return 0.0}else
{return args[index]}}function assertOrder(v,ascending){var length=Calc._ArrayHelper.getLength(v);for(var i=0;i<length;i++){if(i>0){var a=Calc._ArrayHelper.getValueByIndex(v,i-1);var b=Calc._ArrayHelper.getValueByIndex(v,i);var ret=value_compare(a,b,false);if(ret===2&&!ascending){return false}}}return true}function eg_match(args){if(!(args[1]instanceof Calc.Array)&&!(args[1]instanceof Calc.Reference)){return CalcErrorsNotAvailable}var width=Calc._ArrayHelper.getColumnCount(args[1]);var height=Calc._ArrayHelper.getRowCount(args[1]);var matchType=Calc._Helper._argumentExists(args,2)?Calc.Convert.toInt(args[2]):0;if(width>1&&height>1){return CalcErrorsNotAvailable}if(matchType===1&&!assertOrder(args[1],true)){return CalcErrorsNotAvailable}else if(matchType===-1&&!assertOrder(args[1],false)){return CalcErrorsNotAvailable}var result=-1;if(matchType===1){result=find_index_bisection(args[0],args[1],1,height>1)}else if(matchType===0){result=find_index_linear(args[0],args[1],0,height>1)}else if(matchType===-1){result=find_index_bisection(args[0],args[1],-1,height>1)}if(result===-1){return CalcErrorsNotAvailable}return result+1}function _appendR1C1Number(sb,prefix,coord,relative){sb.append(prefix);if(relative){if(coord!==0){sb.append("[");sb.append(coord.toString());sb.append("]")}}else
{sb.append(coord)}}function _appendA1Number(sb,coord,relative){if(!relative){sb.append("$")}sb.append(coord);return sb}function _appendA1Letter(sb,coord,relative){if(!relative){sb.append("$")}var position=sb.toString().length;for(;coord>0.1;coord=(coord-1)/26){sb.insert(String.fromCharCode('A'.charCodeAt(0)+(coord-1)%26),position)}return sb}function _appendExternalName(sb,name){if(name&&0<name.length){var needQuotes=!Calc.Parser._isLetter(name[0])&&name[0]!=='_';for(var i=1;!needQuotes&&i<name.length;i++){needQuotes=!Calc.Parser._isLetterOrDigit(name[i])&&name[i]!=='_'}if(needQuotes){sb.append("'");sb.append(name.replace("'","''"));sb.append("'")}else
{sb.append(name)}sb.append("!")}return sb}function eg_address(args){var row=Calc.Convert.toInt(args[0]);var col=Calc.Convert.toInt(args[1]);var absNum=Calc._Helper._argumentExists(args,2)?Calc.Convert.toInt(args[2]):1;var a1=Calc._Helper._argumentExists(args,3)?Calc.Convert.toBool(args[3]):true;var sheetText=Calc._Helper._argumentExists(args,4)?Calc.Convert.toString(args[4]):"";var rowRelative=(absNum===3||absNum===4||absNum===7||absNum===8);var colRelative=(absNum===2||absNum===4||absNum===6||absNum===8);var sb=new spread._StringBuilder;if(row<1&&(a1||!rowRelative)||row>Calc.Parser.maxRowCount){return CalcErrorsValue}if(col<1&&(a1||!colRelative)||col>Calc.Parser.maxColumnCount){return CalcErrorsValue}if(absNum<1||8<absNum){return CalcErrorsValue}_appendExternalName(sb,sheetText);if(a1){_appendA1Letter(sb,col,colRelative);_appendA1Number(sb,row,rowRelative)}else
{_appendR1C1Number(sb,"R",row,rowRelative);_appendR1C1Number(sb,"C",col,colRelative)}return sb.toString()}function eg_index(args,context){var evaluateContext=context instanceof Calc.EvaluateContext?context:keyword_undefined;var acceptsReference=evaluateContext!=keyword_null?evaluateContext.acceptsReference:false;if(args[0]instanceof Calc.Reference){var reference=args[0];var arrayRowCount=reference.getRowCount(0);var arrayColumnCount=reference.getColumnCount(0);if(args.length==2){if(reference.getRangeCount()!=1||arrayRowCount!=1&&arrayColumnCount!=1)return CalcErrorsReference;var index=Calc._Helper._argumentExists(args,1)?Calc.Convert.toInt(args[1]):0;if(index==0&&!acceptsReference&&evaluateContext!=keyword_null){index=arrayRowCount>0?evaluateContext.rowOffset:evaluateContext.columnOffset}if(index<0)return CalcErrorsValue;if(arrayRowCount*arrayColumnCount<index)return CalcErrorsReference;if(index==0)return new Calc._ConcreteReference(reference,[new spread.Range(0,0,arrayRowCount,arrayColumnCount)]);else
{var sourceRow=reference.getRow(0);var sourceCol=reference.getColumn(0);var offsetRow=Math.floor((index-1)/arrayColumnCount)+sourceRow;var offsetCol=(index-1)%arrayColumnCount+sourceCol;return new Calc._ConcreteReference(reference,[new spread.Range(offsetRow,offsetCol,1,1)])}}else
{var row=Calc._Helper._argumentExists(args,1)?Calc.Convert.toInt(args[1])-1:-1;var column=Calc._Helper._argumentExists(args,2)?Calc.Convert.toInt(args[2])-1:-1;var area=Calc._Helper._argumentExists(args,3)?(Calc.Convert.toInt(args[3])-1):0;if(area>=reference.getRangeCount()){return CalcErrorsReference}arrayRowCount=reference.getRowCount(area);arrayColumnCount=reference.getColumnCount(area);var sourceRow=reference.getRow(area);var sourceCol=reference.getColumn(area);if(row==-1&&!acceptsReference&&arrayRowCount>1&&evaluateContext!=keyword_null){row=evaluateContext.rowOffset}if(column==-1&&!acceptsReference&&arrayColumnCount>1&&evaluateContext!=keyword_null){column=evaluateContext.columnOffset}var offsetRow=row+sourceRow;var offsetCol=column+sourceCol;if(row<-1||column<-1||area<0)return CalcErrorsValue;if(arrayRowCount<row||arrayColumnCount<column||reference.getRangeCount()<=area)return CalcErrorsReference;if(row==-1&&column==-1)return new Calc._ConcreteReference(reference,[new spread.Range(sourceRow,sourceCol,arrayRowCount,arrayColumnCount)],area);else if(row==-1)return new Calc._ConcreteReference(reference,[new spread.Range(sourceRow,offsetCol,arrayRowCount,1)],area);else if(column==-1)return new Calc._ConcreteReference(reference,[new spread.Range(offsetRow,sourceCol,1,arrayColumnCount)],area);else
return new Calc._ConcreteReference(reference,[new spread.Range(offsetRow,offsetCol,1,1)],area)}}else if(args[0]instanceof Calc.CalcArray){var array=args[0];arrayRowCount=array.getRowCount();arrayColumnCount=array.getColumnCount();var row=Calc._Helper._argumentExists(args,1)?Calc.Convert.toInt(args[1]):0;var column=Calc._Helper._argumentExists(args,2)?Calc.Convert.toInt(args[2]):0;var area=Calc._Helper._argumentExists(args,3)?(Calc.Convert.toInt(args[3])-1):1;if(area!=1){return CalcErrorsReference}arrayRowCount=array.getRowCount();arrayColumnCount=array.getColumnCount();if(row<0||column<0||area<0)return CalcErrorsValue;if(row>arrayRowCount&&arrayRowCount===1&&!Calc._Helper._argumentExists(args,2)){column=row;row=0}if(arrayRowCount<row||arrayColumnCount<column)return CalcErrorsReference;if(row==0&&column==0)return new Calc._SliceArray(array,0,0,arrayRowCount,arrayColumnCount);else if(row==0)return new Calc._SliceArray(array,0,column-1,arrayRowCount,1);else if(column==0)return new Calc._SliceArray(array,row-1,0,1,arrayColumnCount);else
return array.getValue(row-1,column-1)}}function eg_offset(args){var reference=args[0];if(!reference||reference.getRangeCount()!==1){return CalcErrorsValue}var rows=Calc.Convert.toInt(args[1]);var columns=Calc.Convert.toInt(args[2]);var height=Calc._Helper._argumentExists(args,3)?Calc.Convert.toInt(args[3]):reference.getRowCount(0);var width=Calc._Helper._argumentExists(args,4)?Calc.Convert.toInt(args[4]):reference.getColumnCount(0);var source=reference.getSource();var offsetRow=reference.getRow(0)+rows;var offsetColumn=reference.getColumn(0)+columns;if(height<=0||width<=0){return CalcErrorsReference}if(offsetRow<source.getRow(0)||source.getRow(0)+source.getRowCount(0)<offsetRow+height){return CalcErrorsReference}if(offsetColumn<source.getColumn(0)||source.getColumn(0)+source.getColumnCount(0)<offsetColumn+width){return CalcErrorsReference}return new Calc._ConcreteReference(source,[{row:offsetRow,col:offsetColumn,rowCount:height,colCount:width}])}Functions.def("ADDRESS",eg_address,{minArgs:2,maxArgs:5,acceptsMissingArgument:Functions.acceptsTwoThreeFour});Functions.def("INDEX",eg_index,{minArgs:2,maxArgs:4,acceptsReference:Functions.acceptsZero,acceptsArray:Functions.acceptsZero,acceptsMissingArgument:Functions.acceptsOneTwoThree,isContextSensitive:isContextSensitive});Functions.def("OFFSET",eg_offset,{minArgs:3,maxArgs:5,acceptsMissingArgument:Functions.acceptsThreeFour,acceptsReference:Functions.acceptsZero,acceptsArray:Functions.acceptsZero,isVolatile:Functions.isVolatile,arrayArgumentEvaluateMode:2});Functions.def("ROW",eg_row,{minArgs:0,maxArgs:1,acceptsReference:Functions.acceptsAny,isContextSensitive:isContextSensitive,precedentReference:Functions.acceptsNone,expandColumns:Functions.acceptsNone});Functions.def("COLUMN",eg_column,{minArgs:0,maxArgs:1,acceptsMissingArgument:Functions.acceptsZero,acceptsReference:Functions.acceptsAny,isContextSensitive:isContextSensitive,precedentReference:Functions.acceptsNone,expandRows:Functions.acceptsNone});Functions.def("ROWS",eg_rows,{minArgs:1,maxArgs:1,acceptsReference:Functions.acceptsAny,acceptsArray:Functions.acceptsAny,precedentReference:Functions.acceptsNone,expandColumns:Functions.acceptsNone});Functions.def("COLUMNS",eg_columns,{minArgs:1,maxArgs:1,acceptsReference:Functions.acceptsAny,acceptsArray:Functions.acceptsAny,precedentReference:Functions.acceptsNone,expandRows:Functions.acceptsNone});Functions.def("TRANSPOSE",eg_transpose,{minArgs:1,maxArgs:1,acceptsReference:Functions.acceptsAny,acceptsArray:Functions.acceptsAny});Functions.def("LOOKUP",eg_lookup,{minArgs:2,maxArgs:3,acceptsArray:Functions.acceptsNotZero,acceptsReference:Functions.acceptsNotZero});Functions.def("HLOOKUP",eg_hlookup,{minArgs:3,maxArgs:4,acceptsMissingArgument:Functions.acceptsThree,acceptsArray:Functions.acceptsOne,acceptsReference:Functions.acceptsOne});Functions.def("VLOOKUP",eg_vlookup,{minArgs:3,maxArgs:4,acceptsMissingArgument:Functions.acceptsThree,acceptsArray:Functions.acceptsOne,acceptsReference:Functions.acceptsOne});Functions.def("CHOOSE",eg_choose,{minArgs:2,maxArgs:255,acceptsError:Functions.acceptsMoreThanOne,isBranch:Functions.isBranch,findTestArgument:Functions.findTestArgument,findBranchArgument:findBranchArgument});Functions.def("MATCH",eg_match,{minArgs:2,maxArgs:3,acceptsMissingArgument:Functions.acceptsTwo,acceptsReference:Functions.acceptsOne,acceptsArray:Functions.acceptsOne})})(Calc.Functions||(Calc.Functions={}));var Functions=Calc.Functions})(spread.Calc||(spread.Calc={}));var Calc=spread.Calc})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){(function(Calc){(function(Functions){spread.feature("calc.functions_stat",["calc.functions"]);var keyword_null=null,Math_pow=Math.pow,Math_max=Math.max,Math_min=Math.min,Math_floor=Math.floor,Math_sin=Math.sin,Math_tan=Math.tan,Math_PI=Math.PI,Math_atan=Math.atan,Math_exp=Math.exp,Math_abs=Math.abs,Math_sqrt=Math.sqrt,Math_log=Math.log;var CalcErrors=Calc.Errors,CalcErrorsNull=CalcErrors.Null,CalcErrorsDivideByZero=CalcErrors.DivideByZero,CalcErrorsValue=CalcErrors.Value,CalcErrorsReference=CalcErrors.Reference,CalcErrorsName=CalcErrors.Name,CalcErrorsNotAvailable=CalcErrors.NotAvailable,CalcErrorsNumber=CalcErrors.Number;var const_undefined="undefined";var const_boolean="boolean";var const_string="string";var __dev1=Functions._StatHelper.__dev1;var st_normsdist=Functions._StatHelper.st_normsdist;var __countIncludeSubtotals=Functions._StatHelper.__countIncludeSubtotals;var __countaIncludeSubtotals=Functions._StatHelper.__countaIncludeSubtotals;var __maxIncludeSubtotals=Functions._StatHelper.__maxIncludeSubtotals;var __minIncludeSubtotals=Functions._StatHelper.__minIncludeSubtotals;var __stdevpIncludeSubtotals=Functions._StatHelper.__stdevpIncludeSubtotals;var __varrIncludeSubtotals=Functions._StatHelper.__varrIncludeSubtotals;var __varpIncludeSubtotals=Functions._StatHelper.__varpIncludeSubtotals;function st_max(args){return __maxIncludeSubtotals(args,true)}function st_maxa(args){var isAny=false,max=0.0,val;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;for(var i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}if(arrayHelper.isArrayOrReference(args[i])){for(var j=0;j<arrayHelper.getLength(args[i]);j++){var obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)||(typeof obj===const_boolean)){val=convert.toDouble(obj);if(!isAny||val>max){max=val}isAny=true}else if(typeof obj===const_string){val=0.0;if(!isAny||val>max){max=val}isAny=true}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(val=convert.toDouble(args[i]))){return CalcErrorsValue}if(!isAny||val>max){max=val}isAny=true}}return max}function st_min(args){return __minIncludeSubtotals(args,true)}function st_mina(args){var _any=false,min=0.0,val;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;for(var i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}if(arrayHelper.isArrayOrReference(args[i])){for(var j=0;j<arrayHelper.getLength(args[i]);j++){var obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)||(typeof obj===const_boolean)){val=convert.toDouble(obj);if(!_any||val<min){min=val}_any=true}else if(typeof obj===const_string){val=0.0;if(!_any||val<min){min=val}_any=true}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(val=convert.toDouble(args[i]))){return CalcErrorsValue}if(!_any||val<min){min=val}_any=true}}return min}function st_large(args){var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;if(convert.isError(args[0])){return args[0]}if(convert.isError(args[1])){return args[1]}var k=convert.toInt(args[1]);var list=[],x;if(arrayHelper.isArrayOrReference(args[0])){for(var i=0;i<arrayHelper.getLength(args[0]);i++){var obj=arrayHelper.getValueByIndex(args[0],i);if(convert.isNumber(obj)){x=convert.toDouble(obj);list.push(x)}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[0]))){return CalcErrorsValue}list.push(x)}list.sort(function(x,y){return x-y});if(k<=0||list.length<k){return CalcErrorsNumber}return list[list.length-k]}function st_small(args){var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;if(convert.isError(args[0])){return args[0]}if(convert.isError(args[1])){return args[1]}var k;if(isNaN(k=convert.toInt(args[1]))){return CalcErrorsValue}var list=[],x;if(arrayHelper.isArrayOrReference(args[0])){for(var i=0;i<arrayHelper.getLength(args[0]);i++){var obj=arrayHelper.getValueByIndex(args[0],i);if(convert.isNumber(obj)){x=convert.toDouble(obj);list.push(x)}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[0]))){return CalcErrorsValue}list.push(x)}list.sort(function(x,y){return x-y});if(k<=0||list.length<k){return CalcErrorsNumber}return list[k-1]}function st_averagea(args){var sum=0.0;var n=0.0;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;for(var i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}if(arrayHelper.isArrayOrReference(args[i])){for(var j=0;j<arrayHelper.getLength(args[i]);j++){var obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)||(typeof obj===const_boolean)){sum+=convert.toDouble(obj);n++}else if(typeof obj===const_string){sum+=0.0;n++}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{var x;if(isNaN(x=convert.toDouble(args[i]))){return CalcErrorsValue}sum+=x;n++}}if(n===0){return CalcErrorsDivideByZero}return convert.toResult(sum/n)}function __averageifImp(range,criteria,sumRange){var sum=0.0;var n=0.0;var crit=Functions.Functions._MathHelper.parseCriteria(criteria);var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;if(arrayHelper.getRowCount(range)!==arrayHelper.getRowCount(sumRange)||arrayHelper.getColumnCount(range)!==arrayHelper.getColumnCount(sumRange)){return CalcErrorsValue}for(var j=0;j<arrayHelper.getLength(range);j++){var val=arrayHelper.getValueByIndex(range,j);if(crit&&crit(val)){var obj=arrayHelper.getValueByIndex(sumRange,j);if(convert.isNumber(obj)){sum+=convert.toDouble(obj);n++}else if(convert.isError(obj)){return obj}}}if(n===0){return CalcErrorsDivideByZero}return convert.toResult(sum/n)}function st_averageif(args){var range=args[0];var criteria=args[1];var sumRange=Calc._Helper._argumentExists(args,2)?args[2]:args[0];var convert=Calc.Convert;var critieriaRef=args[1];var rowCount,colCount,result,r,c;if(convert._isCalcReference(critieriaRef)){rowCount=critieriaRef.getRowCount(0);colCount=critieriaRef.getColumnCount(0);result=[];for(r=0;r<rowCount;r++){result[r]=[];for(c=0;c<colCount;c++){result[r][c]=__averageifImp(range,critieriaRef.getValue(0,r,c),sumRange)}}return new Calc._ConcreteArray(result)}var criteriaArray=args[1];if(convert._isCalcArray(criteriaArray)){Calc.Convert._inArray=true;rowCount=criteriaArray.getRowCount();colCount=criteriaArray.getColumnCount();result=[];for(r=0;r<rowCount;r++){result[r]=[];for(c=0;c<colCount;c++){result[r][c]=__averageifImp(range,criteriaArray.getValue(r,c),sumRange)}}Calc.Convert._inArray=false;return new Calc._ConcreteArray(result)}return __averageifImp(range,criteria,sumRange)}function st_averageifs(args){var sum=0.0;var n=0.0;var sumRange=args[0];var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var length=arrayHelper.getLength(args[0]);var obj;for(var i=0;i<length;i++){var condition=true;for(var j=1;j<args.length;j=j+2){var range=args[j];var criteria=args[j+1];var crit=Functions.Functions._MathHelper.parseCriteria(criteria);obj=arrayHelper.getValueByIndex(range,i);condition=crit(obj);if(!condition){break}}if(condition){obj=arrayHelper.getValueByIndex(sumRange,i);if(convert.isNumber(obj)){sum+=convert.toDouble(obj);n++}else if(convert.isError(obj)){return obj}}}if(n===0){return CalcErrorsDivideByZero}return convert.toResult(sum/n)}function st_median(args){var list=[],x;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;for(var i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}if(arrayHelper.isArrayOrReference(args[i])){for(var j=0;j<arrayHelper.getLength(args[i]);j++){var obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)){x=convert.toDouble(obj);list.push(x)}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[i]))){return CalcErrorsValue}list.push(x)}}list.sort(function(x,y){return x-y});if(list.length===0){return CalcErrorsNumber}if(list.length%2===0){return(convert.toDouble(list[list.length/2-1])+convert.toDouble(list[list.length/2]))/2.0}else
{return list[parseInt((list.length/2).toString(),10)]}}function st_mode(args){var mode=keyword_null;var modeCount=0;var list=[];var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var i,j,x;for(i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}if(arrayHelper.isArrayOrReference(args[i])){for(j=0;j<arrayHelper.getLength(args[i]);j++){var obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)){x=convert.toDouble(obj);list.push(x)}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[i]))){return CalcErrorsValue}list.push(x)}}for(i=0;i<list.length;i++){var count=0;for(j=0;j<list.length;j++){if(j!==i&&convert.toDouble(list[j])===convert.toDouble(list[i])){count++}}if(count>modeCount){modeCount=count;mode=list[i]}}if(modeCount===0){return CalcErrorsNotAvailable}return mode}function st_geomean(args){var y;var prod=1.0;var n=0;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;for(var i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}if(arrayHelper.isArrayOrReference(args[i])){for(var j=0;j<arrayHelper.getLength(args[i]);j++){var obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)){y=convert.toDouble(obj);if(y<=0){Calc.Convert._inArray=false;return CalcErrorsNumber}prod*=y;n++}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(y=convert.toDouble(args[i]))){return CalcErrorsValue}if(y<=0){return CalcErrorsNumber}prod*=y;n++}}if(n<=0){return CalcErrorsDivideByZero}return convert.toResult(Math_pow(prod,1.0/n))}function st_harmean(args){var y;var sum=0.0;var n=0;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;for(var i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}if(arrayHelper.isArrayOrReference(args[i])){for(var j=0;j<arrayHelper.getLength(args[i]);j++){var obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)){y=convert.toDouble(obj);if(y<=0.0){Calc.Convert._inArray=false;return CalcErrorsNumber}sum+=1/y;n++}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(y=convert.toDouble(args[i]))){return CalcErrorsValue}if(y<=0.0){return CalcErrorsNumber}sum+=1/y;n++}}if(sum===0.0){return CalcErrorsDivideByZero}return convert.toResult(n/sum)}function st_trimmean(args){var percent;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;if(isNaN(percent=convert.toDouble(args[1]))){return CalcErrorsValue}var sum=0.0;var list=[],i,x;if(percent<0.0||1.0<=percent){return CalcErrorsNumber}if(convert.isError(args[0])){return args[0]}if(arrayHelper.isArrayOrReference(args[0])){for(i=0;i<arrayHelper.getLength(args[0]);i++){var obj=arrayHelper.getValueByIndex(args[0],i);if(convert.isNumber(obj)){x=convert.toDouble(obj);list.push(x)}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[0]))){return CalcErrorsValue}list.push(x)}list.sort(function(x,y){return x-y});var n=parseInt((list.length*percent/2).toString(),10);for(i=n;i<list.length-n;i++){sum+=convert.toDouble(list[i])}return sum/(list.length-2*n)}function st_frequency(args){var convert=Calc.Convert;var dataArray=convert._toArray(args[0]);var binsArray=convert._toArray(args[1]);var binsCount=0,i,j,element;var rowCount1=binsArray.getRowCount();var columnCount1=binsArray.getColumnCount();for(i=0;i<rowCount1;i++){for(j=0;j<columnCount1;j++){element=binsArray.getValue(i,j);if(convert.isError(element)){return element}if(convert.isNumber(element)){binsCount++}}}var rowCount2=dataArray.getRowCount();var columnCount2=dataArray.getColumnCount();for(i=0;i<rowCount2;i++){for(j=0;j<columnCount2;j++){element=dataArray.getValue(i,j);if(convert.isError(element)){return element}}}var bins=[];var results=[];var resultsLength=binsCount+1;binsCount=0;for(i=0;i<rowCount1;i++){for(j=0;j<columnCount1;j++){element=binsArray.getValue(i,j);if(convert.isNumber(element)){bins[binsCount++]=convert.toDouble(element)}}}var binList=bins.slice(0);bins.sort(function(x,y){return x-y});for(i=0;i<resultsLength;i++){results[i]=0}for(i=0;i<rowCount2;i++){for(j=0;j<columnCount2;j++){element=dataArray.getValue(i,j);if(convert.isNumber(element)){var number=convert.toDouble(element);var found=false;for(var k=0;!found&&k<binsCount;k++){if(number<=bins[k]){results[binList.indexOf(bins[k])]++;found=true}}if(!found){results[binsCount]++}}}}return new Calc._OneDimensionalArray(results)}function st_rank(args){var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var number;if(isNaN(number=convert.toDouble(args[0]))){return CalcErrorsValue}var array=args[1];var order=0.0;if(Calc._Helper._argumentExists(args,2)){if(isNaN(order=convert.toDouble(args[2]))){return CalcErrorsValue}}var lessThanCount=0;var equalToCount=0;var greaterThanCount=0;for(var i=0;i<arrayHelper.getLength(array);i++){var obj=arrayHelper.getValueByIndex(args[1],i);if(convert.isNumber(obj)){var x=convert.toDouble(obj);if(x<number){lessThanCount++}else if(number<x){greaterThanCount++}else
{equalToCount++}}}if(equalToCount===0){return CalcErrorsNotAvailable}return order===0?greaterThanCount+1:lessThanCount+1}function st_kurt(args){var x;var sumx=0.0;var sumx2=0.0;var sum4=0.0;var mean;var stdev;var n=0;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var i,j,obj;for(i=0;i<args.length;i++){if(arrayHelper.isArrayOrReference(args[i])){for(j=0;j<arrayHelper.getLength(args[i]);j++){obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)){x=convert.toDouble(obj);sumx+=x;sumx2+=x*x;n++}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[i]))){return CalcErrorsValue}sumx+=x;sumx2+=x*x;n++}}if(n<=3){return CalcErrorsDivideByZero}mean=sumx/n;stdev=Math_sqrt((n*sumx2-sumx*sumx)/(n*(n-1)));if(stdev===0.0){return CalcErrorsDivideByZero}for(i=0;i<args.length;i++){if(arrayHelper.isArrayOrReference(args[i])){for(j=0;j<arrayHelper.getLength(args[i]);j++){obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)){x=convert.toDouble(obj);sum4+=Math_pow((x-mean)/stdev,4.0)}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[i]))){return CalcErrorsValue}sum4+=Math_pow((x-mean)/stdev,4.0)}}return convert.toResult((n*(n+1)*sum4)/((n-1)*(n-2)*(n-3))-(3*(n-1)*(n-1))/((n-2)*(n-3)))}function st_percentrank(args){var array=args[0];var xval;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;if(isNaN(xval=convert.toDouble(args[1]))){return CalcErrorsValue}var significance=3;if(Calc._Helper._argumentExists(args,2)){if(isNaN(significance=convert.toInt(args[2]))){return CalcErrorsValue}}var x,pr;x=xval;var smaller=0;var greater=0;var equal=0;var smaller_x=x;var greater_x=x;if(significance<1){return CalcErrorsNumber}for(var i=0;i<arrayHelper.getLength(array);i++){var arrayo=arrayHelper.getValueByIndex(array,i);if(typeof(arrayo)!==const_undefined&&arrayo!==keyword_null){var arrayi;if(isNaN(arrayi=convert.toDouble(arrayo))){return CalcErrorsValue}if(arrayi<x){smaller++;if(smaller_x===x||smaller_x<arrayi){smaller_x=arrayi}}else if(arrayi>x){greater++;if(greater_x===x||greater_x>arrayi){greater_x=arrayi}}else
{equal++}}}if((smaller+equal===0)||(greater+equal===0)){return CalcErrorsNotAvailable}else if(greater===0&&smaller===0&&equal!==0){return 1.0}smaller=convert.toDouble(smaller);greater=convert.toDouble(greater);equal=convert.toDouble(equal);if(equal===1){pr=smaller/(smaller+greater)}else if(equal===0){var a=(x-smaller_x)/(greater_x-smaller_x);pr=(smaller+a-1.0)/(greater+smaller-1.0)}else
{pr=(smaller+0.5*equal)/(smaller+equal+greater)}return Functions.Functions._MathHelper.round(pr,significance>15?15:significance)}function st_quartile(args){var array=args[0];var convert=Calc.Convert;var quart=convert.toInt(args[1]);var k=0.0;switch(quart){case 0:k=0.00;break;case 1:k=0.25;break;case 2:k=0.50;break;case 3:k=0.75;break;case 4:k=1.00;break;default:return CalcErrorsNumber}return Functions._StatHelper.st_percentile([array,k])}function st_count(args){return __countIncludeSubtotals(args,true)}function st_counta(args){return __countaIncludeSubtotals(args,true)}function st_countblank(args){var count=0;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;for(var r=0;r<arrayHelper.getRangeCount(args[0]);r++){for(var i=0;i<arrayHelper.getLength(args[0],r);i++){if(arrayHelper.getValueByIndex(args[0],i,r)===keyword_null){count++}}}return convert.toDouble(count)}function __countifImp(range,criteria){var count=0.0;var isCriteriaZero=criteria===0;var crit=Functions.Functions._MathHelper.parseCriteria(criteria);var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;for(var r=0;r<arrayHelper.getRangeCount(range);r++){for(var i=0;i<arrayHelper.getLength(range,r);i++){var obj=arrayHelper.getValueByIndex(range,i,r);if(isCriteriaZero&&obj===keyword_null){}else if(crit&&crit(obj)){count++}}}return convert.toResult(count)}function st_countif(args){var range=args[0];var criteria=args[1];var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var r,c;if(arrayHelper.isArrayOrReference(criteria)){var rowCount=arrayHelper.getRowCount(criteria);var colCount=arrayHelper.getColumnCount(criteria);var counts=[];for(r=0;r<rowCount;r++){counts[r]=[colCount];for(c=0;c<colCount;c++){var val=__countifImp(range,arrayHelper.getValue(criteria,r,c));if(convert.isError(val)){Calc.Convert._inArray=false;return val}var d;if(isNaN(d=convert.toDouble(val))){Calc.Convert._inArray=false;return CalcErrorsValue}counts[r][c]=d}}var count=0.0;for(r=0;r<rowCount;r++){for(c=0;c<colCount;c++){count+=counts[r][c]}}Calc.Convert._inArray=false;return count}return __countifImp(range,criteria)}function st_countifs(args){var count=0.0;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var length=arrayHelper.getLength(args[0]);for(var i=0;i<length;i++){var condition=true;for(var j=0;j<args.length;j=j+2){var range=args[j];var criteria=args[j+1];var crit=Functions.Functions._MathHelper.parseCriteria(criteria);var obj=arrayHelper.getValueByIndex(range,i);condition=(crit&&crit(obj));if(!condition){break}}if(condition){count++}}return convert.toResult(count)}function __dev2(args,stc){var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var x;for(var i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}else if(arrayHelper.isArrayOrReference(args[i])){for(var j=0;j<arrayHelper.getLength(args[i]);j++){var obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)||(typeof obj)===const_boolean){x=convert.toDouble(obj);stc.sumx+=x;stc.sumx2+=x*x;stc.n++}else if((typeof obj)===const_string){x=0.0;stc.sumx+=x;stc.sumx2+=x*x;stc.n++}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[i]))){return CalcErrorsValue}stc.sumx+=x;stc.sumx2+=x*x;stc.n++}}}function st_avedev(args){var x;var mean;var sumx=0.0;var sumdev=0.0;var n=0,i,j,obj;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;for(i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}if(arrayHelper.isArrayOrReference(args[i])){for(j=0;j<arrayHelper.getLength(args[i]);j++){obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)){x=convert.toDouble(obj);sumx+=x;n++}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[i]))){return CalcErrorsValue}sumx+=x;n++}}mean=sumx/n;for(i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}if(arrayHelper.isArrayOrReference(args[i])){for(j=0;j<arrayHelper.getLength(args[i]);j++){obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)){x=convert.toDouble(obj);sumdev+=Math_abs(x-mean)}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[i]))){return CalcErrorsValue}sumdev+=Math_abs(x-mean)}}if(n===0){return CalcErrorsDivideByZero}return convert.toResult(sumdev/n)}function st_stdeva(args){var data={sumx:0.0,sumx2:0.0,n:0.0};var flag=__dev2(args,data);var convert=Calc.Convert;if(convert.isError(flag)){return flag}if(data.n<=1.0){return CalcErrorsDivideByZero}return convert.toResult(Math_sqrt(Math_max(0.0,(data.n*data.sumx2-data.sumx*data.sumx)/(data.n*(data.n-1.0)))))}function st_stdevp(args){return __stdevpIncludeSubtotals(args,true)}function st_stdevpa(args){var data={sumx:0.0,sumx2:0.0,n:0.0};var flag=__dev2(args,data);var convert=Calc.Convert;if(convert.isError(flag)){return flag}if(data.n<=0.0){return CalcErrorsDivideByZero}return convert.toResult(Math_sqrt(Math_max(0.0,(data.n*data.sumx2-data.sumx*data.sumx)/(data.n*data.n))))}function st_varr(args){return __varrIncludeSubtotals(args,true)}function st_vara(args){var data={sumx:0.0,sumx2:0.0,n:0.0};var flag=__dev2(args,data);var convert=Calc.Convert;if(convert.isError(flag)){return flag}if(data.n<=1.0){return CalcErrorsDivideByZero}return convert.toResult(Math_max(0.0,(data.n*data.sumx2-data.sumx*data.sumx)/(data.n*(data.n-1.0))))}function st_varp(args){return __varpIncludeSubtotals(args,true)}function st_varpa(args){var data={sumx:0.0,sumx2:0.0,n:0.0};var flag=__dev2(args,data);var convert=Calc.Convert;if(convert.isError(flag)){return flag}if(data.n<=0.0){return CalcErrorsDivideByZero}return convert.toResult(Math_max(0.0,(data.n*data.sumx2-data.sumx*data.sumx)/(data.n*data.n)))}function st_covar(args){var x;var y;var meanx;var meany;var sumx=0.0;var sumy=0.0;var sumprod=0.0;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var n=arrayHelper.getLength(args[0]);if(n===0){return CalcErrorsDivideByZero}if(n!==arrayHelper.getLength(args[1])){return CalcErrorsNotAvailable}var count=0,i,obj1,obj2;if(arrayHelper.isArrayOrReference(args[0])){for(i=0;i<n;i++){obj1=arrayHelper.getValueByIndex(args[0],i);obj2=arrayHelper.getValueByIndex(args[1],i);if(convert.isNumber(obj1)&&convert.isNumber(obj2)){x=convert.toDouble(obj1);y=convert.toDouble(obj2);sumx+=x;sumy+=y;count++}else if(convert.isError(obj1)){Calc.Convert._inArray=false;return obj1}else if(convert.isError(obj2)){Calc.Convert._inArray=false;return obj2}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[0]))||isNaN(y=convert.toDouble(args[1]))){return CalcErrorsValue}sumx+=x;sumy+=y;count++}meanx=sumx/count;meany=sumy/count;if(arrayHelper.isArrayOrReference(args[0])){for(i=0;i<n;i++){obj1=arrayHelper.getValueByIndex(args[0],i);obj2=arrayHelper.getValueByIndex(args[1],i);if(convert.isNumber(obj1)&&convert.isNumber(obj2)){x=convert.toDouble(obj1);y=convert.toDouble(obj2);sumprod+=(x-meanx)*(y-meany)}else if(convert.isError(obj1)){Calc.Convert._inArray=false;return obj1}else if(convert.isError(obj2)){Calc.Convert._inArray=false;return obj2}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[0]))||isNaN(y=convert.toDouble(args[1]))){return CalcErrorsValue}sumprod+=(x-meanx)*(y-meany)}if(count<=1){return CalcErrorsDivideByZero}return convert.toResult(sumprod/count)}function st_devsp(args){var x;var mean;var sumx=0.0;var sumdevsq=0.0;var n=0,i,j,obj;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;for(i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}if(arrayHelper.isArrayOrReference(args[i])){for(j=0;j<arrayHelper.getLength(args[i]);j++){obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)){x=convert.toDouble(arrayHelper.getValueByIndex(args[i],j));sumx+=x;n++}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[i]))){return CalcErrorsValue}sumx+=x;n++}}mean=sumx/n;for(i=0;i<args.length;i++){if(arrayHelper.isArrayOrReference(args[i])){for(j=0;j<arrayHelper.getLength(args[i]);j++){obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)){x=convert.toDouble(arrayHelper.getValueByIndex(args[i],j));sumdevsq+=(x-mean)*(x-mean)}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[i]))){return CalcErrorsValue}sumdevsq+=(x-mean)*(x-mean)}}return convert.toResult(sumdevsq)}function st_normdist(args){var x;var mean;var stdev;var convert=Calc.Convert;if(isNaN(x=convert.toDouble(args[0]))||isNaN(mean=convert.toDouble(args[1]))||isNaN(stdev=convert.toDouble(args[2]))){return CalcErrorsValue}var cumulative;try
{cumulative=convert.toBool(args[3])}catch(e){return CalcErrorsValue}if(stdev<=0.0){return CalcErrorsNumber}if(cumulative){var list=[];list[0]=(x-mean)/stdev;return st_normsdist(list)}else
{return convert.toResult(Math_exp(-((x-mean)*(x-mean))/(2.0*stdev*stdev))/(Math_sqrt(2*Math_PI)*stdev))}}function st_norminv(args){var prob;var mean;var stdev;var convert=Calc.Convert;if(isNaN(prob=convert.toDouble(args[0]))||isNaN(mean=convert.toDouble(args[1]))||isNaN(stdev=convert.toDouble(args[2]))){return CalcErrorsValue}var q;var r;var val;if(prob<0.0||1.0<prob){return CalcErrorsNumber}if(stdev<=0.0){return CalcErrorsNumber}q=prob-0.5;if(Math_abs(q)<=0.42){r=q*q;val=q*(((-25.44106049637*r+41.39119773534)*r-18.61500062529)*r+2.50662823884)/((((3.13082909833*r-21.06224101826)*r+23.08336743743)*r+-8.47351093090)*r+1.0)}else
{r=prob;if(q>0.0){r=1.0-prob}if(r>2.2204460492503131e-016){r=Math_sqrt(-Math_log(r));val=(((2.32121276858*r+4.85014127135)*r-2.29796479134)*r-2.78718931138)/((1.63706781897*r+3.54388924762)*r+1.0);if(q<0.0){val=-val}}else if(r>1e-300){val=-2.0*Math_log(prob);r=Math_log(6.283185307179586476925286766552*val);r=r/val+(2.0-r)/(val*val)+(-14.0+6.0*r-r*r)/(2.0*val*val*val);val=Math_sqrt(val*(1-r));if(q<0.0){val=-val}return val}else
{if(q<0.0){return-1.79769e+308}else
{return 1.79769e+308}}}var x=(val-0.0)/1.0;var denom=0.398942280401432677939946059934*Math_exp(-0.5*x*x)/1.0;var o=st_normdist([val,0.0,1.0,true]);if(convert.isError(o)){return o}val=val-(o-prob)/denom;return mean+stdev*val}function st_normsinv(args){var prob;var convert=Calc.Convert;if(isNaN(prob=convert.toDouble(args[0]))){return CalcErrorsValue}if(prob<0.0||1.0<prob){return CalcErrorsNumber}return st_norminv([prob,0.0,1.0])}function st_confidence(args){var x;var stdev;var convert=Calc.Convert;if(isNaN(x=convert.toDouble(args[0]))||isNaN(stdev=convert.toDouble(args[1]))){return CalcErrorsValue}var size=convert.toInt(args[2]);if(x<=0.0||x>=1.0){return CalcErrorsNumber}if(stdev<=0.0){return CalcErrorsNumber}if(size<1){return CalcErrorsNumber}var list=[];list[0]=x/2.0;var o=st_normsinv(list);if(convert.isError(o)){return o}o=convert.toDouble(o);return-o*(stdev/Math_sqrt(size))}function __lanczos(p){var x,tmp,ser;x=p;tmp=x+5.5;tmp=tmp-(x+0.5)*Math_log(tmp);ser=1.000000000190015+76.18009172947146/(p+1.0);ser-=86.50532032941678/(p+2.0);ser+=24.01409824083091/(p+3.0);ser-=1.231739572450155/(p+4.0);ser+=0.001208650973866179/(p+5.0);ser-=5.395239384953E-06/(p+6.0);var pt1=Math_log(2.506628274631001*ser/x);return pt1-tmp}function __betacf(a,b,x){var m,m2;var retval,aa,c,d,del,qab,qam,qap;var ITMAX=300;var FPMIN=1.0E-50;var EPSILON=1.0E-20;qab=a+b;qap=a+1.0;qam=a-1.0;c=1.0;d=1.0-qab*x/qap;if(Math_abs(d)<FPMIN){d=FPMIN}d=1.0/d;retval=d;for(m=1;m<=ITMAX;m++){m2=m+m;aa=(b-m)*m*x/((qam+m2)*(a+m2));d=1.0+aa*d;if(Math_abs(d)<FPMIN){d=FPMIN}c=1.0+aa/c;if(Math_abs(c)<FPMIN){c=FPMIN}d=1.0/d;retval*=d*c;aa=0.0-(a+m)*(qab+m)*x/((a+m2)*(qap+m2));d=1.0+aa*d;if(Math_abs(d)<FPMIN){d=FPMIN}c=1.0+aa/c;if(Math_abs(c)<FPMIN){c=FPMIN}d=1.0/d;del=d*c;retval*=del;if(Math_abs(del-1.0)<EPSILON){break}}return(retval)}function st_betadist(args){var convert=Calc.Convert,helper=Calc._Helper;for(var i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}}var prob,alpha,beta;if(isNaN(prob=convert.toDouble(args[0]))||isNaN(alpha=convert.toDouble(args[1]))||isNaN(beta=convert.toDouble(args[2]))){return CalcErrorsValue}var a=0.0;if(helper._argumentExists(args,3)){if(isNaN(a=convert.toDouble(args[3]))){return CalcErrorsValue}}var b=1.0;if(helper._argumentExists(args,4)){if(isNaN(b=convert.toDouble(args[4]))){return CalcErrorsValue}}var retval;var bt;if(alpha<=0.0||beta<=0.0){return CalcErrorsNumber}if(prob<a||b<prob||a===b){return CalcErrorsNumber}var x=(prob-a)/(b-a);var badBetacf=false;var pt1=__lanczos(alpha+beta);var pt2=__lanczos(alpha);var pt3=__lanczos(beta);var pt4=Math_log(x);var pt5=Math_log(1.0-x);bt=Math_exp(pt1-pt2-pt3+alpha*pt4+beta*pt5);if(x<(alpha+1.0)/(alpha+beta+2.0)){retval=bt*__betacf(beta,alpha,1.0-x)/beta}else
{retval=1.0-bt*__betacf(beta,alpha,1.0-x)/beta}if(badBetacf){retval=-1.0}return convert.toResult(retval)}function __d1mach(i){var list=[];list[0]=2.0;switch(i){case 1:return 2.2250738585072014e-308;case 2:return 1.7976931348623158e+308;case 3:return Math_pow(2.0,-53.0);case 4:return Math_pow(2.0,1.0-53.0);case 5:return Functions.Functions._MathHelper.log10(list);default:return 0.0}}function __chebyshev_init(dos,nos,eta){var i,ii;var err;if(nos<1){return 0}err=0.0;i=0;var convert=Calc.Convert;for(ii=1;ii<=nos;ii++){i=nos-ii;err+=Math_abs(convert.toDouble(dos[i]));if(err>eta){return i}}return i}function __chebyshev_eval(x,a,n){var b0,b1,b2,twox,i;if(n<1||n>1000){return 0.0/0.0}if(x<-1.1||x>1.1){return 0.0/0.0}twox=x*2;b2=b1=0;b0=0;var convert=Calc.Convert;for(i=1;i<=n;i++){b2=b1;b1=b0;b0=twox*b1-b2+convert.toDouble(a[n-i])}return(b0-b2)*0.5}function __lgammacor(x){var algmcs=[];algmcs[0]=(+0.1666389480451863247205729650822e+0);algmcs[1]=(-0.1384948176067563840732986059135e-4);algmcs[2]=(+0.9810825646924729426157171547487e-8);algmcs[3]=(-0.1809129475572494194263306266719e-10);algmcs[4]=(+0.6221098041892605227126015543416e-13);algmcs[5]=(-0.3399615005417721944303330599666e-15);algmcs[6]=(+0.2683181998482698748957538846666e-17);algmcs[7]=(-0.2868042435334643284144622399999e-19);algmcs[8]=(+0.3962837061046434803679306666666e-21);algmcs[9]=(-0.6831888753985766870111999999999e-23);algmcs[10]=(+0.1429227355942498147573333333333e-24);algmcs[11]=(-0.3547598158101070547199999999999e-26);algmcs[12]=(+0.1025680058010470912000000000000e-27);algmcs[13]=(-0.3401102254316748799999999999999e-29);algmcs[14]=(+0.1276642195630062933333333333333e-30);var nalgm=0,xbig=0.0,xmax=0.0,tmp;if(nalgm===0){nalgm=__chebyshev_init(algmcs,15,__d1mach(3));xbig=1.0/Math_sqrt(__d1mach(3));xmax=Math_exp(Math_min(Math_log(__d1mach(2)/12.0),-Math_log(12.0*__d1mach(1))))}if(x<10.0){return 0.0/0.0}else if(x>=xmax){return 2.2204460492503131e-016*2.2204460492503131e-016}else if(x<xbig){tmp=10.0/x;return __chebyshev_eval(tmp*tmp*2.0-1.0,algmcs,nalgm)/x}else
{return 1.0/(x*12.0)}}function __logrelerr(x){var alnrcs=[];alnrcs[0]=(+0.10378693562743769800686267719098e+1);alnrcs[1]=(-0.13364301504908918098766041553133e+0);alnrcs[2]=(+0.19408249135520563357926199374750e-1);alnrcs[3]=(-0.30107551127535777690376537776592e-2);alnrcs[4]=(+0.48694614797154850090456366509137e-3);alnrcs[5]=(-0.81054881893175356066809943008622e-4);alnrcs[6]=(+0.13778847799559524782938251496059e-4);alnrcs[7]=(-0.23802210894358970251369992914935e-5);alnrcs[8]=(+0.41640416213865183476391859901989e-6);alnrcs[9]=(-0.73595828378075994984266837031998e-7);alnrcs[10]=(+0.13117611876241674949152294345011e-7);alnrcs[11]=(-0.23546709317742425136696092330175e-8);alnrcs[12]=(+0.42522773276034997775638052962567e-9);alnrcs[13]=(-0.77190894134840796826108107493300e-10);alnrcs[14]=(+0.14075746481359069909215356472191e-10);alnrcs[15]=(-0.25769072058024680627537078627584e-11);alnrcs[16]=(+0.47342406666294421849154395005938e-12);alnrcs[17]=(-0.87249012674742641745301263292675e-13);alnrcs[18]=(+0.16124614902740551465739833119115e-13);alnrcs[19]=(-0.29875652015665773006710792416815e-14);alnrcs[20]=(+0.55480701209082887983041321697279e-15);alnrcs[21]=(-0.10324619158271569595141333961932e-15);alnrcs[22]=(+0.19250239203049851177878503244868e-16);alnrcs[23]=(-0.35955073465265150011189707844266e-17);alnrcs[24]=(+0.67264542537876857892194574226773e-18);alnrcs[25]=(-0.12602624168735219252082425637546e-18);alnrcs[26]=(+0.23644884408606210044916158955519e-19);alnrcs[27]=(-0.44419377050807936898878389179733e-20);alnrcs[28]=(+0.83546594464034259016241293994666e-21);alnrcs[29]=(-0.15731559416479562574899253521066e-21);alnrcs[30]=(+0.29653128740247422686154369706666e-22);alnrcs[31]=(-0.55949583481815947292156013226666e-23);alnrcs[32]=(+0.10566354268835681048187284138666e-23);alnrcs[33]=(-0.19972483680670204548314999466666e-24);alnrcs[34]=(+0.37782977818839361421049855999999e-25);alnrcs[35]=(-0.71531586889081740345038165333333e-26);alnrcs[36]=(+0.13552488463674213646502024533333e-26);alnrcs[37]=(-0.25694673048487567430079829333333e-27);alnrcs[38]=(+0.48747756066216949076459519999999e-28);alnrcs[39]=(-0.92542112530849715321132373333333e-29);alnrcs[40]=(+0.17578597841760239233269760000000e-29);alnrcs[41]=(-0.33410026677731010351377066666666e-30);alnrcs[42]=(+0.63533936180236187354180266666666e-31);var nlnrel=0,xmin=0.0;if(nlnrel===0){nlnrel=__chebyshev_init(alnrcs,43,0.1*__d1mach(3));xmin=-1.0+Math_sqrt(__d1mach(4))}if(x<=-1){return 0.0/0.0}if(Math_abs(x)<=0.375){return x*(1.0-x*__chebyshev_eval(x/0.375,alnrcs,nlnrel))}else
{return Math_log(x+1.0)}}function __gamma(x){var i,k,m,ga,gr,z,r=1.0;var g=[1.0,0.5772156649015329,-0.6558780715202538,-0.420026350340952e-1,0.1665386113822915,-0.421977345555443e-1,-0.9621971527877e-2,0.7218943246663e-2,-0.11651675918591e-2,-0.2152416741149e-3,0.1280502823882e-3,-0.201348547807e-4,-0.12504934821e-5,0.1133027232e-5,-0.2056338417e-6,0.6116095e-8,0.50020075e-8,-0.11812746e-8,0.1043427e-9,0.77823e-11,-0.36968e-11,0.51e-12,-0.206e-13,-0.54e-14,0.14e-14];if(x>171.0){return 1e308}var convert=Calc.Convert;if(x===convert.toInt(x)){if(x>0.0){ga=1.0;for(i=2;i<x;i++){ga*=i}}else
{ga=1e308}}else
{if(Math_abs(x)>1.0){z=Math_abs(x);m=convert.toInt(z);r=1.0;for(k=1;k<=m;k++){r*=(z-k)}z-=m}else
{z=x}gr=g[24];for(k=23;k>=0;k--){gr=gr*z+g[k]}ga=1.0/(gr*z);if(Math_abs(x)>1.0){ga*=r;if(x<0.0){ga=-Math_PI/(x*ga*Math_sin(Math_PI*x))}}}return ga}function __lgamma(x){var x0,x2,xp,gl,gl0,k,n=0;var a=[8.333333333333333e-02,-2.777777777777778e-03,7.936507936507937e-04,-5.952380952380952e-04,8.417508417508418e-04,-1.917526917526918e-03,6.410256410256410e-03,-2.955065359477124e-02,1.796443723688307e-01,-1.39243221690590];x0=x;var convert=Calc.Convert;if(x<=0.0){return 1e308}else if((x===1.0)||(x===2.0)){return 0.0}else if(x<=7.0){n=convert.toInt(7-x);x0=x+n}x2=1.0/(x0*x0);xp=2.0*Math_PI;gl0=a[9];for(k=8;k>=0;k--){gl0=gl0*x2+a[k]}gl=gl0/x0+0.5*Math_log(xp)+(x0-0.5)*Math_log(x0)-x0;if(x<=7.0){for(k=1;k<=n;k++){gl-=Math_log(x0-1.0);x0-=1.0}}return gl}function st_gammaln(args){var x;var convert=Calc.Convert;if(isNaN(x=convert.toDouble(args[0]))){return CalcErrorsValue}if(x<=0.0){return CalcErrorsNumber}return __lgamma(x)}function __lbeta(a,b){var corr,p,q;p=q=a;if(b<p){p=b}if(b>q){q=b}if(p<0){return 0.0/0.0}else if(p===0){return 1.79769e+308}if(p>=10.0){corr=__lgammacor(p)+__lgammacor(q)-__lgammacor(p+q);return Math_log(q)*-0.5+0.918938533204672741780329736406+corr+(p-0.5)*Math_log(p/(p+q))+q*__logrelerr(-p/(p+q))}else if(q>=10){corr=__lgammacor(q)-__lgammacor(p+q);var list=[];list[0]=p;var val=st_gammaln(list);var convert=Calc.Convert;if(convert.isError(val)){return 0.0/0.0}return convert.toDouble(val)+corr+p-p*Math_log(p+q)+(q-0.5)*__logrelerr(-p/(p+q))}else
{var a1=__gamma(p);var a2=__gamma(q);var a3=__gamma(p+q);return Math_log(a1*(a2/a3))}}function __pbeta_raw(x,pin,qin){var ans,c,finsum,p,ps,p1,q,term,xb,xi,y;var n,i,ib;var eps=0.0;var alneps=0.0;var sml=0.0;var alnsml=0.0;if(eps===0.0){eps=__d1mach(3);alneps=Math_log(eps);sml=__d1mach(1);alnsml=Math_log(sml)}y=x;p=pin;q=qin;if(p/(p+q)<x){y=1.0-y;p=qin;q=pin}if((p+q)*y/(p+1.0)<eps){ans=0.0;xb=p*Math_log(Math_max(y,sml))-Math_log(p)-__lbeta(p,q);if(xb>alnsml&&y!==0.0){ans=Math_exp(xb)}if(y!==x||p!==pin){ans=1.0-ans}}else
{ps=q-Math_floor(q);if(ps===0.0){ps=1.0}xb=p*Math_log(y)-__lbeta(ps,p)-Math_log(p);ans=0.0;var convert=Calc.Convert;if(xb>=alnsml){ans=Math_exp(xb);term=ans*p;if(ps!==1.0){n=convert.toInt(Math_max(alneps/Math_log(y),4.0));for(i=1;i<=n;i++){xi=i;term=term*(xi-ps)*y/xi;ans=ans+term/(p+xi)}}}if(q>1.0){xb=p*Math_log(y)+q*Math_log(1.0-y)-__lbeta(p,q)-Math_log(q);ib=convert.toInt(Math_max(xb/alnsml,0.0));term=Math_exp(xb-ib*alnsml);c=1.0/(1.0-y);p1=q*c/(p+q-1.0);finsum=0;n=convert.toInt(q);if(q===n){n=n-1}for(i=1;i<=n;i++){if(p1<=1&&term/eps<=finsum){break}xi=i;term=(q-xi+1.0)*c*term/(p+q-xi);if(term>1.0){ib=ib-1;term=term*sml}if(ib===0){finsum=finsum+term}}ans=ans+finsum}if(y!==x||p!==pin){ans=1.0-ans}ans=Math_max(Math_min(ans,1.0),0.0)}return ans}function __pbeta(x,pin,qin){if(pin<=0||qin<=0){return 0.0/0.0}if(x<=0){return 0}if(x>=1){return 1}return __pbeta_raw(x,pin,qin)}function st_betainv(args){var convert=Calc.Convert,helper=Calc._Helper;for(var i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}}var prob,alpha,beta;if(isNaN(prob=convert.toDouble(args[0]))||isNaN(alpha=convert.toDouble(args[1]))||isNaN(beta=convert.toDouble(args[2]))){return CalcErrorsValue}var aa=0.0;if(helper._argumentExists(args,3)){if(isNaN(aa=convert.toDouble(args[3]))){return CalcErrorsValue}}var bb=1.0;if(helper._argumentExists(args,4)){if(isNaN(bb=convert.toDouble(args[4]))){return CalcErrorsValue}}if(prob<=0.0||1.0<=prob){return CalcErrorsNumber}if(alpha<=0.0||beta<=0.0){return CalcErrorsNumber}var const1=2.30753,const2=0.27061,const3=0.99229,const4=0.04481,zero=0.0,fpu=3.0e-308,acu_min=1.0e-300,lower=fpu;var upper=1.0-2.22e-16,five=5.0,six=6.0,two=2.0;var swap_tail,i_pb,i_inn,a,adj,logbeta,g,h,pp,prev,qq,r,s,t,tx,w,y,yprev,acu,xinbta;xinbta=prob;if(alpha<zero||beta<zero||prob<zero||prob>1.0){return 0.0/0.0}if(prob===zero||prob===1.0){return prob}logbeta=__lbeta(alpha,beta);if(prob<=0.5){a=prob;pp=alpha;qq=beta;swap_tail=0}else
{a=1.0-prob;pp=beta;qq=alpha;swap_tail=1}r=Math_sqrt(-Math_log(a*a));y=r-(const1+const2*r)/(1.0+(const3+const4*r)*r);if(pp>1.0&&qq>1.0){r=(y*y-3.0)/6.0;s=1.0/(pp+pp-1.0);t=1.0/(qq+qq-1.0);h=2.0/(s+t);w=y*Math_sqrt(h+r)/h-(t-s)*(r+five/six-two/(3.0*h));xinbta=pp/(pp+qq*Math_exp(w+w))}else
{r=qq+qq;t=1.0/(9.0*qq);t=r*Math_pow(1.0-t+y*Math_sqrt(t),3.0);if(t<=zero){xinbta=1.0-Math_exp((Math_log((1.0-a)*qq)+logbeta)/qq)}else
{t=(4.0*pp+r-two)/t;if(t<=1.0){xinbta=Math_exp((Math_log(a*pp)+logbeta)/pp)}else
{xinbta=1.0-two/(t+1.0)}}}r=1.0-pp;t=1.0-qq;yprev=zero;adj=1.0;if(xinbta<lower){xinbta=lower}else if(xinbta>upper){xinbta=upper}acu=Math_max(acu_min,Math_pow(10.0,-13.0-2.5/(pp*pp)-0.5/(a*a)));tx=prev=zero;for(i_pb=0;i_pb<1000;i_pb++){y=__pbeta_raw(xinbta,pp,qq);y=(y-a)*Math_exp(logbeta+r*Math_log(xinbta)+t*Math_log(1.0-xinbta));if(y*yprev<=zero){prev=Math_max(Math_abs(adj),fpu)}g=1.0;for(i_inn=0;i_inn<1000;i_inn++){adj=g*y;if(Math_abs(adj)<prev){tx=xinbta-adj;if(tx>=zero&&tx<=1.0){if(prev<=acu){if(swap_tail!==0){xinbta=1.0-xinbta}return convert.toResult((bb-aa)*xinbta+aa)}if(Math_abs(y)<=acu){if(swap_tail!==0){xinbta=1.0-xinbta}return convert.toResult((bb-aa)*xinbta+aa)}if(tx!==zero&&tx!==1.0){break}}}g/=3.0}var xtrunc=tx;if(xtrunc===xinbta){if(swap_tail!==0){xinbta=1.0-xinbta}return convert.toResult((bb-aa)*xinbta+aa)}xinbta=tx;yprev=y}if(swap_tail!==0){xinbta=1.0-xinbta}return convert.toResult((bb-aa)*xinbta+aa)}function st_binomdist(args){var x,n;var convert=Calc.Convert;if(isNaN(x=convert.toInt(args[0]))||isNaN(n=convert.toInt(args[1]))){return CalcErrorsValue}var p;if(isNaN(p=convert.toDouble(args[2]))){return CalcErrorsValue}var cum;try
{cum=convert.toBool(args[3])}catch(e){return CalcErrorsValue}if(x<0||n<0||n<x||p<0.0||1.0<p){return CalcErrorsNumber}var q,factor,i;if(!cum){q=1.0-p;factor=Math_pow(q,n);if(factor===0.0){factor=Math_pow(p,n);if(factor===0.0){return CalcErrorsNumber}else
{for(i=0;i<n-x&&factor>0.0;i++){factor*=convert.toDouble(n-i)/convert.toDouble((i+1)*q/p)}return factor}}else
{for(i=0;i<x&&factor>0.0;i++){factor*=convert.toDouble(n-i)/convert.toDouble((i+1)*p/q)}return factor}}else
{if(n===x){return 1.0}else
{q=1.0-p;factor=Math_pow(q,n);var sum;if(factor===0.0){factor=Math_pow(p,n);if(factor===0.0){return CalcErrorsNumber}else
{sum=1.0-factor;for(i=0;i<n-x&&factor>0.0;i++){factor*=convert.toDouble(n-i)/convert.toDouble((i+1)*q/p);sum-=factor}if(sum<0.0){return 0.0}else
{return sum}}}else
{sum=factor;for(i=0;i<x&&factor>0.0;i++){factor*=convert.toDouble(n-i)/convert.toDouble((i+1)*p/q);sum+=factor}return sum}}}}function st_negbinomdist(args){var x,r;var convert=Calc.Convert;if(isNaN(x=convert.toInt(args[0]))||isNaN(r=convert.toInt(args[1]))){return CalcErrorsValue}var p;if(isNaN(p=convert.toDouble(args[2]))){return CalcErrorsValue}if(p<0.0||p>=1.0){return CalcErrorsNumber}if(x+r-1<=0){return CalcErrorsNumber}var o=Functions.Functions._MathHelper.combin(x+r-1,r-1);if(convert.isError(o)){return o}var pt1=convert.toDouble(o);var pt2=Math_pow(p,r);var pt3=Math_pow(1.0-p,x);return convert.toResult(pt1*pt2*pt3)}function st_critbinom(args){var n;var convert=Calc.Convert;if(isNaN(n=convert.toInt(args[0]))){return CalcErrorsValue}var p,alpha;if(isNaN(p=convert.toDouble(args[1]))||isNaN(alpha=convert.toDouble(args[2]))){return CalcErrorsValue}if(n<0||p<0.0||1.0<p||alpha<=0.0||1.0<=alpha){return CalcErrorsNumber}else
{var q=1.0-p;var factor=Math_pow(q,n);var sum,i;if(factor===0.0){factor=Math_pow(p,n);if(factor===0.0){return CalcErrorsNumber}else
{sum=1.0-factor;for(i=0;i<n&&sum>=alpha;i++){factor*=convert.toDouble(n-i)/convert.toDouble((i+1)*q/p);sum-=factor}return convert.toDouble(n-i)}}else
{sum=factor;for(i=0;i<n&&sum<alpha;i++){factor*=convert.toDouble(n-i)/convert.toDouble((i+1)*p/q);sum+=factor}return convert.toDouble(i)}}}function st_chidist(args){var convert=Calc.Convert;for(var i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}}var x,df;if(isNaN(x=convert.toDouble(args[0]))||isNaN(df=convert.toDouble(args[1]))){return CalcErrorsValue}if(x<0.0){return CalcErrorsNumber}if(df<1.0||df>Math_pow(10.0,10.0)){return CalcErrorsNumber}var LOG_SQRT_PI=Math_log(Math_sqrt(Math_PI));var I_SQRT_PI=1.0/Math_sqrt(Math_PI);var e,s,z,c,a,y=0.0,x1=x;a=0.5*x1;var even=(df%2===0);if(df>1.0){y=Math_exp(-a)}var list=[];list[0]=-Math_sqrt(x1);var o=st_normsdist(list);if(convert.isError(o)){return o}var zz=convert.toDouble(o);s=(even?y:(2.0*zz));if(df>2){x1=0.5*(df-1.0);z=(even?1.0:0.5);if(a>20.0){e=(even?0.0:LOG_SQRT_PI);c=Math_log(a);while(z<=x1){e=Math_log(z)+e;s+=Math_exp(c*z-a-e);z+=1.0}return s}else
{e=(even?1.0:(I_SQRT_PI/Math_sqrt(a)));c=0.0;while(z<=x1){e=e*(a/z);c=c+e;z+=1.0}return c*y+s}}else
{return s}}function st_gammadist(args){var x,alpha,beta;var convert=Calc.Convert;if(isNaN(x=convert.toDouble(args[0]))||isNaN(alpha=convert.toDouble(args[1]))||isNaN(beta=convert.toDouble(args[2]))){return CalcErrorsValue}var cum;try
{cum=convert.toBool(args[3])}catch(e){return CalcErrorsValue}if(x<0.0||alpha<=0.0||beta<=0.0){return CalcErrorsNumber}if(cum===false){var pt1=Math_pow(beta,alpha);if(isNaN(pt1)||!isFinite(pt1)){return CalcErrorsDivideByZero}var pt2=1.0/(pt1*__gamma(alpha));var pt3=Math_pow(x,alpha-1.0);var pt4=Math_exp(-(x/beta));var pt5=pt3*pt4;return pt2*pt5}else
{var pn1,pn2,pn3,pn4,pn5,pn6,arg,c,rn,a,b,an;var sum,o;var third=1.0/3.0;var xbig=1.0e+8;var oflo=1.0e+37;var plimit=1000.0e0;var elimit=-88.0e0;x=x/beta;if(x<=0.0){return CalcErrorsNumber}if(alpha>plimit){pn1=Math_sqrt(alpha)*3.0*(Math_pow((x/alpha),third)+1.0/(alpha*9.0)-1.0);o=st_normdist([pn1,0.0,1.0,true]);if(convert.isError(o)){return o}return convert.toDouble(o)}if(x>xbig){return 1.0}if(x<=1.0||x<alpha){var list=[];list[0]=alpha+1.0;o=st_gammaln(list);if(convert.isError(o)){return o}arg=alpha*Math_log(x)-x-convert.toDouble(o);c=1.0;sum=1.0;a=alpha;do
{a=a+1.0;c=c*x/a;sum=sum+c}while(c>2.2204460492503131e-016);arg=arg+Math_log(sum);sum=0.0;if(arg>=elimit){sum=Math_exp(arg)}}else
{var list1=[];list1[0]=alpha;o=st_gammaln(list1);if(convert.isError(o)){return o}arg=alpha*Math_log(x)-x-convert.toDouble(o);a=1.0-alpha;b=a+x+1.0;c=0.0;pn1=1.0;pn2=x;pn3=x+1.0;pn4=x*b;sum=pn3/pn4;for(;;){a=a+1.0;b=b+2.0;c=c+1.0;an=a*c;pn5=b*pn3-an*pn1;pn6=b*pn4-an*pn2;if(Math_abs(pn6)>0.0){rn=pn5/pn6;if(Math_abs(sum-rn)<=Math_min(2.2204460492503131e-016,2.2204460492503131e-016*rn)){break}sum=rn}pn1=pn3;pn2=pn4;pn3=pn5;pn4=pn6;if(Math_abs(pn5)>=oflo){pn1=pn1/oflo;pn2=pn2/oflo;pn3=pn3/oflo;pn4=pn4/oflo}}arg=arg+Math_log(sum);sum=1.0;if(arg>=elimit){sum=1.0-Math_exp(arg)}}return sum}}function st_gammainv(args){var prob,alpha,beta;var convert=Calc.Convert;if(isNaN(prob=convert.toDouble(args[0]))||isNaN(alpha=convert.toDouble(args[1]))||isNaN(beta=convert.toDouble(args[2]))){return CalcErrorsValue}var C7=4.67,C8=6.66,C9=6.73,C10=13.32,C11=60.0,C12=70.0,C13=84.0,C14=105.0;var C15=120.0,C16=127.0,C17=140.0,C18=1175.0,C19=210.0,C20=252.0,C21=2264.0;var C22=294.0,C23=346.0,C24=420.0,C25=462.0,C26=606.0,C27=672.0,C28=707.0;var C29=735.0,C30=889.0,C31=932.0,C32=966.0,C33=1141.0,C34=1182.0,C35=1278.0;var C36=1740.0,C37=2520.0,C38=5040.0,EPS0=5.0e-7,EPS1=1.0e-2,EPS2=5.0e-7;var MAXIT=20.0,pMIN=0.000002,pMAX=0.999998;var a,b,c,ch,g,p1,v;var p2,q,s1,s2,s3,s4,s5,s6,t,x;var i;if(prob<0.0||1.0<prob||alpha<=0.0||beta<=0.0){return CalcErrorsNumber}if(prob<pMIN){return 0.0}if(prob>pMAX){return 1.79769e+308}v=2.0*alpha;c=alpha-1.0;var list=[];list[0]=alpha;var o=st_gammaln(list);if(convert.isError(o)){return o}g=convert.toDouble(o);if(v<(-1.24)*Math_log(prob)){ch=Math_pow(prob*alpha*Math_exp(g+alpha*0.69314718055994530942),1.0/alpha);if(ch<EPS0){return 0.0/0.0}}else if(v>0.32){o=st_norminv([prob,0.0,1.0]);if(convert.isError(o)){return o}x=convert.toDouble(o);p1=0.222222/v;ch=v*Math_pow(x*Math_sqrt(p1)+1.0-p1,3.0);if(ch>2.2*v+6){ch=-2.0*(Math_log(1.0-prob)-c*Math_log(0.5*ch)+g)}}else
{ch=0.4;a=Math_log(1.0-prob)+g+c*0.69314718055994530942;do
{q=ch;p1=1.0+ch*(C7+ch);p2=ch*(C9+ch*(C8+ch));t=-0.5+(C7+2*ch)/p1-(C9+ch*(C10+3.0*ch))/p2;ch-=(1.0-Math_exp(a+0.5*ch)*p2/p1)/t}while(Math_abs(q/ch-1.0)>EPS1)}for(i=1;i<=MAXIT;i++){q=ch;p1=0.5*ch;o=st_gammadist([p1,alpha,1.0,true]);if(convert.isError(o)){return o}p2=prob-convert.toDouble(o);t=p2*Math_exp(alpha*0.69314718055994530942+g+p1-c*Math_log(ch));b=t/ch;a=0.5*t-b*c;s1=(C19+a*(C17+a*(C14+a*(C13+a*(C12+C11*a)))))/C24;s2=(C24+a*(C29+a*(C32+a*(C33+C35*a))))/C37;s3=(C19+a*(C25+a*(C28+C31*a)))/C37;s4=(C20+a*(C27+C34*a)+c*(C22+a*(C30+C36*a)))/C38;s5=(C13+C21*a+c*(C18+C26*a))/C37;s6=(C15+c*(C23+C16*c))/C38;ch=ch+t*(1+0.5*t*s1-b*c*(s1-b*(s2-b*(s3-b*(s4-b*(s5-b*s6))))));if(Math_abs(q/ch-1)>EPS2){return 0.5*beta*ch}}return 0.5*beta*ch}function st_chiinv(args){var convert=Calc.Convert;for(var i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}}var x;if(isNaN(x=convert.toDouble(args[0]))){return CalcErrorsValue}var df;if(isNaN(df=convert.toInt(args[1]))){return CalcErrorsValue}if(x<0.0||x>1.0){return CalcErrorsNumber}if(df<1.0||df>Math_pow(10.0,10.0)){return CalcErrorsNumber}var p=1.0-x;var o=st_gammainv([p,0.5*df,2.0]);return convert.toDouble(o)}function st_chitest(args){var sum=0.0;var df;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var r=arrayHelper.getRowCount(args[0]);var c=arrayHelper.getColumnCount(args[0]);if(r!==arrayHelper.getRowCount(args[1])||c!==arrayHelper.getColumnCount(args[1])){return CalcErrorsNotAvailable}if(r>1&&c>1){df=(r-1)*(c-1)}else if(r>1&&c===1){df=r-1}else if(r===1&&c>1){df=c-1}else
{return CalcErrorsNotAvailable}for(var i=0;i<r;i++){for(var j=0;j<c;j++){var item0=arrayHelper.getValue(args[0],i,j);if(convert.isError(item0)){return item0}var item1=arrayHelper.getValue(args[1],i,j);if(convert.isError(item1)){return item1}var a,e;if(isNaN(a=convert.toDouble(item0))||isNaN(e=convert.toDouble(item1))){return CalcErrorsValue}if(e===0){return CalcErrorsDivideByZero}sum+=((a-e)*(a-e))/e}}return st_chidist([sum,df])}function st_correl(args){var sumx=0.0,sumy=0.0,sumx2=0.0,sumy2=0.0,sumprod=0.0,meanx,meany,stdevx,stdevy;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var n=arrayHelper.getLength(args[0]);if(n!==arrayHelper.getLength(args[1])){return CalcErrorsNotAvailable}var count=0,i,x,y,objx,objy;for(i=0;i<n;i++){objx=arrayHelper.getValueByIndex(args[0],i);objy=arrayHelper.getValueByIndex(args[1],i);if(convert.isNumber(objx)&&convert.isNumber(objy)){x=convert.toDouble(objx);y=convert.toDouble(objy);sumx+=x;sumy+=y;sumx2+=x*x;sumy2+=y*y;count++}else if(convert.isError(objx)){return objx}else if(convert.isError(objy)){return objy}}if(count<=1){return CalcErrorsDivideByZero}meanx=sumx/count;meany=sumy/count;stdevx=Math_sqrt((count*sumx2-sumx*sumx)/(count*(count-1)));stdevy=Math_sqrt((count*sumy2-sumy*sumy)/(count*(count-1)));if(stdevx===0.0||stdevy===0.0){return CalcErrorsDivideByZero}for(i=0;i<n;i++){objx=arrayHelper.getValueByIndex(args[0],i);objy=arrayHelper.getValueByIndex(args[1],i);if(convert.isNumber(objx)&&convert.isNumber(objy)){x=convert.toDouble(objx);y=convert.toDouble(objy);sumprod+=(x-meanx)*(y-meany)}}return convert.toResult(sumprod/convert.toDouble((count-1)*stdevx*stdevy))}function st_expondist(args){var convert=Calc.Convert;for(var i=0;i<args.length;i++){if(convert.isError(args[i])){return args[i]}}var x,lambda;if(isNaN(x=convert.toDouble(args[0]))||isNaN(lambda=convert.toDouble(args[1]))){return CalcErrorsValue}var cum;if(isNaN(cum=convert.toDouble(args[2]))){return CalcErrorsValue}if(x<0.0){return CalcErrorsNumber}if(lambda<=0.0){return CalcErrorsNumber}var exp=Math_exp(-lambda*x);return convert.toResult(cum?1.0-exp:lambda*exp)}function st_fdist(args){var x,df1,df2;var convert=Calc.Convert;if(isNaN(x=convert.toDouble(args[0]))||isNaN(df1=convert.toDouble(args[1]))||isNaN(df2=convert.toDouble(args[2]))){return CalcErrorsValue}if(x<0.0||df1<1.0||df1>=Math_pow(10.0,10.0)||df2<1.0||df2>=Math_pow(10.0,10.0)){return CalcErrorsNumber}var a1=df1*x/(df1*x+df2);var a2=0.5*df1;var a3=0.5*df2;var o=st_betadist([a1,a2,a3]);if(convert.isError(o)){return o}return 1.0-convert.toDouble(o)}function st_finv(args){var f,df1,df2;var convert=Calc.Convert;if(isNaN(f=convert.toDouble(args[0]))||isNaN(df1=convert.toDouble(args[1]))||isNaN(df2=convert.toDouble(args[2]))){return CalcErrorsValue}if(f<0.0||1.0<f||df1<1.0||df1>=Math_pow(10.0,10.0)||df2<1.0||df2>=Math_pow(10.0,10.0)){return CalcErrorsNumber}var x=1.0-f;var o=st_betainv([1.0-x,df2/2.0,df1/2.0]);if(convert.isError(o)){return o}return(1.0/convert.toDouble(o)-1.0)*(df2/df1)}function st_fisher(args){var x;var convert=Calc.Convert;if(isNaN(x=convert.toDouble(args[0]))){return CalcErrorsValue}if(x<=-1.0||1.0<=x){return CalcErrorsNumber}return Math_log((1.0+x)/(1.0-x))/2.0}function st_fisherinv(args){var y;var convert=Calc.Convert;if(isNaN(y=convert.toDouble(args[0]))){return CalcErrorsValue}var pt1=Math_exp(2.0*y)-1.0;var pt2=Math_exp(2.0*y)+1.0;if(!isFinite(pt1)&&pt1>0&&!isFinite(pt2)&&pt2>0){return 1.0}return pt1/pt2}function __stat(closure,array){var x,dx,dm;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var y=arrayHelper.getLength(array);for(var i=0;i<arrayHelper.getLength(array);i++){var obj=arrayHelper.getValueByIndex(array,i);if(convert.isNumber(obj)){x=convert.toDouble(arrayHelper.getValueByIndex(array,i));dx=x-closure.M;dm=dx/(closure.N+1);closure.M+=dm;closure.Q+=closure.N*dx*dm;closure.N++;closure.sum+=x}}}function st_ftest(args){var array1=args[0];var array2=args[1];var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var i,item;for(i=0;i<arrayHelper.getLength(array1);i++){item=arrayHelper.getValueByIndex(array1,i);if(convert.isError(item)){return item}}for(i=0;i<arrayHelper.getLength(array2);i++){item=arrayHelper.getValueByIndex(array2,i);if(convert.isError(item)){return item}}var cl={N:0,M:0.0,Q:0.0,afun_flag:false,sum:0.0};var var1,var2,p,dof1,dof2;__stat(cl,array1);dof1=cl.N-1;if(cl.N===1.0){return CalcErrorsDivideByZero}var1=cl.Q/(cl.N-1.0);if(var1===0.0){return CalcErrorsDivideByZero}cl.N=0;cl.M=0.0;cl.Q=0.0;cl.afun_flag=false;cl.sum=0.0;__stat(cl,array2);dof2=cl.N-1;if(cl.N===1.0){return CalcErrorsDivideByZero}var2=cl.Q/(cl.N-1.0);if(var2===0.0){return CalcErrorsDivideByZero}var o=st_fdist([var1/var2,dof1,dof2]);if(convert.isError(o)){return o}p=(1.0-convert.toDouble(o))*2;if(p>1.0){p=2.0-p}return p}function st_hypgeomdist(args){var convert=Calc.Convert;var a1=convert.toInt(args[0]);var a2=convert.toInt(args[1]);var a3=convert.toInt(args[2]);var a4=convert.toInt(args[3]);if(a1<0.0||a1>Math_min(a2,a3)){return CalcErrorsNumber}if(a1<Math_max(0.0,a2-a4+a3)){return CalcErrorsNumber}if(a2<0.0||a2>a4){return CalcErrorsNumber}if(a3<0.0||a3>a4){return CalcErrorsNumber}if(a4<0.0){return CalcErrorsNumber}var o=Functions.Functions._MathHelper.combin(a3,a1);if(convert.isError(o)){return o}var pt1=convert.toDouble(o);o=Functions.Functions._MathHelper.combin(a4-a3,a2-a1);if(convert.isError(o)){return o}var pt2=convert.toDouble(o);o=Functions.Functions._MathHelper.combin(a4,a2);if(convert.isError(o)){return o}var pt3=convert.toDouble(o);return convert.toResult((pt1*pt2)/pt3)}function st_lognormdist(args){var x,mean,stdev;var convert=Calc.Convert;if(isNaN(x=convert.toDouble(args[0]))||isNaN(mean=convert.toDouble(args[1]))||isNaN(stdev=convert.toDouble(args[2]))){return CalcErrorsValue}if(x<=0.0||stdev<=0.0){return CalcErrorsNumber}var list=[];list[0]=(Math_log(x)-mean)/stdev;return st_normsdist(list)}function st_loginv(args){var prob,mean,stdev;var convert=Calc.Convert;if(isNaN(prob=convert.toDouble(args[0]))||isNaN(mean=convert.toDouble(args[1]))||isNaN(stdev=convert.toDouble(args[2]))){return CalcErrorsValue}if(stdev<=0.0||prob<0.0||prob>1.0){return CalcErrorsNumber}var list=[];list[0]=prob;var o=st_normsinv(list);if(convert.isError(o)){return o}var p=convert.toDouble(o);return convert.toResult(Math_exp(mean+stdev*p))}function st_pearson(args){var sumx=0.0,sumy=0.0,sumx2=0.0,sumy2=0.0,sumxy=0.0;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var n=arrayHelper.getLength(args[0]);if(n!==arrayHelper.getLength(args[1])){return CalcErrorsNotAvailable}var count=0;for(var i=0;i<n;i++){var obj1=arrayHelper.getValueByIndex(args[0],i);var obj2=arrayHelper.getValueByIndex(args[1],i);if(convert.isNumber(obj1)&&convert.isNumber(obj2)){var x=convert.toDouble(obj1);var y=convert.toDouble(obj2);sumx+=x;sumy+=y;sumx2+=x*x;sumy2+=y*y;sumxy+=x*y;count++}}if((count*sumx2-sumx*sumx)===0||(count*sumy2-sumy*sumy)===0){return CalcErrorsDivideByZero}return(count*sumxy-sumx*sumy)/Math_sqrt((count*sumx2-sumx*sumx)*(count*sumy2-sumy*sumy))}function st_rsq(args){var arrayY=args[0];var arrayX=args[1];var sumx=0.0,sumy=0.0,sumx2=0.0,sumy2=0.0,sumxy=0.0,n=0;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var length=arrayHelper.getLength(arrayX);if(length!==arrayHelper.getLength(arrayY)){return CalcErrorsNotAvailable}for(var i=0;i<length;i++){var valueX=arrayHelper.getValueByIndex(arrayX,i);var valueY=arrayHelper.getValueByIndex(arrayY,i);if(convert.isNumber(valueX)&&convert.isNumber(valueY)){var x=convert.toDouble(valueX);var y=convert.toDouble(valueY);sumx+=x;sumy+=y;sumx2+=x*x;sumy2+=y*y;sumxy+=x*y;n++}}var divisor=Math_sqrt((n*sumx2-sumx*sumx)*(n*sumy2-sumy*sumy));if(divisor===0.0){return CalcErrorsDivideByZero}var r=(n*sumxy-sumx*sumy)/divisor;return convert.toResult(r*r)}function __fact(x){var result=1.0;for(var i=x;i>1;i--){result*=i}return result}function st_poisson(args){var x;var convert=Calc.Convert;if(isNaN(x=convert.toInt(args[0]))){return CalcErrorsValue}var mean;if(isNaN(mean=convert.toDouble(args[1]))){return CalcErrorsValue}var cumulative;try
{cumulative=convert.toBool(args[2])}catch(e){return CalcErrorsValue}var result=0.0;if(x<=0||mean<=0.0){return CalcErrorsNumber}if(cumulative){for(var i=0;i<=x;i++){result+=(Math_exp(-mean)*Math_pow(mean,i))/__fact(i)}}else
{result=(Math_exp(-mean)*Math_pow(mean,x))/__fact(x)}return convert.toResult(result)}function st_prob(args){var lower;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;if(isNaN(lower=convert.toDouble(args[2]))){return CalcErrorsValue}var upper=lower;if(Calc._Helper._argumentExists(args,3)){if(isNaN(upper=convert.toDouble(args[3]))){return CalcErrorsValue}}var sum=0.0;var total_sum=0.0;var n=arrayHelper.getLength(args[0]);if(n!==arrayHelper.getLength(args[1])){return CalcErrorsNotAvailable}for(var i=0;i<n;i++){if(arrayHelper.getValueByIndex(args[0],i)!==keyword_null&&arrayHelper.getValueByIndex(args[1],i)!==keyword_null){var x,prob;if(isNaN(x=convert.toDouble(arrayHelper.getValueByIndex(args[0],i)))||isNaN(prob=convert.toDouble(arrayHelper.getValueByIndex(args[1],i)))){return CalcErrorsValue}if(prob<=0.0||1.0<prob){return CalcErrorsNumber}if(lower<=x&&x<=upper){sum+=prob}total_sum+=prob}}if(total_sum!==1.0){return CalcErrorsNumber}return sum}function st_skew(args){if(typeof(args[0])===const_undefined||args[0]===keyword_null){throw spread.SR.Exp_InvalidArgument;}var sumx=0.0,sumx2=0.0,sumskew=0.0,meanx,stdev,n=0;var i,j,x,obj;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;for(i=0;i<args.length;i++){if(arrayHelper.isArrayOrReference(args[i])){for(j=0;j<arrayHelper.getLength(args[i]);j++){obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)){x=convert.toDouble(obj);sumx+=x;sumx2+=x*x;n++}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else if(convert.isError(args[i])){return args[i]}else
{var x1;if(isNaN(x1=convert.toDouble(args[i]))){return CalcErrorsValue}sumx+=x1;sumx2+=x1*x1;n++}}if(n<=2){return CalcErrorsDivideByZero}meanx=sumx/n;stdev=Math_sqrt((n*sumx2-sumx*sumx)/(n*(n-1)));if(stdev===0.0){return CalcErrorsDivideByZero}for(i=0;i<args.length;i++){if(arrayHelper.isArrayOrReference(args[i])){for(j=0;j<arrayHelper.getLength(args[i]);j++){obj=arrayHelper.getValueByIndex(args[i],j);if(convert.isNumber(obj)){x=convert.toDouble(obj);sumskew+=Math_pow((x-meanx)/stdev,3.0)}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[i]))){return CalcErrorsValue}sumskew+=Math_pow((x-meanx)/stdev,3.0)}}return convert.toResult((n*sumskew)/((n-1)*(n-2)))}function st_standardize(args){var x,mean,stdev;var convert=Calc.Convert;if(isNaN(x=convert.toDouble(args[0]))||isNaN(mean=convert.toDouble(args[1]))||isNaN(stdev=convert.toDouble(args[2]))){return CalcErrorsValue}if(stdev<=0.0){return CalcErrorsNumber}return(x-mean)/stdev}function st_tdist(args){var x;var convert=Calc.Convert;if(isNaN(x=convert.toDouble(args[0]))){return CalcErrorsValue}var df,tails;if(isNaN(df=convert.toInt(args[1]))||isNaN(tails=convert.toInt(args[2]))){return CalcErrorsValue}if(df<1||tails!==1&&tails!==2||x<0){return CalcErrorsNumber}var f=df;var a=x/Math_sqrt(f);var b=f/(f+(x*x));var im2=f-2.0;var ioe=f%2.0;var s=1.0,c=1.0;f=1.0;var ks=2.0+ioe;var fk=ks;if(im2>=2.0){for(var i=convert.toInt(ks);i<=im2;i=i+2){c=c*b*(fk-1.0)/fk;s+=c;if(s===f){break}f=s;fk+=2}}if(ioe!==1.0){return tails*(1.0-(0.5+0.5*a*Math_sqrt(b)*s))}if(df===1.0){s=0.0}return tails*(1.0-(0.5+(a*b*s+Math_atan(a))*0.3183098862))}function st_tinv(args){var val;var convert=Calc.Convert;if(isNaN(val=convert.toDouble(args[0]))){return CalcErrorsValue}var ndf;if(isNaN(ndf=convert.toInt(args[1]))){return CalcErrorsValue}var eps=1.0e-12;if(val<0.0||1.0<val||ndf<1||ndf>Math_pow(10,10)){return CalcErrorsNumber}var a,b,c,d,prob,P,q,x,y,neg;var p1=val/2;var p2=p1;if(ndf>1.0e20){var list=[];list[0]=p1;return st_normsinv(list)}if(p2<0.5){neg=0;P=2.0*p2}else
{neg=1;P=2.0*(1.0-p2)}if(Math_abs(ndf-2.0)<eps){if(P>0.0){q=Math_sqrt(2.0/(P*(2.0-P))-2.0)}else
{q=1.79769e+308}}else if(convert.toDouble(ndf)<1.0+eps){if(P>0.0){prob=(P+1.0)*1.57079632679489661923;q=-Math_tan(prob)}else
{q=1.79769e+308}}else
{a=1.0/(ndf-0.5);b=48.0/(a*a);c=((20700.0*a/b-98.0)*a-16.0)*a+96.36;d=((94.5/(b+c)-3.0)/b+1.0)*Math_sqrt(a*1.57079632679489661923)*ndf;y=Math_pow(d*P,2.0/ndf);if(y>0.05+a){var list1=[];list1[0]=0.5*P;var o=st_normsinv(list1);if(convert.isError(o)){return o}x=convert.toDouble(o);y=x*x;if(ndf<5.0){c=c+0.3*(ndf-4.5)*(x+0.6)}c=(((0.05*d*x-5.0)*x-7.0)*x-2.0)*x+b+c;y=(((((0.4*y+6.3)*y+36)*y+94.5)/c-y-3.0)/b+1.0)*x;y=a*y*y;if(y>0.002){y=Math_exp(y)-1.0}else
{y=0.5*y*y+y}}else
{y=((1.0/(((ndf+6.0)/(ndf*y)-0.089*d-0.822)*(ndf+2.0)*3.0)+0.5/(ndf+4.0))*y-1.0)*(ndf+1.0)/(ndf+2.0)+1.0/y}q=Math_sqrt(ndf*y)}if(neg!==0.0){q=-q}return convert.toResult(q)}function __stat1(closure,array){var x,dx,dm;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var length=arrayHelper.getLength(array);for(var i=0;i<length;i++){x=convert.toDouble(arrayHelper.getValueByIndex(array,i));dx=x-closure.M;dm=dx/(closure.N+1);closure.M+=dm;closure.Q+=closure.N*dx*dm;closure.N++;closure.sum+=x}}function __gammaln(value){var coefficient=[76.180091729471457,-86.505320329416776,24.014098240830911,-1.231739572450155,1.208650973866179e-03,-5.395239384953E-06];var y=value;var d=value+5.5;d-=(value+0.5)*Math_log(d);var ser=1.0000000001900149;for(var i=0;i<=5;i++){ser+=coefficient[i]/++y}return(-d+Math_log((2.5066282746310006*ser)/value))}function __iterate(array1,array2){var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var lengthArray1=arrayHelper.getLength(array1);var lengthArray2=arrayHelper.getLength(array2);if(lengthArray1!==lengthArray2){return CalcErrorsNotAvailable}var temp=[];for(var i=0;i<lengthArray1;i++){var x1,x2;if(isNaN(x1=convert.toDouble(arrayHelper.getValueByIndex(array1,i)))||isNaN(x2=convert.toDouble(arrayHelper.getValueByIndex(array2,i)))){return CalcErrorsValue}temp[i]=x1-x2}return temp}function __betaregularized(a,b,x){var bt=((x===0.0)||(x===1.0))?0.0:Math_exp(__gammaln(a+b)-__gammaln(a)-__gammaln(b)+a*Math_log(x)+b*Math_log(1.0-x));var swap=x>=((a+1.0)/((a+b)+2.0));if(swap){var temp=a;a=b;b=temp;x=1.0-x}var FP_MIN=4.4501477170144028E-308;var MAX_ITERATIONS=100;var qab=a+b;var qaq=a+1.0;var qam=a-1.0;var c=1.0;var d=1.0-((qab*x)/qaq);if(Math_abs(d)<FP_MIN){d=FP_MIN}d=1.0/d;var h=d;var convert=Calc.Convert;for(var i=1,i2=2;i<=MAX_ITERATIONS;i++,i2+=2){var aa=(i*(b-i)*x)/((qam+i2)*(a+i2));d=1.0+(aa*d);if(Math_abs(d)<FP_MIN){d=FP_MIN}c=1.0+(aa/c);if(Math_abs(c)<FP_MIN){c=FP_MIN}d=1.0/d;h*=d*c;aa=((-(a+i)*(qab+i))*x)/((a+i2)*(qaq+i2));d=1.0+(aa*d);if(Math_abs(d)<FP_MIN){d=FP_MIN}c=1.0+(aa/c);if(Math_abs(c)<FP_MIN){c=FP_MIN}d=1.0/d;var del=d*c;h*=del;if(Math_abs(convert.toDouble(del-1.0))<4.94066e-324){var result=bt*h/a;return swap?1.0-result:result}}return CalcErrorsNumber}function st_ttest(args){var array1=args[0];var array2=args[1];var args2=args[2];var args3=args[3];var convert=Calc.Convert;if(!convert.isNumber(args2)||!convert.isNumber(args3)){return CalcErrorsValue}var tails=convert.toInt(args2);var type=convert.toInt(args3);var mean1,mean2,x;var s,var1,var2,dof;var cl={N:0,M:0,Q:0,sum:0,afun_flag:false};var n1,n2;if((tails!==1&&tails!==2)||(type<1||3<type)){return CalcErrorsNumber}if(type===1){var sum,dx,dm,M,Q,N;array1=__iterate(array1,array2);if(convert.isError(array1)){return array1}dx=dm=M=Q=N=sum=0;var length1=array1.length;for(var i=0;i<length1;i++){var array1i;if(isNaN(array1i=convert.toDouble(array1[i]))){return CalcErrorsValue}dx=array1i-M;dm=dx/(N+1.0);M+=dm;Q+=N*dx*dm;N++;sum+=array1i}if(N-1.0===0||N===0.0){return CalcErrorsDivideByZero}s=Math_sqrt(Q/(N-1.0));if(isNaN(s)||!isFinite(s)){return CalcErrorsNumber}mean1=sum/N;x=mean1/(s/Math_sqrt(N));dof=N-1.0}else
{cl.N=0;cl.M=0.0;cl.Q=0.0;cl.afun_flag=false;cl.sum=0.0;__stat1(cl,array1);var1=cl.Q/(cl.N-1.0);mean1=cl.sum/cl.N;n1=cl.N;cl.N=0;cl.M=0.0;cl.Q=0.0;cl.afun_flag=false;cl.sum=0.0;__stat1(cl,array2);var2=cl.Q/(cl.N-1.0);mean2=cl.sum/cl.N;n2=cl.N;if(type!==2){var c=(var1/n1)/(var1/n1+var2/n2);dof=1.0/((c*c)/convert.toDouble(n1-1)+((1.0-c)*(1.0-c))/convert.toDouble(n2-1))}else
{dof=convert.toDouble(n1+n2-2)}x=(mean1-mean2)/Math_sqrt(var1/convert.toDouble(n1)+var2/convert.toDouble(n2))}x=Math_abs(x);var value=__betaregularized(0.5*dof,0.5,dof/(dof+x*x));if(convert.isError(value)){return value}return 0.5*tails*convert.toDouble(value)}function st_ztest(args){var val;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;if(isNaN(val=convert.toDouble(args[1]))){return CalcErrorsValue}var sigma=0.0;if(Calc._Helper._argumentExists(args,2)){if(isNaN(sigma=convert.toDouble(args[2]))){return CalcErrorsValue}}var sumx=0.0,sumx2=0.0,meanx,stdev,n=0,x;if(arrayHelper.isArrayOrReference(args[0])){for(var i=0;i<arrayHelper.getLength(args[0]);i++){var obj=arrayHelper.getValueByIndex(args[0],i);if(convert.isNumber(obj)){x=convert.toDouble(obj);sumx+=x;sumx2+=x*x;n++}else if(convert.isError(obj)){Calc.Convert._inArray=false;return obj}}Calc.Convert._inArray=false}else
{if(isNaN(x=convert.toDouble(args[0]))){return CalcErrorsValue}sumx+=x;sumx2+=x*x;n++}if(n===0){return CalcErrorsNotAvailable}if(n===1){return CalcErrorsDivideByZero}meanx=sumx/n;stdev=Calc._Helper._argumentExists(args,2)?sigma:Math_sqrt((n*sumx2-sumx*sumx)/(n*(n-1)));if(stdev===0.0){return CalcErrorsDivideByZero}var subArgs=[];subArgs[0]=(meanx-val)/(stdev/Math_sqrt(n));var o=st_normsdist(subArgs);if(convert.isError(o)){return o}return convert.toResult(1.0-convert.toDouble(o))}function st_weibull(args){var x,alpha,beta;var convert=Calc.Convert;if(isNaN(x=convert.toDouble(args[0]))||isNaN(alpha=convert.toDouble(args[1]))||isNaN(beta=convert.toDouble(args[2]))){return CalcErrorsValue}var cum;try
{cum=convert.toBool(args[3])}catch(e){return CalcErrorsValue}if(x<0.0||alpha<=0||beta<=0){return CalcErrorsNumber}if(cum){return convert.toResult(1.0-Math_exp(-Math_pow((x/beta),alpha)))}else
{return convert.toResult((alpha/Math_pow(beta,alpha))*Math_pow(x,alpha-1.0)*Math_exp(-Math_pow((x/beta),alpha)))}}function st_permut(args){var convert=Calc.Convert;var n=convert.toDouble(convert.toInt(args[0]));var k=convert.toDouble(convert.toInt(args[1]));var result=1.0;if(n<0.0||k<0.0||n<k){return CalcErrorsNumber}for(var i=n-k+1.0;i<=n;i++){result*=i}return convert.toResult(result)}function st_intercept(args){var y,x,sumy=0.0,sumx=0.0,sumx2=0.0,sumxy=0.0,b;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var n=arrayHelper.getLength(args[0]);if(n!==arrayHelper.getLength(args[1])){return CalcErrorsNotAvailable}var count=0;for(var i=0;i<n;i++){var obj1=arrayHelper.getValueByIndex(args[0],i);var obj2=arrayHelper.getValueByIndex(args[1],i);if(convert.isNumber(obj1)&&convert.isNumber(obj2)){y=convert.toDouble(obj1);x=convert.toDouble(obj2);sumy+=y;sumx+=x;sumx2+=x*x;sumxy+=x*y;count++}else if(convert.isError(obj1)){return obj1}else if(convert.isError(obj2)){return obj2}}if(count===0){return CalcErrorsDivideByZero}if(count*sumx2-sumx*sumx===0.0){return CalcErrorsDivideByZero}b=(count*sumxy-sumx*sumy)/(count*sumx2-sumx*sumx);return convert.toResult((sumy/count)-b*(sumx/count))}function st_linest(args){var convert=Calc.Convert,helper=Calc._Helper;var knownY=convert._toArray(args[0]);var knownX=new Calc.CalcArray;if(helper._argumentExists(args,1)){knownX=convert._toArray(args[1])}else
{knownX=knownY}var constant=helper._argumentExists(args,2)?convert.toBool(args[2]):true;var stats=helper._argumentExists(args,3)?convert.toBool(args[3]):false;var d,i,j,k,m,n,x,y,mm,nn,result,found,temp,val,se2;for(i=0;i<knownY.getRowCount();i++){for(j=0;j<knownY.getColumnCount();j++){if(convert.isError(knownY.getValue(i,j))){return knownY.getValue(i,j)}else if(!convert.isNumber(knownY.getValue(i,j))){return CalcErrorsValue}}}for(i=0;i<knownX.getRowCount();i++){for(j=0;j<knownX.getColumnCount();j++){if(convert.isError(knownX.getValue(i,j))){return knownX.getValue(i,j)}if(!convert.isNumber(knownX.getValue(i,j))){return CalcErrorsValue}}}if(knownY.getRowCount()===knownX.getRowCount()&&knownY.getColumnCount()===knownX.getColumnCount()&&(constant||!stats)){n=convert.toDouble(knownX.getRowCount()*knownX.getColumnCount());var sumx=0.0,sumx2=0.0,sumy=0.0,sumy2=0.0,sumxy=0.0,b;for(i=0;i<knownX.getRowCount();i++){for(j=0;j<knownX.getColumnCount();j++){if(isNaN(x=convert.toDouble(knownX.getValue(i,j)))||isNaN(y=convert.toDouble(knownY.getValue(i,j)))){return CalcErrorsValue}sumx+=x;sumx2+=x*x;sumy+=y;sumy2+=y*y;sumxy+=x*y}}if(constant){m=(n*sumxy-sumx*sumy)/(n*sumx2-sumx*sumx);b=(sumy*sumx2-sumx*sumxy)/(n*sumx2-sumx*sumx)}else
{m=sumxy/sumx2;b=0.0}result=[];result[0]=[];result[0][0]=m;result[0][1]=b;if(stats){result[1]=[];result[2]=[];result[3]=[];result[4]=[];var nSumx2MinusSumxSumx=n*sumx2-sumx*sumx;var nSumy2MinusSumySumy=n*sumy2-sumy*sumy;var nSumxyMinusSumxSumy=n*sumxy-sumx*sumy;var ssresid=sumy2-b*sumy-m*sumxy;var r2=(nSumxyMinusSumxSumy*nSumxyMinusSumxSumy)/(nSumx2MinusSumxSumx*nSumy2MinusSumySumy);if(n<3){result[1][0]=CalcErrorsNumber;result[1][1]=CalcErrorsNumber;result[2][1]=CalcErrorsNumber;result[3][0]=CalcErrorsNumber}else
{result[1][0]=Math_sqrt((ssresid*n)/(nSumx2MinusSumxSumx*(n-2.0)));result[1][1]=Math_sqrt((ssresid*sumx2)/(nSumx2MinusSumxSumx*(n-2.0)));result[2][1]=Math_sqrt((nSumy2MinusSumySumy-nSumxyMinusSumxSumy*nSumxyMinusSumxSumy/nSumx2MinusSumxSumx)/(n*(n-2.0)));if(r2===1.0){result[3][0]=CalcErrorsNumber}else
{result[3][0]=(r2*(n-2.0))/(1.0-r2)}}result[2][0]=r2;result[3][1]=n-2.0;result[4][0]=nSumy2MinusSumySumy/n-ssresid;result[4][1]=ssresid}return result}else if((knownY.getColumnCount()===1&&knownY.getRowCount()===knownX.getRowCount())||(knownY.getRowCount()===1&&knownY.getColumnCount()===knownX.getColumnCount())){y=[];x=[];if(knownY.getColumnCount()===1){n=knownX.getRowCount();m=knownX.getColumnCount();for(i=0;i<n;i++){if(isNaN(d=convert.toDouble(knownY.getValue(i,0)))){return CalcErrorsValue}y[i]=d}for(i=0;i<n;i++){x[i]=[];for(j=0;j<m;j++){if(isNaN(d=convert.toDouble(knownX.getValue(i,j)))){return CalcErrorsValue}x[i][j]=d}}}else
{n=knownX.getColumnCount();m=knownX.getRowCount();x=[];y=[];for(i=0;i<n;i++){if(isNaN(d=convert.toDouble(knownY.getValue(0,i)))){return CalcErrorsValue}y[i]=d}for(i=0;i<n;i++){x[i]=[];for(j=0;j<m;j++){if(isNaN(d=convert.toDouble(knownX.getValue(j,i)))){return CalcErrorsValue}x[i][j]=d}}}var q=[];for(k=0;k<m+1;k++){q[k]=[]}for(mm=0;mm<m+1;mm++){for(nn=0;nn<m+2;nn++){q[mm][nn]=0}}var e=[];for(mm=0;mm<m+2;mm++){e[mm]=0}var v=(stats?[]:keyword_null);for(k=0;k<n;k++){e[m+1]=e[m+1]+y[k]*y[k];q[0][m+1]=q[0][m+1]+y[k];e[0]=q[0][m+1];for(i=0;i<m;i++){q[0][i+1]=q[0][i+1]+x[k][i];q[i+1][0]=q[0][i+1];q[i+1][m+1]=q[i+1][m+1]+x[k][i]*y[k];e[i+1]=q[i+1][m+1];for(j=i;j<m;j++){q[j+1][i+1]=q[j+1][i+1]+x[k][i]*x[k][j];q[i+1][j+1]=q[j+1][i+1]}}}q[0][0]=n;if(stats){for(mm=0;mm<m+1;mm++){v[mm]=[];for(nn=0;nn<m+1;nn++){v[mm][nn]=0}}for(i=0;i<m+1;i++){v[i][i]=1.0}}if(constant){for(i=0;i<m+1;i++){if(q[i][i]===0.0){found=false;for(j=i+1;!found&&j<m+1;j++){if(q[j][i]!==0.0){for(k=0;k<m+2;k++){temp=q[i][k];q[i][k]=q[j][k];q[j][k]=temp}if(stats){for(k=0;k<m+1;k++){temp=v[i][k];v[i][k]=v[j][k];v[j][k]=temp}}found=true}}if(!found){return CalcErrorsNumber}}val=1.0/q[i][i];for(k=0;k<m+2;k++){q[i][k]=q[i][k]*val}if(stats){for(k=0;k<m+1;k++){v[i][k]=v[i][k]*val}}for(j=0;j<m+1;j++){if(j!==i){val=-q[j][i];for(k=0;k<m+2;k++){q[j][k]=q[j][k]+val*q[i][k]}if(stats){for(k=0;k<m+1;k++){v[j][k]=v[j][k]+val*v[i][k]}}}}}}else
{for(i=1;i<m+1;i++){if(q[i][i]===0.0){found=false;for(j=i+1;!found&&j<m+1;j++){if(q[j][i]!==0.0){for(k=0;k<m+2;k++){temp=q[i][k];q[i][k]=q[j][k];q[j][k]=temp}if(stats){for(k=0;k<m+1;k++){temp=v[i][k];v[i][k]=v[j][k];v[j][k]=temp}}found=true}}if(!found){return CalcErrorsNumber}}val=1.0/q[i][i];for(k=1;k<m+2;k++){q[i][k]=q[i][k]*val}if(stats){for(k=1;k<m+1;k++){v[i][k]=v[i][k]*val}}for(j=1;j<m+1;j++){if(j!==i){val=-q[j][i];for(k=1;k<m+2;k++){q[j][k]=q[j][k]+val*q[i][k]}if(stats){for(k=1;k<m+1;k++){v[j][k]=v[j][k]+val*v[i][k]}}}}q[0][m+1]=0.0}}result=[(stats?5:1),m+1];result[0]=[];for(i=0;i<m+1;i++){result[0][i]=q[m-i][m+1]}if(stats){for(mm=1;mm<5;mm++){result[mm]=[];for(nn=0;nn<m+1;nn++){result[mm][nn]=0}}var sqr,sqt,sqe;sqt=e[m+1]-e[0]*e[0]/n;sqr=e[m+1];for(i=0;i<m+1;i++){sqr-=q[i][m+1]*e[i]}sqe=sqt-sqr;if(sqt===0.0){result[2][0]=CalcErrorsNumber}else
{result[2][0]=sqe/sqt}result[4][0]=sqe;result[4][1]=sqr;if(constant){if(n-m-1===0){result[2][1]=CalcErrorsNumber;for(i=0;i<m+1;i++){result[1][i]=CalcErrorsNumber}}else
{se2=sqr/(n-m-1);for(i=0;i<m+1;i++){result[1][m-i]=Math_sqrt(se2*v[i][i])}result[2][1]=Math_sqrt(se2)}if(sqr===0.0){result[3][0]=CalcErrorsNumber}else
{result[3][0]=(convert.toDouble(n-m-1)*sqe)/(sqr*convert.toDouble(m))}result[3][1]=convert.toDouble(n-m-1)}else
{if(n-m===0){for(i=0;i<m+1;i++){result[1][i]=CalcErrorsNumber}result[2][1]=CalcErrorsNumber}else
{se2=sqr/(convert.toDouble(n-m));result[1][m]=CalcErrorsNotAvailable;for(i=1;i<m+1;i++){result[1][m-i]=Math_sqrt(se2*v[i][i])}result[2][1]=Math_sqrt(se2)}if(sqr===0.0){result[3][0]=CalcErrorsNumber}else
{result[3][0]=(convert.toDouble(n-m)*sqe)/(sqr*convert.toDouble(m))}result[3][1]=convert.toDouble(n-m)}for(i=2;i<5;i++){for(j=2;j<m+1;j++){result[i][j]=CalcErrorsNotAvailable}}}return result}return CalcErrorsNumber}function st_slope(args){var arrayY=args[0];var arrayX=args[1];var sumy=0.0,sumx=0.0,sumx2=0.0,sumxy=0.0,n=0;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var length=arrayHelper.getLength(args[0]);if(length!==arrayHelper.getLength(args[1])){return CalcErrorsNotAvailable}for(var i=0;i<length;i++){var valueY=arrayHelper.getValueByIndex(arrayY,i);var valueX=arrayHelper.getValueByIndex(arrayX,i);if(convert.isNumber(valueY)&&convert.isNumber(valueX)){var y=convert.toDouble(valueY);var x=convert.toDouble(valueX);sumy+=y;sumx+=x;sumx2+=x*x;sumxy+=x*y;n++}}if(n*sumx2-sumx*sumx===0.0){return CalcErrorsDivideByZero}return convert.toResult((n*sumxy-sumx*sumy)/(n*sumx2-sumx*sumx))}function st_logest(args){var convert=Calc.Convert,helper=Calc._Helper;var knownY=convert._toArray(args[0]);var knownX=helper._argumentExists(args,1)?convert._toArray(args[1]):knownY;var constant=helper._argumentExists(args,2)?convert.toBool(args[2]):true;var stats=helper._argumentExists(args,3)?convert.toBool(args[3]):false;var i,j;for(i=0;i<knownY.getRowCount();i++){for(j=0;j<knownY.getColumnCount();j++){if(convert.isError(knownY.getValue(i,j))){return knownY.getValue(i,j)}else if(!convert.isNumber(knownY.getValue(i,j))){return CalcErrorsValue}}}for(i=0;i<knownX.getRowCount();i++){for(j=0;j<knownX.getColumnCount();j++){if(convert.isError(knownX.getValue(i,j))){return knownX.getValue(i,j)}else if(!convert.isNumber(knownX.getValue(i,j))){return CalcErrorsValue}}}var d,k,m,n,x,y,mm,nn,result,val,temp,found,se2;if(knownY.getRowCount()===knownX.getRowCount()&&knownY.getColumnCount()===knownX.getColumnCount()&&(constant||!stats)){n=knownX.getRowCount()*knownX.getColumnCount();var sumx=0.0,sumx2=0.0,sumy=0.0,sumy2=0.0,sumxy=0.0,b;for(i=0;i<knownX.getRowCount();i++){for(j=0;j<knownX.getColumnCount();j++){if(isNaN(x=convert.toDouble(knownX.getValue(i,j)))||isNaN(y=convert.toDouble(knownY.getValue(i,j)))){return CalcErrorsValue}y=Math_log(y);sumx+=x;sumx2+=x*x;sumy+=y;sumy2+=y*y;sumxy+=x*y}}if(constant){m=(n*sumxy-sumx*sumy)/(n*sumx2-sumx*sumx);b=(sumy*sumx2-sumx*sumxy)/(n*sumx2-sumx*sumx)}else
{m=sumxy/sumx2;b=0.0}result=[];result[0]=[];result[0][0]=Math_exp(m);result[0][1]=Math_exp(b);if(stats){result[1]=[];result[2]=[];result[3]=[];result[4]=[];var nSumx2MinusSumxSumx=n*sumx2-sumx*sumx;var nSumy2MinusSumySumy=n*sumy2-sumy*sumy;var nSumxyMinusSumxSumy=n*sumxy-sumx*sumy;var ssresid=sumy2-b*sumy-m*sumxy;var r2=(nSumxyMinusSumxSumy*nSumxyMinusSumxSumy)/(nSumx2MinusSumxSumx*nSumy2MinusSumySumy);if(n<3){result[1][0]=CalcErrorsNumber;result[1][1]=CalcErrorsNumber;result[2][1]=CalcErrorsNumber;result[3][0]=CalcErrorsNumber}else
{result[1][0]=Math_sqrt((ssresid*n)/(nSumx2MinusSumxSumx*(n-2.0)));result[1][1]=Math_sqrt((ssresid*sumx2)/(nSumx2MinusSumxSumx*(n-2.0)));result[2][1]=Math_sqrt((nSumy2MinusSumySumy-nSumxyMinusSumxSumy*nSumxyMinusSumxSumy/nSumx2MinusSumxSumx)/(n*(n-2.0)));if(r2===1.0){result[3][0]=CalcErrorsNumber}else
{result[3][0]=(r2*(n-2.0))/(1.0-r2)}}result[2][0]=r2;result[3][1]=n-2.0;result[4][0]=nSumy2MinusSumySumy/n-ssresid;result[4][1]=ssresid}return result}else if((knownY.getColumnCount()===1&&knownY.getRowCount()===knownX.getRowCount())||(knownY.getRowCount()===1&&knownY.getColumnCount()===knownX.getColumnCount())){y=[];x=[];if(knownY.getColumnCount()===1){n=knownX.getRowCount();m=knownX.getColumnCount();for(i=0;i<n;i++){if(isNaN(d=convert.toDouble(knownY.getValue(i,0)))){return CalcErrorsValue}y[i]=Math_log(d)}for(i=0;i<n;i++){x[i]=[];for(j=0;j<m;j++){if(isNaN(d=convert.toDouble(knownX.getValue(i,j)))){return CalcErrorsValue}x[i][j]=d}}}else
{n=knownX.getColumnCount();m=knownX.getRowCount();x=[];y=[];for(i=0;i<n;i++){if(isNaN(d=convert.toDouble(knownY.getValue(0,i)))){return CalcErrorsValue}y[i]=Math_log(d)}for(i=0;i<n;i++){x[i]=[];for(j=0;j<m;j++){if(isNaN(d=convert.toDouble(knownX.getValue(j,i)))){return CalcErrorsValue}x[i][j]=d}}}var q=[];for(mm=0;mm<m+1;mm++){q[mm]=[];for(nn=0;nn<m+2;nn++){q[mm][nn]=0}}var e=[];for(mm=0;mm<m+2;mm++){e[mm]=0}var v=(stats?[]:keyword_null);for(k=0;k<n;k++){e[m+1]=e[m+1]+y[k]*y[k];q[0][m+1]=q[0][m+1]+y[k];e[0]=q[0][m+1];for(i=0;i<m;i++){q[0][i+1]=q[0][i+1]+x[k][i];q[i+1][0]=q[0][i+1];q[i+1][m+1]=q[i+1][m+1]+x[k][i]*y[k];e[i+1]=q[i+1][m+1];for(j=i;j<m;j++){q[j+1][i+1]=q[j+1][i+1]+x[k][i]*x[k][j];q[i+1][j+1]=q[j+1][i+1]}}}q[0][0]=n;if(stats){for(mm=0;mm<m+1;mm++){v[mm]=[];for(nn=0;nn<m+1;nn++){v[mm][nn]=0}}for(i=0;i<m+1;i++){v[i][i]=1.0}}if(constant){for(i=0;i<m+1;i++){if(q[i][i]===0.0){found=false;for(j=i+1;!found&&j<m+1;j++){if(q[j][i]!==0.0){for(k=0;k<m+2;k++){temp=q[i][k];q[i][k]=q[j][k];q[j][k]=temp}if(stats){for(k=0;k<m+1;k++){temp=v[i][k];v[i][k]=v[j][k];v[j][k]=temp}}found=true}}if(!found){return CalcErrorsNumber}}val=1.0/q[i][i];for(k=0;k<m+2;k++){q[i][k]=q[i][k]*val}if(stats){for(k=0;k<m+1;k++){v[i][k]=v[i][k]*val}}for(j=0;j<m+1;j++){if(j!==i){val=-q[j][i];for(k=0;k<m+2;k++){q[j][k]=q[j][k]+val*q[i][k]}if(stats){for(k=0;k<m+1;k++){v[j][k]=v[j][k]+val*v[i][k]}}}}}}else
{for(i=1;i<m+1;i++){if(q[i][i]===0.0){found=false;for(j=i+1;!found&&j<m+1;j++){if(q[j][i]!==0.0){for(k=0;k<m+2;k++){temp=q[i][k];q[i][k]=q[j][k];q[j][k]=temp}if(stats){for(k=0;k<m+1;k++){temp=v[i][k];v[i][k]=v[j][k];v[j][k]=temp}}found=true}}if(!found){return CalcErrorsNumber}}val=1.0/q[i][i];for(k=1;k<m+2;k++){q[i][k]=q[i][k]*val}if(stats){for(k=1;k<m+1;k++){v[i][k]=v[i][k]*val}}for(j=1;j<m+1;j++){if(j!==i){val=-q[j][i];for(k=1;k<m+2;k++){q[j][k]=q[j][k]+val*q[i][k]}if(stats){for(k=1;k<m+1;k++){v[j][k]=v[j][k]+val*v[i][k]}}}}q[0][m+1]=0.0}}result=[];result[0]=[];for(i=0;i<m+1;i++){result[0][i]=Math_exp(q[m-i][m+1])}if(stats){result[1]=[];result[2]=[];result[3]=[];result[4]=[];var sqr,sqt,sqe;sqt=e[m+1]-e[0]*e[0]/n;sqr=e[m+1];for(i=0;i<m+1;i++){sqr-=q[i][m+1]*e[i]}sqe=sqt-sqr;if(sqt===0.0){result[2][0]=CalcErrorsNumber}else
{result[2][0]=sqe/sqt}result[4][0]=sqe;result[4][1]=sqr;if(constant){if(n-m-1===0){result[2][1]=CalcErrorsNumber;for(i=0;i<m+1;i++){result[1][i]=CalcErrorsNumber}}else
{se2=sqr/(n-m-1);for(i=0;i<m+1;i++){result[1][m-i]=Math_sqrt(se2*v[i][i])}result[2][1]=Math_sqrt(se2)}if(sqr===0.0){result[3][0]=CalcErrorsNumber}else
{result[3][0]=(convert.toDouble(n-m-1)*sqe)/(sqr*convert.toDouble(m))}result[3][1]=convert.toDouble(n-m-1)}else
{if(n-m===0){for(i=0;i<m+1;i++){result[1][i]=CalcErrorsNumber}result[2][1]=CalcErrorsNumber}else
{se2=sqr/(convert.toDouble(n-m));result[1][m]=CalcErrorsNotAvailable;for(i=1;i<m+1;i++){result[1][m-i]=Math_sqrt(se2*v[i][i])}result[2][1]=Math_sqrt(se2)}if(sqr===0.0){result[3][0]=CalcErrorsNumber}else
{result[3][0]=(convert.toDouble(n-m)*sqe)/(sqr*convert.toDouble(m))}result[3][1]=convert.toDouble(n-m)}for(i=2;i<5;i++){for(j=2;j<m+1;j++){result[i][j]=CalcErrorsNotAvailable}}}return result}return CalcErrorsNumber}function st_steyx(args){var x,y,sumy=0.0,sumy2=0.0,sumx=0.0,sumx2=0.0,sumxy=0.0,n=0;var convert=Calc.Convert,arrayHelper=Calc._ArrayHelper;var length=arrayHelper.getLength(args[0]);if(length!==arrayHelper.getLength(args[1])){return CalcErrorsNotAvailable}for(var i=0;i<length;i++){var valueY=arrayHelper.getValueByIndex(args[0],i);var valueX=arrayHelper.getValueByIndex(args[1],i);if(convert.isNumber(valueY)&&convert.isNumber(valueX)){y=convert.toDouble(valueY);x=convert.toDouble(valueX);sumy+=y;sumy2+=y*y;sumx+=x;sumx2+=x*x;sumxy+=x*y;n++}else if(convert.isError(valueY)){return valueY}else if(convert.isError(valueX)){return valueX}}if(n*(n-2)===0){return CalcErrorsDivideByZero}if(n*sumx2-sumx*sumx===0.0){return CalcErrorsDivideByZero}return Math_sqrt((n*sumy2-sumy*sumy-(n*sumxy-sumx*sumy)*(n*sumxy-sumx*sumy)/(n*sumx2-sumx*sumx))/(n*(n-2)))}Functions.def("MAX",st_max,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("MAXA",st_maxa,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("MIN",st_min,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("MINA",st_mina,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("LARGE",st_large,{minArgs:2,maxArgs:2,acceptsArray:Functions.acceptsFirst,acceptsReference:Functions.acceptsFirst});Functions.def("SMALL",st_small,{minArgs:2,maxArgs:2,acceptsArray:Functions.acceptsFirst,acceptsReference:Functions.acceptsFirst});Functions.def("AVERAGEA",st_averagea,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("AVERAGEIF",st_averageif,{minArgs:2,maxArgs:3,acceptsMissingArgument:Functions.acceptsThird,acceptsArray:Functions.acceptsFirstOrThird,acceptsReference:Functions.acceptsFirstOrThird});Functions.def("AVERAGEIFS",st_averageifs,{minArgs:3,acceptsArray:Functions.acceptsFirstOrOdd,acceptsReference:Functions.acceptsFirstOrOdd});Functions.def("MEDIAN",st_median,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("MODE",st_mode,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("GEOMEAN",st_geomean,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("HARMEAN",st_harmean,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("TRIMMEAN",st_trimmean,{minArgs:2,maxArgs:2,acceptsArray:Functions.acceptsFirst,acceptsReference:Functions.acceptsFirst});Functions.def("FREQUENCY",st_frequency,{minArgs:2,maxArgs:2,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("RANK",st_rank,{minArgs:2,maxArgs:3,acceptsMissingArgument:Functions.acceptsThird,acceptsArray:Functions.acceptsSecond,acceptsReference:Functions.acceptsSecond});Functions.def("KURT",st_kurt,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("PERCENTRANK",st_percentrank,{minArgs:2,maxArgs:3,acceptsMissingArgument:Functions.acceptsThird,acceptsArray:Functions.acceptsFirst,acceptsReference:Functions.acceptsFirst});Functions.def("QUARTILE",st_quartile,{minArgs:2,maxArgs:2,acceptsArray:Functions.acceptsFirst,acceptsReference:Functions.acceptsFirst});Functions.def("COUNT",st_count,{minArgs:1,acceptsError:Functions.acceptsAny,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("COUNTA",st_counta,{minArgs:1,acceptsError:Functions.acceptsAny,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("COUNTBLANK",st_countblank,{minArgs:1,maxArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("COUNTIF",st_countif,{minArgs:2,maxArgs:2,acceptsArray:Functions.acceptsFirst,acceptsReference:Functions.acceptsFirst});Functions.def("COUNTIFS",st_countifs,{minArgs:2,acceptsArray:Functions.acceptsEven,acceptsReference:Functions.acceptsEven});Functions.def("AVEDEV",st_avedev,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("STDEVA",st_stdeva,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("STDEVP",st_stdevp,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("STDEVPA",st_stdevpa,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("VAR",st_varr,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("VARA",st_vara,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("VARP",st_varp,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("VARPA",st_varpa,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("COVAR",st_covar,{minArgs:2,maxArgs:2,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("DEVSQ",st_devsp,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("CONFIDENCE",st_confidence,{minArgs:3,maxArgs:3});Functions.def("INTERCEPT",st_intercept,{minArgs:2,maxArgs:2,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("LINEST",st_linest,{minArgs:1,maxArgs:4,acceptsReference:Functions.acceptsFirstOrOne,acceptsArray:Functions.acceptsFirstOrOne,acceptsMissingArgument:Functions.acceptsSecondOrThirdOrFourth});Functions.def("SLOPE",st_slope,{minArgs:2,maxArgs:2,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny,arrayArgumentEvaluateMode:1});Functions.def("LOGEST",st_logest,{minArgs:1,maxArgs:4,acceptsReference:Functions.acceptsFirstOrOne,acceptsArray:Functions.acceptsFirstOrOne,acceptsMissingArgument:Functions.acceptsSecondOrThirdOrFourth});Functions.def("STEYX",st_steyx,{minArgs:2,maxArgs:2,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("BETADIST",st_betadist,{minArgs:3,maxArgs:5,acceptsMissingArgument:Functions.acceptsFourthOrFifth});Functions.def("BETAINV",st_betainv,{minArgs:3,maxArgs:5,acceptsMissingArgument:Functions.acceptsFourthOrFifth});Functions.def("BINOMDIST",st_binomdist,{minArgs:4,maxArgs:4});Functions.def("NEGBINOMDIST",st_negbinomdist,{minArgs:3,maxArgs:3});Functions.def("CRITBINOM",st_critbinom,{minArgs:3,maxArgs:3});Functions.def("CHIDIST",st_chidist,{minArgs:2,maxArgs:2});Functions.def("CHIINV",st_chiinv,{minArgs:2,maxArgs:2});Functions.def("CHITEST",st_chitest,{minArgs:2,maxArgs:2,acceptsReference:Functions.acceptsAny,acceptsArray:Functions.acceptsAny});Functions.def("CORREL",st_correl,{minArgs:2,maxArgs:2,acceptsReference:Functions.acceptsAny,acceptsArray:Functions.acceptsAny});Functions.def("EXPONDIST",st_expondist,{minArgs:3,maxArgs:3});Functions.def("FDIST",st_fdist,{minArgs:3,maxArgs:3});Functions.def("FINV",st_finv,{minArgs:3,maxArgs:3});Functions.def("FISHER",st_fisher,{minArgs:1,maxArgs:1});Functions.def("FISHERINV",st_fisherinv,{minArgs:1,maxArgs:1});Functions.def("FTEST",st_ftest,{minArgs:2,maxArgs:2,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("GAMMADIST",st_gammadist,{minArgs:4,maxArgs:4});Functions.def("GAMMAINV",st_gammainv,{minArgs:3,maxArgs:3});Functions.def("GAMMALN",st_gammaln,{minArgs:1,maxArgs:1});Functions.def("HYPGEOMDIST",st_hypgeomdist,{minArgs:4,maxArgs:4});Functions.def("LOGNORMDIST",st_lognormdist,{minArgs:3,maxArgs:3});Functions.def("LOGINV",st_loginv,{minArgs:3,maxArgs:3});Functions.def("NORMDIST",st_normdist,{minArgs:4,maxArgs:4});Functions.def("NORMINV",st_norminv,{minArgs:3,maxArgs:3});Functions.def("NORMSDIST",st_normsdist,{minArgs:1,maxArgs:1});Functions.def("NORMSINV",st_normsinv,{minArgs:1,maxArgs:1});Functions.def("PEARSON",st_pearson,{minArgs:2,maxArgs:2,acceptsReference:Functions.acceptsAny,acceptsArray:Functions.acceptsAny});Functions.def("RSQ",st_rsq,{minArgs:2,maxArgs:2,acceptsReference:Functions.acceptsFirstOrOne,acceptsArray:Functions.acceptsFirstOrOne});Functions.def("POISSON",st_poisson,{minArgs:3,maxArgs:3});Functions.def("PROB",st_prob,{minArgs:3,maxArgs:4,acceptsMissingArgument:Functions.acceptsFourth,acceptsReference:Functions.acceptsFirstOrOne,acceptsArray:Functions.acceptsFirstOrOne});Functions.def("SKEW",st_skew,{minArgs:1,acceptsArray:Functions.acceptsAny,acceptsReference:Functions.acceptsAny});Functions.def("STANDARDIZE",st_standardize,{minArgs:3,maxArgs:3});Functions.def("TDIST",st_tdist,{minArgs:3,maxArgs:3});Functions.def("TINV",st_tinv,{minArgs:2,maxArgs:2});Functions.def("TTEST",st_ttest,{minArgs:4,maxArgs:4,acceptsReference:Functions.acceptsFirstOrOne,acceptsArray:Functions.acceptsFirstOrOne});Functions.def("WEIBULL",st_weibull,{minArgs:4,maxArgs:4});Functions.def("ZTEST",st_ztest,{minArgs:2,maxArgs:3,acceptsReference:Functions.acceptsFirst,acceptsArray:Functions.acceptsFirst,acceptsMissingArgument:Functions.acceptsThird});Functions.def("PERMUT",st_permut,{minArgs:2,maxArgs:2})})(Calc.Functions||(Calc.Functions={}));var Functions=Calc.Functions})(spread.Calc||(spread.Calc={}));var Calc=spread.Calc})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(_spread){_spread.feature("formulatextbox",["core.common"]);var keyword_null=null,keyword_undefined=undefined,Math_max=Math.max,Math_min=Math.min;var ns_formulatextbox_internal=".gcFormulaTextBoxInternal",ns_formulatextbox=".gcFormulaTextBox",EVENT_TEXTCHANGED="TextChanged",EVENT_CARETCHANGED="CaretChanged",EVENT_APPENDSTARTED="AppendStarted",EVENT_APPENDENDED="AppendEnded";var Keys={left:37,right:39,up:38,down:40,tab:9,enter:13,pup:33,pdn:34,end:35,home:36,esc:27};var FormulaTextBox=(function(){function FormulaTextBox(host){this._init();if(host){this._attachHost(host)}}FormulaTextBox.prototype.destroy=function(){var self=this;self._isAppending=false;self._appendingStart=-1;self._detachHost();self._detachSpread();$(self._funcsPopup).remove();$(self._funcHelpPopup).remove()};FormulaTextBox.prototype.bind=function(type,data,fn){var host=this._host;if(host&&type){type=type.split(/\s+/).join(ns_formulatextbox+" ");$(host).bind(type+ns_formulatextbox,data,fn)}};FormulaTextBox.prototype.unbind=function(type,fn){var host=this._host;if(host&&type){type=type.split(/\s+/).join(ns_formulatextbox+" ");$(host).unbind(type+ns_formulatextbox,fn)}};FormulaTextBox.prototype.unbindAll=function(){var host=this._host;if(host){$(host).unbind(ns_formulatextbox)}};FormulaTextBox.prototype.caret=function(value){var self=this,host=self._host;if(!host){return}var focusElement=document.activeElement,hostFocused=(document.activeElement===host);var $host=$(host);if(arguments.length===0){if(hostFocused){return self._getCaret(host).end}return $host.data("caret-before")}if(value!==self.caret()){if(hostFocused){self._setCaret(host,value);$host.data("caret-before",self._getCaret(host).end)}else
{$host.data("caret-before",value)}self._trigger(EVENT_CARETCHANGED,{})}};FormulaTextBox.prototype._getCaret=function(element){var start=-1,end=-1;var input=this._isInputElement(element),editable=this._isEditableElement(element);if(input){start=element.selectionStart;end=element.selectionEnd}else if(editable){var selection=window.getSelection();if(selection.rangeCount>0){var range=selection.getRangeAt(0);var clonedRange=range.cloneRange();clonedRange.selectNodeContents(element);clonedRange.setEnd(range.endContainer,range.endOffset);end=clonedRange.toString().length;clonedRange=range.cloneRange();clonedRange.selectNodeContents(element);clonedRange.setEnd(range.startContainer,range.startOffset);start=clonedRange.toString().length;clonedRange.detach()}}return{start:start,end:end}};FormulaTextBox.prototype._setCaret=function(element,pos){var input=this._isInputElement(element),editable=this._isEditableElement(element);if(input){element.setSelectionRange(pos,pos)}else if(editable){var caretNode=this._getColorNode(element,pos);if(caretNode){var selection=window.getSelection();var range=document.createRange();range.setStart(caretNode.node.firstChild,caretNode.offset);range.collapse(true);selection.removeAllRanges();selection.addRange(range)}}};FormulaTextBox.prototype.text=function(value){var self=this,host=self._host;if(!host){return}var input=self._isInputElement(host),editable=self._isEditableElement(host);if(arguments.length===0){var txt="";if(input){txt=host.value}else if(editable){txt=host.textContent}return txt}if(value===null||typeof(value)==='undefined'){value=""}if(value!==self.text()){self._tokens=Tokenizer.parse(value);if(input){host.value=value}else if(editable){self._colorText(self._tokens)}self._trigger(EVENT_TEXTCHANGED,{})}};FormulaTextBox.prototype.autoComplete=function(value){if(arguments.length===0){return this._autoComplete}this._autoComplete=value};FormulaTextBox.prototype.showHelp=function(value){if(arguments.length===0){return this._showHelp}this._showHelp=value};FormulaTextBox.prototype.add=function(fnd){if(!fnd){return}if($.isArray(fnd)){var count=fnd.length;for(var i=0;i<count;i++){this._add(fnd[i])}}else
{this._add(fnd)}};FormulaTextBox.prototype._add=function(func){var addName=(func&&func.name&&func.name.toUpperCase());if(!addName){return}var funcs=this._funcs,count=funcs.length,index,fName;for(index=0;index<count;index++){fName=funcs[index].name.toUpperCase();if(fName===addName){return}else if(fName>addName){break}}funcs.splice(index,0,func)};FormulaTextBox.prototype.remove=function(name){if(!name){return}name=name.toUpperCase();var funcs=this._funcs,count=funcs.length;for(var i=0;i<count;i++){if(funcs[i].name.toUpperCase()===name){funcs.splice(i,1);break}}};FormulaTextBox.prototype.spread=function(value){if(arguments.length===0){return this._spread}this._attachSpread(value)};FormulaTextBox.prototype.getRanges=function(){var ranges=[];var tokens=this._tokens,tokenCount=(tokens&&tokens.length),token,tokenText,tmpLength=0,index=0;if(tokenCount>0){for(var i=0;i<tokenCount;i++){token=tokens[i];tokenText=token.text;if(token.type===TokenType.Range){ranges.push({textOffset:tmpLength,text:tokenText,index:index++})}tmpLength+=tokenText.length}}return ranges};FormulaTextBox.prototype.getActiveRange=function(){var host=this._host,ranges=this.getRanges();if(host&&ranges&&ranges.length>0){var caretPosition=this.caret(),count=ranges.length,range,textOffset;for(var i=0;i<count;i++){range=ranges[i];textOffset=range.textOffset;if(textOffset<caretPosition&&caretPosition<=textOffset+range.text.length){return range}else if(textOffset>=caretPosition){break}}}return keyword_null};FormulaTextBox.prototype.isActiveRange=function(paramRange){if(!paramRange){return false}var caretPosition=this.caret();var rangeString=paramRange.text,rangeStringOffset=paramRange.textOffset;if(rangeStringOffset<caretPosition&&caretPosition<=rangeStringOffset+rangeString.length){return true}return false};FormulaTextBox.prototype.getRangeColor=function(index){var ranges=this.getRanges(),count=ranges.length;if(index<0||count<=index){return""}var tmpRanges=[],range,colorIndex=0;for(var i=0;i<count;i++){range=ranges[i];var duplicated=false,j=0;for(;j<tmpRanges.length;j++){if(tmpRanges[j].text.replace(/\s+/g,"").toUpperCase()===range.text.replace(/\s+/g,"").toUpperCase()){duplicated=true;break}}if(duplicated){if(index===i){colorIndex=j;break}}else
{tmpRanges.push(range);if(index===i){colorIndex=tmpRanges.length-1;break}}}var colors=FormulaTextBox.DEFAULT_RANGE_COLORS;return colors[colorIndex%colors.length]};FormulaTextBox.prototype.canAppendRange=function(){if(this._isAppending){return true}var activeToken=this._getToken(this.caret());if(activeToken){var tokenType=activeToken.type,tokenText=activeToken.text;return(tokenType===TokenType.FormulaStart||tokenType===TokenType.ArgumentSeparator||(tokenType===TokenType.Operator&&tokenText!=="%")||tokenType===TokenType.ParenOpen||tokenType===TokenType.ArrayArgumentSeparator||tokenType===TokenType.Whitespace)}return false};FormulaTextBox.prototype.isAppending=function(){return this._isAppending};FormulaTextBox.prototype.isAppendingRange=function(paramRange){if(!paramRange||!this._isAppending){return false}var appendingStart=this._appendingStart,appendingEnd=this.caret(),rangeStringOffset=paramRange.textOffset;if(appendingStart<=rangeStringOffset&&rangeStringOffset<appendingEnd){return true}return false};FormulaTextBox.prototype.getAppendingRanges=function(){var ret=[];var ranges=this.getRanges(),count=ranges.length,range;if(count>0){for(var i=0;i<count;i++){range=ranges[i];if(this.isAppendingRange(range)){ret.push(range)}}}return ret};FormulaTextBox.prototype.appendRange=function(rangeString,replacing,clearPrevAppending){var self=this,host=self._host;if(!rangeString||!host){return}if(!self._isAppending){if(!self.canAppendRange()){return}replacing=false;self._isAppending=true;self._appendingStart=self.caret();self._trigger(EVENT_APPENDSTARTED,{})}var appendingStart=self._appendingStart,text=self.text(),caretPosition=self.caret();var caretNewPosition=caretPosition;if(clearPrevAppending){replacing=false;text=text.substr(0,appendingStart)+text.substr(caretPosition);self._tokens=Tokenizer.parse(text);caretPosition=appendingStart;caretNewPosition=caretPosition}var activeToken=self._getToken(caretPosition);if(replacing){var prevText=text.substr(0,caretPosition);prevText=prevText.substr(0,prevText.length-activeToken.text.length);if(prevText.length>=appendingStart){activeToken.text=rangeString;caretNewPosition=prevText.length+rangeString.length}}else
{var tokens=self._tokens,activeTokenIndex=tokens.indexOf(activeToken);if(caretPosition>appendingStart){tokens.splice(activeTokenIndex+1,0,{text:',',type:TokenType.ArgumentSeparator});tokens.splice(activeTokenIndex+2,0,{text:rangeString,type:TokenType.Range});rangeString=","+rangeString}else
{tokens.splice(activeTokenIndex+1,0,{text:rangeString,type:TokenType.Range})}caretNewPosition=caretPosition+rangeString.length}self._updateHostValue();self._trigger(EVENT_TEXTCHANGED,{});self.caret(caretNewPosition)};FormulaTextBox.prototype.stopAppending=function(){var self=this;if(self._isAppending){self._isAppending=false;self._appendingStart=-1;self._trigger(EVENT_APPENDENDED,{})}};FormulaTextBox.prototype.repalceRange=function(rangeIndex,rangeString){var self=this,host=self._host;if(!host||rangeIndex<0||!rangeString){return}var replaced=false,tmpText="";var tokens=self._tokens,tokenCount=(tokens&&tokens.length),token,index=0;for(var i=0;i<tokenCount;i++){token=tokens[i];if(token.type===TokenType.Range){if(index++===rangeIndex){tokens[i]={text:rangeString,type:TokenType.Range};replaced=true;break}}tmpText+=token.text}if(replaced){self._updateHostValue();self._trigger(EVENT_TEXTCHANGED,{});self.caret(tmpText.length+rangeString.length)}};FormulaTextBox.prototype._attachSpread=function(spread){if(!spread){return}var self=this;if(self._spread){self._detachSpread()}var host=self._host;if(spread&&host){self._spread=spread;var Events=wijmo.spread.Events;host.setAttribute("gcUIElement","gcAttachedFormulaTextBox");spread._attachedFormulaTextBox=self;spread.bind(Events.EditStarted,self,self._onSpreadEditStarted);spread.bind(Events.EnterCell,self,self._onSpreadEnterCell);spread.bind(Events.EditEnded,self,self._onSpreadEditEnded);spread.bind(Events.ActiveSheetChanged,self,self._onSpreadActiveSheetChanged);spread.bind(Events.RangeChanged,self,self._onSpreadRangeChanged);spread.bind("FormulaTextBoxTextChanged",self,self._onSpreadFormulaTextBoxTextChanged);spread.bind("FormulaTextBoxCaretChanged",self,self._onSpreadFormulaTextBoxCaretChanged);var sheet=spread.getActiveSheet();if(sheet){self.text(self._getEditText(sheet,sheet._activeRowIndex,sheet._activeColIndex))}self._bind(EVENT_TEXTCHANGED,self,self._onFormulaTextBoxTextChanged);self._bind(EVENT_CARETCHANGED,self,self._onFormulaTextBoxCaretChanged)}};FormulaTextBox.prototype._detachSpread=function(){var self=this,spread=self._spread;if(spread){var Events=wijmo.spread.Events;spread._attachedFormulaTextBox=null;spread.unbind(Events.EditStarted,self._onSpreadEditStarted);spread.unbind(Events.EnterCell,self._onSpreadEnterCell);spread.unbind(Events.EditEnded,self,self._onSpreadEditEnded);spread.unbind(Events.ActiveSheetChanged,self,self._onSpreadActiveSheetChanged);spread.unbind(Events.RangeChanged,self,self._onSpreadRangeChanged);spread.unbind("FormulaTextBoxTextChanged",self._onSpreadFormulaTextBoxTextChanged);spread.unbind("FormulaTextBoxCaretChanged",self._onSpreadFormulaTextBoxCaretChanged);self._unbind(EVENT_TEXTCHANGED,self._onFormulaTextBoxTextChanged);self._unbind(EVENT_CARETCHANGED,self._onFormulaTextBoxCaretChanged);self.text("")}self._spread=null};FormulaTextBox.prototype._startingSpreadEdit=function(){var self=this;if(self._isWorking){return}self._isWorking=true;var spread=this._spread;var sheet=(spread&&spread.getActiveSheet());if(sheet&&!sheet.isEditing()){sheet._startEditImp(null,sheet._activeRowIndex,sheet._activeColIndex,null,null,false,null);self._spreadEditStarting=true}else
{self._spreadEditStarting=false}self._isWorking=false};FormulaTextBox.prototype._startSpreadEdit=function(){var self=this;var spread=self._spread;var sheet=(spread&&spread.getActiveSheet());if(!sheet){return}if(self._spreadEditStarting){var fbx=sheet._formulaTextBox,fbxText=fbx.text(),selfText=self.text();if(selfText!==fbxText){var caret=self.caret();var formulaInfo=sheet.getFormulaInformation(sheet.getActiveRowIndex(),sheet.getActiveColumnIndex());self.text(fbxText);if(formulaInfo.isArrayFormula){if(caret>=selfText.length){caret=caret-1}caret=Math_max(0,caret-1)}self.caret(caret)}}var EditorStatus=wijmo.spread.EditorStatus,oldStatus=sheet._editorStatus;if(oldStatus!==2){sheet._editorStatus=2;sheet._trigger("EditorStatusChanged",{sheet:sheet,sheetName:sheet._name,oldStatus:oldStatus,newStatus:2})}};FormulaTextBox.prototype._getEditText=function(sheet,row,col){var text="";if(sheet){var formulaInfo=sheet.getFormulaInformation(row,col);if(formulaInfo&&formulaInfo.hasFormula){text="="+formulaInfo.formula;if(formulaInfo.isArrayFormula){text="{"+text+"}"}}else
{text=sheet.getText(row,col);var canUserEditFormula=sheet.parent?sheet.parent.canUserEditFormula():true;if(text[0]==="="&&canUserEditFormula){text="'"+text}}}return text};FormulaTextBox.prototype._onSpreadActiveSheetChanged=function(e,eData){var self=e.data;if(self._isWorking){return}self._isWorking=true;self.close();if(eData){var sheet=eData.newSheet;self.text(self._getEditText(sheet,sheet._activeRowIndex,sheet._activeColIndex))}self._isWorking=false};FormulaTextBox.prototype._onSpreadEditStarted=function(e,eData){var self=e.data;if(self._isWorking){return}var spread=self._spread;var sheet=(spread&&spread.getActiveSheet());var fbx=(sheet&&sheet._formulaTextBox);if(!fbx){return}self._isWorking=true;self.text(fbx.text());self._isWorking=false};FormulaTextBox.prototype._onSpreadEnterCell=function(e,eData){var self=e.data;if(self._isWorking){return}self._isWorking=true;if(eData){self.text(self._getEditText(eData.sheet,eData.row,eData.col))}self._isWorking=false};FormulaTextBox.prototype._onSpreadRangeChanged=function(e,eData){var self=e.data;if(self._isWorking){return}self._isWorking=true;if(eData){var sheet=eData.sheet,row=eData.row,col=eData.column,rowCount=eData.rowCount,colCount=eData.columnCount;if(new wijmo.spread.Range(row,col,rowCount,colCount).contains(sheet._activeRowIndex,sheet._activeColIndex)){self.text(self._getEditText(sheet,row,col))}}self._isWorking=false};FormulaTextBox.prototype._onSpreadEditEnded=function(e,eData){var self=e.data;if(self._isWorking){return}self._isWorking=true;self.close();if(eData){self.text(self._getEditText(eData.sheet,eData.row,eData.col))}self._isWorking=false};FormulaTextBox.prototype._onSpreadFormulaTextBoxTextChanged=function(e,eData){var self=e.data;if(self._isWorking){return}self._isWorking=true;if(eData){var caret=self.caret();self.text(eData.text);self.caret(caret)}self._isWorking=false};FormulaTextBox.prototype._onSpreadFormulaTextBoxCaretChanged=function(e,eData){var self=e.data;if(self._isWorking){return}self._isWorking=true;if(eData){self.caret(eData.caret)}self._isWorking=false};FormulaTextBox.prototype._onFormulaTextBoxTextChanged=function(e){var self=e.data;if(self._isWorking){return}var spread=self._spread,sheet=(spread&&spread.getActiveSheet());if(!sheet){return}self._isWorking=true;var fbx=sheet._formulaTextBox;if(fbx){var caret=fbx.caret();fbx.text(self.text());fbx.caret(caret)}self._isWorking=false};FormulaTextBox.prototype._onFormulaTextBoxCaretChanged=function(e){var self=e.data;if(self._isWorking){return}var spread=self._spread,sheet=(spread&&spread.getActiveSheet());if(!sheet||!sheet.isEditing()){return}self._isWorking=true;var fbx=sheet._formulaTextBox;if(fbx){fbx.caret(self.caret());self._openFuncHelp()}self._isWorking=false};FormulaTextBox.prototype._init=function(){var self=this;self._isImeInputting=false;self._isInputKey=false;self._isAppending=false;self._appendingStart=-1;self._funcs=[];self._autoComplete=true;self._showHelp=true;self._autoClose=true;var funcsPopup=document.createElement("div");funcsPopup.className="gcsj-func-ac-popup";funcsPopup.style.display="none";funcsPopup.setAttribute("gcUIElement","gcFuncACPopup");document.body.insertBefore(funcsPopup,keyword_null);self._funcsPopup=funcsPopup;self._isFuncsShown=false;var funcHelpPopup=document.createElement("div");funcHelpPopup.className="gcsj-func-help-popup";funcHelpPopup.style.display="none";funcHelpPopup.setAttribute("gcUIElement","gcFuncHelpPopup");document.body.insertBefore(funcHelpPopup,keyword_null);self._funcHelpPopup=funcHelpPopup;self._isFuncHelpShown=false;$(funcsPopup).mouseenter(function(){self._autoClose=false}).mouseleave(function(){self._autoClose=true});$(funcHelpPopup).mouseenter(function(){self._autoClose=false}).mouseleave(function(){self._autoClose=true})};FormulaTextBox.prototype._attachHost=function(host){if(!host){return}var self=this;if(!self._isInputElement(host)&&!self._isEditableElement(host)){return}var $host=$(host);if(self._host){self._detachHost()}self._host=host;self._tokens=Tokenizer.parse(self.text());var editableHost=self._isEditableElement(host);if(editableHost){self._colorText(self._tokens)}if($.browser&&$.browser.msie){var lessIE10=(parseInt($.browser.version,10)<10);if(editableHost||lessIE10){self._bind("focus",function(){$host.data("text-before",self.text())});self._bind("input keydown keyup cut paste",function(){self._checkInput()})}else
{self._bind("input",function(){self._onInput()})}}else
{self._bind("input",function(){self._onInput()})}self._bind("keydown",function(e){var ctrlKey=e.ctrlKey,shiftKey=e.shiftKey,altKey=e.altKey,metaKey=e.metaKey,modifyKey=ctrlKey||shiftKey||altKey||metaKey,keyCode=e.keyCode;self._isInputKey=false;if(!modifyKey&&self._isFuncsShown){if(keyCode===Keys.down){self._selectFunc(1);e.preventDefault();e.stopPropagation()}else if(keyCode===Keys.up){self._selectFunc(-1);e.preventDefault();e.stopPropagation()}else if(keyCode===Keys.tab){self._completeFunc();e.preventDefault();e.stopPropagation()}}if(keyCode===Keys.esc){self.close()}self._checkCaret(e)});self._bind("keyup",function(e){if(self._isInputKey&&$.browser&&$.browser.qtMode){var caretPosition=self.caret();if($host.data("caret-before")!==caretPosition){$host.data("caret-before",caretPosition);self._trigger(EVENT_CARETCHANGED,{});self._openFuncs();if(!self._isFuncsShown){self._openFuncHelp()}}}self._checkCaret(e)});self._bind("focus",function(e){self._checkCaret(e)});self._bind("blur",function(e){if(self._autoClose){self.close()}});self._bind("mousedown",function(e){self._startingSpreadEdit()});self._bind("mouseup",function(e){self._startSpreadEdit()});self._bind("click",function(e){if(self._isAppending){self.stopAppending()}var spread=self._spread,sheet=(spread&&spread.getActiveSheet());var fbx=(sheet&&sheet._formulaTextBox);if(fbx&&fbx.isAppending()){fbx.stopAppending()}self._checkCaret(e)});self._bind("compositionstart",function(e){self._isImeInputting=true});self._bind("compositionend",function(e){self._isImeInputting=false})};FormulaTextBox.prototype._detachHost=function(){var self=this,host=self._host;if(host){var $host=$(host);$host.removeData("text-before");$host.removeData("caret-before");self._unbindAll();self.unbindAll();self._host=keyword_null}};FormulaTextBox.prototype._checkInput=function(){var self=this,$host=$(self._host),text=self.text();if($host.data("text-before")!==text){$host.data("text-before",text);self._onInput()}};FormulaTextBox.prototype._checkCaret=function(e){var self=this;var keyCode=e.keyCode;var navKey=(keyCode===Keys.left||keyCode===Keys.right||keyCode===Keys.home||keyCode===Keys.end||keyCode===Keys.pdn||keyCode===Keys.pup||keyCode===Keys.tab||keyCode===Keys.enter);if(!self._autoComplete){navKey=(navKey||keyCode===Keys.up||keyCode===Keys.down)}var mouseClick=(typeof(e.button)!=='undefined');if(navKey||mouseClick){var host=self._host,$host=$(host),caretPosition=self._getCaret(host);if(caretPosition.start!==caretPosition.end){return}var caret=caretPosition.end;if($host.data("caret-before")!==caret){$host.data("caret-before",caret);self._trigger(EVENT_CARETCHANGED,{});self._openFuncHelp()}}};FormulaTextBox.prototype._onInput=function(){var self=this,host=self._host,$host=$(host);self._isInputKey=true;self._tokens=Tokenizer.parse(self.text());if(self._isEditableElement(host)){if(!self._isImeInputting){var caretPosition=self.caret();self._colorText(self._tokens);self._trigger(EVENT_TEXTCHANGED,{type:'input'});self.caret(caretPosition)}}else
{self._trigger(EVENT_TEXTCHANGED,{type:'input'})}var caretPosition=self.caret();if($host.data("caret-before")!==caretPosition){$host.data("caret-before",caretPosition);self._trigger(EVENT_CARETCHANGED,{})}self._openFuncs();if(!self._isFuncsShown){self._openFuncHelp()}};FormulaTextBox.prototype._updateHostValue=function(){var self=this,host=self._host,tokens=self._tokens;if(self._isInputElement(host)){var text="",tokenCount=(tokens&&tokens.length);for(var i=0;i<tokenCount;i++){text+=tokens[i].text}host.value=text}else if(self._isEditableElement(host)){self._colorText(tokens)}};FormulaTextBox.prototype._isInputElement=function(element){var tagName=(element&&element.tagName);return(tagName==="TEXTAREA"||tagName==="INPUT")};FormulaTextBox.prototype._isEditableElement=function(element){return(element&&element.tagName==="DIV"&&element.contentEditable==="true")};FormulaTextBox.prototype._isFormula=function(text){if(text&&text[0]==='='){return true}return false};FormulaTextBox.prototype._bind=function(type,data,fn){var host=this._host;if(host&&type){type=type.split(/\s+/).join(ns_formulatextbox_internal+" ");$(host).bind(type+ns_formulatextbox_internal,data,fn)}};FormulaTextBox.prototype._unbind=function(type,fn){var host=this._host;if(host&&type){type=type.split(/\s+/).join(ns_formulatextbox_internal+" ");$(host).unbind(type+ns_formulatextbox_internal,fn)}};FormulaTextBox.prototype._unbindAll=function(){var host=this._host;if(host){$(host).unbind(ns_formulatextbox_internal)}};FormulaTextBox.prototype._trigger=function(type,data){var host=this._host;if(host){$(host).trigger(type,data)}};FormulaTextBox.prototype._getToken=function(caretPosition){if(caretPosition<=0){return keyword_null}var tokens=this._tokens,tokenCount=(tokens&&tokens.length);if(tokenCount>0){var textIndex=0,token;for(var i=0;i<tokenCount;i++){token=tokens[i];textIndex+=token.text.length;if(textIndex>=caretPosition){return token}}}return keyword_null};FormulaTextBox.prototype._getFuncs=function(){var spread=this._spread;var sheet=(spread&&spread.getActiveSheet());var fbx=(sheet&&sheet._formulaTextBox);if(fbx){return fbx._funcs}else
{return this._funcs}};FormulaTextBox.prototype._getFuncsStartWith=function(startName){startName=startName.toUpperCase();var results=[];var funcs=this._getFuncs(),count=(funcs&&funcs.length),find=false,f;for(var i=0;i<count;i++){f=funcs[i];if(f.name.toUpperCase().indexOf(startName)===0){results.push(f);find=true}else if(find){break}}return results};FormulaTextBox.prototype._getActiveFuncInfo=function(){var caretPosition=this.caret(),tokens=this._tokens,tokenCount=(tokens&&tokens.length);var tmpTokens=[],textIndex=0,token;for(var i=0;i<tokenCount;i++){token=tokens[i];tmpTokens.push(token);if(token.type===TokenType.ParenClose){while(tmpTokens.length>0){if(tmpTokens.pop().type===TokenType.FunctionName){break}}}textIndex+=token.text.length;if(textIndex>=caretPosition){break}}if(tmpTokens.length>0){var activeParamterIndex=0;while(tmpTokens.length>0){token=tmpTokens.pop();if(token.type===TokenType.ArgumentSeparator){activeParamterIndex++}else if(token.type===TokenType.FunctionName){break}}if(token.type===TokenType.FunctionName){var funcName=token.text.toUpperCase();var funcs=this._getFuncs(),funcCount=(funcs&&funcs.length),func;for(var i=0;i<funcCount;i++){func=funcs[i];if(func.name.toUpperCase()===funcName){return{func:func,activeParamterIndex:activeParamterIndex}}}}}return keyword_null};FormulaTextBox.prototype._openFuncs=function(){var self=this;var token=self._getToken(self.caret()),tokenText=(token&&token.text),funcs;if(tokenText&&/[a-z_$]/i.test(tokenText[0])){funcs=self._getFuncsStartWith(tokenText)}var show=(self._autoComplete&&self._isFormula(self.text())&&funcs&&funcs.length>0&&!self._isAppending&&!self._isImeInputting);if(show){self._closeFuncHelp();var popupContent="";var count=funcs.length,func;for(var i=0;i<count;i++){func=funcs[i];popupContent+="<div class='gcsj-func-ac-row'>"+"<div class='gcsj-func-ac-row-name'>"+func.name.toUpperCase()+"</div>"+"<div class='gcsj-func-ac-row-description'>"+(func.shortDescription||func.description)+"</div>"+"</div>"}var $funcsPopup=$(self._funcsPopup);$funcsPopup.html(popupContent).show();self._isFuncsShown=true;var $items=$funcsPopup.find(".gcsj-func-ac-row");if($items.length>0){var activeClassName='gcsj-ac-row-active';$($items[0]).addClass(activeClassName);$items.hover(function(){$items.removeClass(activeClassName);$(this).addClass(activeClassName)});$items.click(function(){self._completeFunc()})}self.position()}else
{self._closeFuncs()}};FormulaTextBox.prototype._closeFuncs=function(){$(this._funcsPopup).hide();this._isFuncsShown=false};FormulaTextBox.prototype._selectFunc=function(step){var $items=$(this._funcsPopup).find(".gcsj-func-ac-row"),count=$items.length;if(count===0){return}var activeClassName='gcsj-ac-row-active';var newIndex=0;if(step){for(var i=0;i<count;i++){if($($items[i]).hasClass(activeClassName)){newIndex=i+step;break}}}$items.removeClass(activeClassName);newIndex=Math_max(newIndex,0);newIndex=Math_min(newIndex,count-1);$($items[newIndex]).addClass(activeClassName)};FormulaTextBox.prototype._completeFunc=function(){var self=this;var funcName=$(self._funcsPopup).find(".gcsj-ac-row-active .gcsj-func-ac-row-name").text();if(!funcName){return}var caretPosition=self.caret(),tokens=self._tokens,tokenCount=(tokens&&tokens.length);var tokenTextIndex=0,tokenTextLength=0,tokenIndex=0,token=keyword_null;while(tokenIndex<tokenCount){token=tokens[tokenIndex];tokenTextLength=token.text.length;if(tokenTextIndex+tokenTextLength>=caretPosition){break}tokenIndex++;tokenTextIndex+=tokenTextLength}token.text=funcName;token.type=TokenType.FunctionName;var nextTokenIndex=tokenIndex+1,nextToken=tokens[nextTokenIndex];if(!nextToken||nextToken.type!==TokenType.ParenOpen){tokens.splice(nextTokenIndex,0,{text:'(',type:TokenType.ParenOpen})}self._closeFuncs();self._host.focus();self._updateHostValue();self._trigger(EVENT_TEXTCHANGED,{});self.caret(tokenTextIndex+funcName.length+1);self._openFuncHelp()};FormulaTextBox.prototype._openFuncHelp=function(){var self=this;if(self._isFuncsShown){self._closeFuncs()}var activeFuncInfo=self._getActiveFuncInfo();var show=(self._showHelp&&self._isFormula(self.text())&&activeFuncInfo&&!self._isAppending&&!self._isImeInputting);if(show){var func=activeFuncInfo.func;var paramters=func.parameters,paramterCount=(paramters&¶mters.length),activeParamterIndex=Math_min(paramterCount-1,activeFuncInfo.activeParamterIndex),paramter;var helpParamters="";for(var i=0;i<paramterCount;i++){paramter=paramters[i];var p=paramter.name;if(paramter.repeatable){p+=",..."}if(paramter.optional){p="["+p+"]"}var paramterSeparator=(i===paramterCount-1?"":", ");if(i===activeParamterIndex){p="<span class='gcsj-func-help-paramter gcsj-func-help-paramter-active'>"+p+"</span>"+paramterSeparator}else
{p="<span class='gcsj-func-help-paramter'>"+p+"</span>"+paramterSeparator}helpParamters+=p}var helpTitle="<div class='gcsj-func-help-title'>"+"<div class='gcsj-func-help-formula'>"+"<span class='gcsj-func-help-formula-name'>"+func.name.toUpperCase()+"</span>"+"<span class='gcsj-func-help-paramter-paren'>(</span>"+helpParamters+"<span class='gcsj-func-help-paramter-paren'>)</span>"+"</div>"+"</div>";var helpSummary="<div class='gcsj-func-help-section'>"+"<div class='gcsj-func-help-section-title'>"+_spread.SR.Fbx_Summary+"</div>"+"<div class='gcsj-func-help-section-content'>"+func.description+"</div>"+"</div>";var helpContent="<div class='gcsj-func-help-section-content'>"+helpSummary+"</div>";var helpBody="<div class='gcsj-func-help-body'>"+helpContent+"</div>";var popupContent=helpTitle+helpBody;$(self._funcHelpPopup).html(popupContent).show();self._isFuncHelpShown=true;self.position()}else
{self._closeFuncHelp()}};FormulaTextBox.prototype._closeFuncHelp=function(){$(this._funcHelpPopup).hide();this._isFuncHelpShown=false};FormulaTextBox.prototype.close=function(){this._closeFuncs();this._closeFuncHelp()};FormulaTextBox.prototype.isReservedKey=function(e){if(this._isAppending){return false}var modifyKey=e.ctrlKey||e.shiftKey||e.altKey||e.metaKey,keyCode=e.keyCode;if(this._isFuncsShown&&!modifyKey&&(keyCode===Keys.down||keyCode===Keys.up||keyCode===Keys.tab)){return true}return false};FormulaTextBox.prototype.position=function(){var self=this;var popup=keyword_null;if(self._isFuncsShown){popup=self._funcsPopup}else if(self._isFuncHelpShown){popup=self._funcHelpPopup}if(!popup){return}var $host=$(self._host),$popup=$(popup);var offset=$host.offset();var inputBottom=offset.top+$host.outerHeight();var position={top:inputBottom,left:offset.left};var totalHeight=$(window).outerHeight();var popupHeight=$popup.outerHeight();var bottomIfDown=inputBottom+popupHeight;if(bottomIfDown>totalHeight){var topIfUp=offset.top-popupHeight;if(topIfUp>=0){position.top=topIfUp}}$popup.css(position)};FormulaTextBox.prototype._colorText=function(tokens){var self=this;var htmlContent="",tokensText="";var tokenCount=(tokens&&tokens.length),rangeIndex=0,token;for(var i=0;i<tokenCount;i++){token=tokens[i];var style="";if(token.type===TokenType.Range){style=" style='color: "+self.getRangeColor(rangeIndex++)+"'"}htmlContent+="<span"+style+" class='gcsj-func-color-text'>"+token.text+"</span>";tokensText+=token.text}if(!tokensText&&!self.text()){return}var host=self._host;if(htmlContent){host.innerHTML="<span class='gcsj-func-color-content'>"+htmlContent+"</span>"}else
{while(host.firstChild){host.removeChild(host.firstChild)}}};FormulaTextBox.prototype._getColorNode=function(element,position){var $nodes=$(element).find('.gcsj-func-color-content .gcsj-func-color-text'),nodeCount=$nodes.length;if(nodeCount>0){position=Math_max(0,position);var node,text;for(var i=0;i<nodeCount;i++){node=$nodes[i];text=node.textContent;position-=text.length;if(position<=0){return{node:node,offset:text.length+position}}}return{node:node,offset:text.length}}return keyword_null};FormulaTextBox.DEFAULT_RANGE_COLORS=["#0000ff","#008000","#9900cc","#800000","#00cc33","#cc6600","#cc0099"];return FormulaTextBox})();_spread.FormulaTextBox=FormulaTextBox;var TokenType={FormulaStart:1,FunctionName:2,BraceOpen:3,BraceClose:4,ParenOpen:5,ParenClose:6,Operator:7,ArgumentSeparator:8,ArrayArgumentSeparator:9,ArrayGroupSeparator:10,Range:11,Boolean:12,Number:13,String:14,Whitespace:15,Error:16,Literal:17};var Tokenizer={rNumber:/^(\+|-)?((\d\d*\,?\d*)|(\d*\,?\d\d*))$/,rBoolean:/^(TRUE|FALSE)$/i,rRangeA1:/^(.*!)?((\$?[a-z]+\$?\d+(\s*:\s*\$?[a-z]+\$?\d+)?)|(\$?[a-z]+\s*:\s*\$?[a-z]+)|(\$?\d+\s*:\s*\$?\d+)|(\$?[a-z]+\$?\d+\s*:\s*\$?\d+)|(\$?\d+\s*:\s*\$?[a-z]+\$?\d+)|(\$?[a-z]+\$?\d+\s*:\s*\$?[a-z]+)|(\$?[a-z]+\s*:\s*\$?[a-z]+\$?\d+))$/i,rRangeR1C1:/^(.*!)?((R\[?[-+]?\d*\]?C\[?[-+]?\d*\]?\s*(:\s*R\[?[-+]?\d*\]?C\[?[-+]?\d*\]?)?)|(R\[?[-+]?\d*\]?\s*(:\s*R\[?[-+]?\d*\]?)?)|(C\[?[-+]?\d*\]?\s*(:\s*C\[?[-+]?\d*\]?)?)|(R\[?[-+]?\d*\]?C\[?[-+]?\d*\]?\s*(:\s*C\[?[-+]?\d*\]?)?)|(C\[?[-+]?\d*\]?\s*(:\s*R\[?[-+]?\d*\]?C\[?[-+]?\d*\]?))?|(R\[?[-+]?\d*\]?C\[?\[-+]?d*\]?\s*(:\s*R\[?[-+]?\d*\]?))?|(R\[?[-+]?\d*\]?\s*(:\s*R\[?[-+]?\d*\]?C\[?[-+]?\d*\]?))?)$/i,calcErrors:"#DIV/0! #N/A #NAME? #NULL! #NUM! #REF! #VALUE!".split(" "),parse:function(formula){var tokens=[],self=this;if(formula&&formula[0]!=='='){self.addToken(tokens,formula,TokenType.Literal);return tokens}var fLength=(formula&&formula.length),inBraceRef=0,ch,tokenTxt="";for(var index=0;index<fLength;index++){ch=formula[index];switch(ch){case"'":tokenTxt=self.addToken(tokens,tokenTxt);var inQuote=true;do
{tokenTxt+=ch;ch=formula[++index];if(ch==="'"&&formula[index+1]==="'"){tokenTxt+=ch;ch=formula[++index]}else
{inQuote=(ch!=="'")}}while(inQuote&&index<fLength-1);if(ch!==keyword_undefined){tokenTxt+=ch}break;case'"':tokenTxt=self.addToken(tokens,tokenTxt);var inQuote=true;do
{tokenTxt+=ch;ch=formula[++index];if(ch==='"'&&formula[index+1]==='"'){tokenTxt+=ch;ch=formula[++index]}else
{inQuote=(ch!=='"')}}while(inQuote&&index<fLength-1);if(ch!==keyword_undefined){tokenTxt+=ch}tokenTxt=self.addToken(tokens,tokenTxt,TokenType.String);break;case"\\":self.addToken(tokens,tokenTxt);tokenTxt=self.addToken(tokens,ch,TokenType.ArrayArgumentSeparator);break;case",":self.addToken(tokens,tokenTxt);tokenTxt=self.addToken(tokens,ch,(inBraceRef>0?TokenType.ArrayArgumentSeparator:TokenType.ArgumentSeparator));break;case";":self.addToken(tokens,tokenTxt);tokenTxt=self.addToken(tokens,ch,TokenType.ArrayGroupSeparator);break;case"{":self.addToken(tokens,tokenTxt);tokenTxt=self.addToken(tokens,ch,TokenType.BraceOpen);inBraceRef++;break;case"}":self.addToken(tokens,tokenTxt);tokenTxt=self.addToken(tokens,ch,TokenType.BraceClose);inBraceRef--;break;case"(":self.addToken(tokens,tokenTxt,TokenType.FunctionName);tokenTxt=self.addToken(tokens,ch,TokenType.ParenOpen);break;case")":self.addToken(tokens,tokenTxt);tokenTxt=self.addToken(tokens,ch,TokenType.ParenClose);break;case"=":self.addToken(tokens,tokenTxt);if(index===0){tokenTxt=self.addToken(tokens,ch,TokenType.FormulaStart)}else
{tokenTxt=self.addToken(tokens,ch,TokenType.Operator)}break;case"/":var val=tokenTxt.toUpperCase(),nextCh=(index+1<fLength?formula[index+1]:""),nextNextCh=(index+2<fLength?formula[index+2]:"");if((val==="#DIV"&&nextCh==="0"&&nextNextCh==="!")||(val==="#N"&&nextCh.toUpperCase()==="A")){tokenTxt+=ch+nextCh;index++;if("#DIV"===tokenTxt){tokenTxt+=nextNextCh;index++}tokenTxt=self.addToken(tokens,tokenTxt)}else
{self.addToken(tokens,tokenTxt);tokenTxt=self.addToken(tokens,ch,TokenType.Operator)}break;case"+":case"-":var nowText=tokenTxt.replace(/\s/g,"").toUpperCase(),findIndex=Math_max(0,nowText.length-2);if(nowText.lastIndexOf("R[")>=findIndex||nowText.lastIndexOf("C[")>=findIndex){tokenTxt+=ch}else
{self.addToken(tokens,tokenTxt);tokenTxt=self.addToken(tokens,ch,TokenType.Operator)}break;case"&":case"^":case"*":case"%":self.addToken(tokens,tokenTxt);tokenTxt=self.addToken(tokens,ch,TokenType.Operator);break;case"<":case">":tokenTxt=self.addToken(tokens,tokenTxt);tokenTxt+=ch;var nextCh=(index+1<fLength?formula[index+1]:"");if(nextCh==="="||(ch==="<"&&nextCh===">")){tokenTxt+=nextCh;index++}tokenTxt=self.addToken(tokens,tokenTxt,TokenType.Operator);break;case" ":case"\u00a0":case"\r":case"\n":case"\t":tokenTxt=self.addToken(tokens,tokenTxt);tokenTxt+=ch;while(index<fLength-1&&/^[\s]*$/.test(formula[index+1])){tokenTxt+=formula[++index]}tokenTxt=self.addToken(tokens,tokenTxt,TokenType.Whitespace);break;default:tokenTxt+=ch;break}}self.addToken(tokens,tokenTxt);return tokens},addToken:function(tokens,tokenText,tokenType){var self=this;if(tokenText){if(typeof(tokenType)==='undefined'){if(self.calcErrors.indexOf(tokenText.toUpperCase())>-1){tokenType=TokenType.Error}else if(self.rNumber.test(tokenText)){tokenType=TokenType.Number}else if(self.rBoolean.test(tokenText)){tokenType=TokenType.Boolean}else if(self.rRangeA1.test(tokenText)||self.rRangeR1C1.test(tokenText)){tokenType=TokenType.Range}else
{tokenType=TokenType.Literal}}var isJoinType=function(t){return(t===TokenType.Range||t===TokenType.Literal||t===TokenType.Number)};if(isJoinType(tokenType)){var tokenCount=tokens.length,tk,tkType,tkText,index,joinText="";for(index=tokenCount-1;index>=0;index--){tk=tokens[index];tkType=tk.type;tkText=tk.text;joinText=tkText+joinText;if(tkType!==TokenType.Whitespace&&tkText!==":"){break}}var rangeText;if(isJoinType(tkType)){joinText+=tokenText;rangeText=joinText[joinText.length-1]===":"?joinText.substr(0,joinText.length-1):joinText;rangeText=rangeText.trim();if(self.rRangeA1.test(rangeText)||self.rRangeR1C1.test(rangeText)){tokens.splice(index);tokenText=joinText;tokenType=TokenType.Range}}else if(tokenText[tokenText.length-1]===":"){rangeText=tokenText.substr(0,tokenText.length-1);if(self.rRangeA1.test(rangeText)||self.rRangeR1C1.test(rangeText)){tokenType=TokenType.Range}}}tokens.push({text:tokenText,type:tokenType})}return""}}})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}));var wijmo;(function(wijmo){(function(spread){spread.feature("formulatextbox_resource");var FormulaTextBoxResource_EN=(function(){function FormulaTextBoxResource_EN(){}FormulaTextBoxResource_EN.Functions=[{name:"ABS",description:"This function calculates the absolute value of the specified value.",parameters:[{name:"value"}]},{name:"ACCRINT",description:"This function calculates the accrued interest for a security that pays periodic interest.",parameters:[{name:"issue"},{name:"first"},{name:"settle"},{name:"rate"},{name:"par"},{name:"frequency"},{name:"basis"}]},{name:"ACCRINTM",description:"This function calculates the accrued interest at maturity for a security that pays periodic interest.",parameters:[{name:"issue"},{name:"maturity"},{name:"rate"},{name:"par"},{name:"basis"}]},{name:"ACOS",description:"This function calculates the arccosine, that is, the angle whose cosine is the specified value.",parameters:[{name:"value"}]},{name:"ACOSH",description:"This function calculates the inverse hyperbolic cosine of the specified value.",parameters:[{name:"value"}]},{name:"ADDRESS",description:"This function uses the row and column numbers to create a cell address in text.",parameters:[{name:"row"},{name:"column"},{name:"absnum"},{name:"a1style"},{name:"sheettext"}]},{name:"AMORDEGRC",description:"This function returns the depreciation for an accounting period, taking into consideration prorated depreciation, and applies a depreciation coefficient in the calculation based on the life of the assets.",parameters:[{name:"cost"},{name:"datepurchased"},{name:"firstperiod"},{name:"salvage"},{name:"period"},{name:"drate"},{name:"basis"}]},{name:"AMORLINC",description:"This function calculates the depreciation for an accounting period, taking into account prorated depreciation.",parameters:[{name:"cost"},{name:"datepurchased"},{name:"firstperiod"},{name:"salvage"},{name:"period"},{name:"drate"},{name:"basis"}]},{name:"AND",description:"Check whether all argumengts are True,and returns True if all argements are True.",parameters:[{name:"logical1"},{name:"logical2"}]},{name:"ASIN",description:"This function calculates the arcsine, that is, the angle whose sine is the specified value.",parameters:[{name:"value"}]},{name:"ASINH",description:"This function calculates the inverse hyperbolic sine of a number.",parameters:[{name:"value"}]},{name:"ATAN",description:"This function calculates the arctangent, that is, the angle whose tangent is the specified value.",parameters:[{name:"value"}]},{name:"ATAN2",description:"This function calculates the arctangent of the specified x- and y-coordinates.",parameters:[{name:"x"},{name:"y"}]},{name:"ATANH",description:"This function calculates the inverse hyperbolic tangent of a number.",parameters:[{name:"value"}]},{name:"AVEDEV",description:"This function calculates the average of the absolute deviations of the specified values from their mean.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"AVERAGE",description:"This function calculates the average of the specified numeric values.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"AVERAGEA",description:"This function calculates the average of the specified values, including text or logical values as well as numeric values.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"AVERAGEIF",description:"This function calculates the average of the specified numeric values provided that they meet the specified criteria.",parameters:[{name:"value1"},{name:"value2",repeatable:true},{name:"condition"}]},{name:"AVERAGEIFS",description:"This function calculates the average of all cells that meet multiple specified criteria.",parameters:[{name:"value1"},{name:"condition1"},{name:"value2",repeatable:true},{name:"condition2..."}]},{name:"BESSELI",description:"This function calculates the modified Bessel function of the first kind evaluated for purely imaginary arguments.",parameters:[{name:"value"},{name:"order"}]},{name:"BESSELJ",description:"This function calculates the Bessel function of the first kind.",parameters:[{name:"value"},{name:"order"}]},{name:"BESSELK",description:"This function calculates the modified Bessel function of the second kind evaluated for purely imaginary arguments.",parameters:[{name:"value"},{name:"order"}]},{name:"BESSELY",description:"This function calculates the Bessel function of the second kind.",parameters:[{name:"value"},{name:"order"}]},{name:"BETADIST",description:"This function calculates the cumulative beta distribution function.",parameters:[{name:"x"},{name:"alpha"},{name:"beta"},{name:"lower"},{name:"upper"}]},{name:"BETAINV",description:"This function calculates the inverse of the cumulative beta distribution function.",parameters:[{name:"prob"},{name:"alpha"},{name:"beta"},{name:"lower"},{name:"upper"}]},{name:"BIN2DEC",description:"This function converts a binary number to a decimal number",parameters:[{name:"number"}]},{name:"BIN2HEX",description:"This function converts a binary number to a hexadecimal number.",parameters:[{name:"number"},{name:"places"}]},{name:"BIN2OCT",description:"This function converts a binary number to an octal number.",parameters:[{name:"number"},{name:"places"}]},{name:"BINOMDIST",description:"This function calculates the individual term binomial distribution probability.",parameters:[{name:"x"},{name:"n"},{name:"p"},{name:"cumulative"}]},{name:"CEILING",description:"This function rounds a number up to the nearest multiple of a specified value.",parameters:[{name:"value"},{name:"signif"}]},{name:"CHAR",description:"This function returns the character specified by a number.",parameters:[{name:"value"}]},{name:"CHIDIST",description:"This function calculates the one-tailed probability of the chi-squared distribution.",parameters:[{name:"value"},{name:"deg"}]},{name:"CHIINV",description:"This function calculates the inverse of the one-tailed probability of the chi-squared distribution",parameters:[{name:"prob"},{name:"deg"}]},{name:"CHITEST",description:"This function calculates the test for independence from the chi-squared distribution.",parameters:[{name:"obs_array"},{name:"exp_array"}]},{name:"CHOOSE",description:"This function returns a value from a list of values.",parameters:[{name:"index"},{name:"value1"},{name:"value2",repeatable:true}]},{name:"CLEAN",description:"This function removes all non-printable characters from text.",parameters:[{name:"text"}]},{name:"CODE",description:"This function returns a numeric code to represent the first character in a text string. The returned code corresponds to the Windows character set (ANSI).",parameters:[{name:"text"}]},{name:"COLUMN",description:"This function returns the column number of a reference.",parameters:[{name:"reference"}]},{name:"COLUMNS",description:"This function returns the number of columns in an array.",parameters:[{name:"array"}]},{name:"COMBIN",description:"This function calculates the number of possible combinations for a specified number of items.",parameters:[{name:"k"},{name:"n"}]},{name:"COMPLEX",description:"This function converts real and imaginary coefficients into a complex number.",parameters:[{name:"realcoeff"},{name:"imagcoeff"},{name:"suffix"}]},{name:"CONCATENATE",description:"This function combines multiple text strings or numbers into one text string.",parameters:[{name:"text1"},{name:"text2"},{name:"...."}]},{name:"CONFIDENCE",description:"This function returns confidence interval for a population mean.",parameters:[{name:"alpha"},{name:"stdev"},{name:"size"}]},{name:"CONVERT",description:"This function converts a number from one measurement system to its equivalent in another measurement system.",parameters:[{name:"number"},{name:"from-unit"},{name:"to-unit"}]},{name:"CORREL",description:"This function returns the correlation coefficient of the two sets of data.",parameters:[{name:"array1"},{name:"array2"}]},{name:"COS",description:"This function returns the cosine of the specified angle.",parameters:[{name:"angle"}]},{name:"COSH",description:"This function returns the hyperbolic cosine of the specified value.",parameters:[{name:"value"}]},{name:"COUNT",description:"This function returns the number of cells that contain numbers.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"COUNTA",description:"This function returns the number of number of cells that contain numbers, text, or logical values.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"COUNTBLANK",description:"This function returns the number of empty (or blank) cells in a range of cells on a sheet.",parameters:[{name:"cellrange"}]},{name:"COUNTIF",description:"This function returns the number of cells that meet a certain condition",parameters:[{name:"cellrange"},{name:"condition"}]},{name:"COUNTIFS",description:"This function returns the number of cells that meet multiple conditions.",parameters:[{name:"cellrange"},{name:"condition"}]},{name:"COUPDAYBS",description:"This function calculates the number of days from the beginning of the coupon period to the settlement date.",parameters:[{name:"settlement"},{name:"maturity"},{name:"frequency"},{name:"basis"}]},{name:"COUPDAYS",description:"This function returns the number of days in the coupon period that contains the settlement date.",parameters:[{name:"settlement"},{name:"maturity"},{name:"frequency"},{name:"basis"}]},{name:"COUPDAYSNC",description:"This function calculates the number of days from the settlement date to the next coupon date.",parameters:[{name:"settlement"},{name:"maturity"},{name:"frequency"},{name:"basis"}]},{name:"COUPNCD",description:"This function returns a date number of the next coupon date after the settlement date.",parameters:[{name:"settlement"},{name:"maturity"},{name:"frequency"},{name:"basi"}]},{name:"COUPNUM",description:"This function returns the number of coupons due between the settlement date and maturity date.",parameters:[{name:"settlement"},{name:"maturity"},{name:"frequency"},{name:"basis"}]},{name:"COUPPCD",description:"This function returns a date number of the previous coupon date before the settlement date.",parameters:[{name:"settlement"},{name:"maturity"},{name:"frequency"},{name:"basis"}]},{name:"COVAR",description:"This function returns the covariance, which is the average of the products of deviations for each data point pair in two sets of numbers.",parameters:[{name:"array1"},{name:"array2"}]},{name:"CRITBINOM",description:"This function returns the criterion binomial, the smallest value for which the cumulative binomial distribution is greater than or equal to a criterion value.",parameters:[{name:"n"},{name:"p"},{name:"alpha"}]},{name:"CUMIPMT",description:"This function returns the cumulative interest paid on a loan between the starting and ending periods.",parameters:[{name:"rate"},{name:"nper"},{name:"pval"},{name:"startperiod"},{name:"endperiod"},{name:"paytype"}]},{name:"CUMPRINC",description:"This function returns the cumulative principal paid on a loan between the start and end periods.",parameters:[{name:"rate"},{name:"nper"},{name:"pval"},{name:"startperiod"},{name:"endperiod"},{name:"paytype"}]},{name:"DATE",description:"This function returns the DateTime object for a particular date, specified by the year, month, and day.",parameters:[{name:"year"},{name:"month"},{name:"day"}]},{name:"DATEDIF",description:"This function returns the number of days, months, or years between two dates.",parameters:[{name:"date1"},{name:"date2"},{name:"outputcode"}]},{name:"DATEVALUE",description:"This function returns a DateTime object of the specified date.",parameters:[{name:"date_string"}]},{name:"DAVERAGE",description:"This function calculates the average of values in a column of a list or database that match the specified conditions.",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DAY",description:"This function returns the day number of the month (integer 1 to 31) that corresponds to the specified date.",parameters:[{name:"date"}]},{name:"DAYS360",description:"This function returns the number of days between two dates based on a 360-day year.",parameters:[{name:"startdate"},{name:"enddate"},{name:"method"}]},{name:"DB",description:"This function calculates the depreciation of an asset for a specified period using the fixed\u2011declining balance method",parameters:[{name:"cost"},{name:"salvage"},{name:"life"},{name:"period"},{name:"month"}]},{name:"DCOUNT",description:"This function counts the cells that contain numbers in a column of a list or database that match the specified conditions",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DCOUNTA",description:"This function counts the non-blank cells in a column of a list or database that match the specified conditions",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DDB",description:"This function calculates the depreciation of an asset for a specified period using the double-declining balance method or another method you specify.",parameters:[{name:"cost"},{name:"salvage"},{name:"life"},{name:"period"},{name:"factor"}]},{name:"DEC2BIN",description:"This function converts a decimal number to a binary number.",parameters:[{name:"number"},{name:"places"}]},{name:"DEC2HEX",description:"This function converts a decimal number to a hexadecimal number",parameters:[{name:"number"},{name:"places"}]},{name:"DEC2OCT",description:"This function converts a decimal number to an octal number",parameters:[{name:"number"},{name:"places"}]},{name:"DEGREES",description:"This function converts the specified value from radians to degrees",parameters:[{name:"angle"}]},{name:"DELTA",description:"This function identifies whether two values are equal. Returns 1 if they are equal; returns 0 otherwise.",parameters:[{name:"value1"},{name:"value2"}]},{name:"DEVSQ",description:"This function calculates the sum of the squares of deviations of data points (or of an array of data points) from their sample mean.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"DGET",description:"This function extracts a single value from a column of a list or database that matches the specified conditions.",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DISC",description:"This function calculates the discount rate for a security.",parameters:[{name:"settle"},{name:"mature"},{name:"pricep"},{name:"redeem"},{name:"basis"}]},{name:"DMAX",description:"This function returns the largest number in a column of a list or database that matches the specified conditions.",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DMIN",description:"This function returns the smallest number in a column of a list or database that matches the specified conditions.",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DOLLAR",description:"This function converts a number to text using currency format, with the decimals rounded to the specified place.",parameters:[{name:"value"},{name:"digits"}]},{name:"DOLLARDE",description:"This function converts a fraction dollar price to a decimal dollar price.",parameters:[{name:"fractionaldollar"},{name:"fraction"}]},{name:"DOLLARFR",description:"This function converts a decimal number dollar price to a fraction dollar price.",parameters:[{name:"decimaldollar"},{name:"fraction"}]},{name:"DPRODUCT",description:"This function multiplies the values in a column of a list or database that match the specified conditions.",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DSTDEV",description:"This function estimates the standard deviation of a population based on a sample by using the numbers in a column of a list or database that match the specified conditions.",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DSTDEVP",description:"This function calculates the standard deviation of a population based on the entire population using the numbers in a column of a list or database that match the specified conditions.",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DSUM",description:"This function adds the numbers in a column of a list or database that match the specified conditions.",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DURATION",description:"This function returns the Macauley duration for an assumed par value of $100.",parameters:[{name:"settlement"},{name:"maturity"},{name:"coupon"},{name:"yield"},{name:"frequency"},{name:"basis"}]},{name:"DVAR",description:"This function estimates the variance of a population based on a sample by using the numbers in a column of a list or database that match the specified conditions.",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DVARP",description:"This function calculates the variance of a population based on the entire population by using the numbers in a column of a list or database that match the specified conditions.",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"EDATE",description:"This function calculates the date that is the indicated number of months before or after a specified date.",parameters:[{name:"startdate"},{name:"months"}]},{name:"EFFECT",description:"This function calculates the effective annual interest rate for a given nominal annual interest rate and the number of compounding periods per year.",parameters:[{name:"nomrate"},{name:"comper"}]},{name:"EOMONTH",description:"This function calculates the date for the last day of the month (end of month) that is the indicated number of months before or after the starting date.",parameters:[{name:"startdate"},{name:"months"}]},{name:"ERF",description:"This function calculates the error function integrated between a lower and an upper limit.",parameters:[{name:"limit"},{name:"upperlimit"}]},{name:"ERFC",description:"This function calculates the complementary error function integrated between a lower limit and infinity.",parameters:[{name:"lowerlimit"}]},{name:"ERROR.TYPE",description:"This function returns a number corresponding to one of the error values.",parameters:[{name:"errorvalue"}]},{name:"EURO",description:"This function returns the equivalent of one Euro based on the ISO currency code.",parameters:[{name:"code"}]},{name:"EUROCONVERT",description:"This function converts currency from a Euro member currency (including Euros) to another Euro member currency (including Euros).",parameters:[{name:"currency"},{name:"source"},{name:"target"},{name:"fullprecision"},{name:"triangulation"}]},{name:"EVEN",description:"This function rounds the specified value up to the nearest even integer.",parameters:[{name:"value"}]},{name:"EXACT",description:"This function returns true if two strings are the same; otherwise, false.",parameters:[{name:"text1"},{name:"text2"}]},{name:"EXP",description:"This function returns e raised to the power of the specified value.",parameters:[{name:"value"}]},{name:"EXPONDIST",description:"This function returns the exponential distribution or the probability density",parameters:[{name:"value"},{name:"lambda"},{name:"cumulative"}]},{name:"FACT",description:"This function calculates the factorial of the specified number.",parameters:[{name:"number"}]},{name:"FACTDOUBLE",description:"This function calculates the double factorial of the specified number.",parameters:[{name:"number"}]},{name:"FALSE",description:"This function returns the value for logical FALSE.",parameters:[]},{name:"FDIST",description:"This function calculates the F probability distribution, to see degrees of diversity between two sets of data.",parameters:[{name:"value"},{name:"degnum"},{name:"degden"}]},{name:"FIND",description:"This function finds one text value within another and returns the text value\u2019s position in the text you searched.",parameters:[{name:"findtext"},{name:"intext"},{name:"start"}]},{name:"FINV",description:"This function returns the inverse of the F probability distribution.",parameters:[{name:"p"},{name:"degnum"},{name:"degden"}]},{name:"FISHER",description:"This function returns the Fisher transformation for a specified value",parameters:[{name:"value"}]},{name:"FISHERINV",description:"This function returns the inverse of the Fisher transformation for a specified value.",parameters:[{name:"value"}]},{name:"FIXED",description:"This function rounds a number to the specified number of decimal places, formats the number in decimal format using a period and commas (if so specified), and returns the result as text.",parameters:[{name:"num"},{name:"digits"},{name:"notcomma"}]},{name:"FLOOR",description:"This function rounds a number down to the nearest multiple of a specified value.",parameters:[{name:"value"},{name:"signif"}]},{name:"FORECAST",description:"This function calculates a future value using existing values.",parameters:[{name:"value"},{name:"Yarray"},{name:"Xarray"}]},{name:"FREQUENCY",description:"This function calculates how often values occur within a range of values. This function returns a vertical array of numbers",parameters:[{name:"dataarray"},{name:"binarray"}]},{name:"FTEST",description:"This function returns the result of an F-test, which returns the one-tailed probability that the variances in two arrays are not significantly different.",parameters:[{name:"array1"},{name:"array2"}]},{name:"FV",description:"This function returns the future value of an investment based on a present value, periodic payments, and a specified interest rate.",parameters:[{name:"rate"},{name:"numper"},{name:"paymt"},{name:"pval"},{name:"type"}]},{name:"FVSCHEDULE",description:"This function returns the future value of an initial principal after applying a series of compound interest rates. Calculate future value of an investment with a variable or adjustable rate.",parameters:[{name:"principal"},{name:"schedule"}]},{name:"GAMMADIST",description:"This function returns the gamma distribution.",parameters:[{name:"x"},{name:"alpha"},{name:"beta"},{name:"cumulative"}]},{name:"GAMMAINV",description:"This function returns the inverse of the gamma cumulative distribution.",parameters:[{name:"p"},{name:"alpha"},{name:"beta"}]},{name:"GAMMALN",description:"This function returns the natural logarithm of the Gamma function, G(x).",parameters:[{name:"value"}]},{name:"GCD",description:"This function returns the greatest common divisor of two numbers.",parameters:[{name:"number1"},{name:"number2"}]},{name:"GEOMEAN",description:"This function returns the geometric mean of a set of positive data.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"GESTEP",description:"This function, greater than or equal to step, returns an indication of whether a number is equal to a threshold.",parameters:[{name:"number"},{name:"step"}]},{name:"GROWTH",description:"This function calculates predicted exponential growth. This function returns the y values for a series of new x values that are specified by using existing x and y values.",parameters:[{name:"y"},{name:"x"},{name:"newx"},{name:"constant"}]},{name:"HARMEAN",description:"This function returns the harmonic mean of a data set.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"HEX2BIN",description:"This function converts a hexadecimal number to a binary number.",parameters:[{name:"number"},{name:" places"}]},{name:"HEX2DEC",description:"This function converts a hexadecimal number to a decimal number.",parameters:[{name:"number"}]},{name:"HEX2OCT",description:"This function converts a hexadecimal number to an octal number.",parameters:[{name:"number"},{name:" places"}]},{name:"HLOOKUP",description:"This function searches for a value in the top row and then returns a value in the same column from a specified row.",parameters:[{name:"value"},{name:"array"},{name:"row"},{name:"approx"}]},{name:"HOUR",description:"This function returns the hour that corresponds to a specified time.",parameters:[{name:"time"}]},{name:"HYPGEOMDIST",description:"This function returns the hypergeometric distribution.",parameters:[{name:"x"},{name:"n"},{name:"M"},{name:"N"}]},{name:"IF",description:"This function performs a comparison and returns one of two provided values based on that comparison.",parameters:[{name:"valueTest"},{name:"valueTrue"},{name:"valueFalse"}]},{name:"IFERROR",description:"This function evaluates a formula and returns a value you provide if there is an error or the formula result.",parameters:[{name:"value"},{name:"error"}]},{name:"IMABS",description:"This function returns the absolute value or modulus of a complex number.",parameters:[{name:"complexnum"}]},{name:"IMAGINARY",description:"This function returns the imaginary coefficient of a complex number.",parameters:[{name:"complexnum"}]},{name:"IMARGUMENT",description:"This function returns the argument theta, which is an angle expressed in radians.",parameters:[{name:"complexnum"}]},{name:"IMCONJUGATE",description:"This function returns the complex conjugate of a complex number.",parameters:[{name:"complexnum"}]},{name:"IMCOS",description:"This function returns the cosine of a complex number.",parameters:[{name:"complexnum"}]},{name:"IMDIV",description:"This function returns the quotient of two complex numbers.",parameters:[{name:"complexnum"},{name:"complexdenom"}]},{name:"IMEXP",description:"This function returns the exponential of a complex number.",parameters:[{name:"complexnum"}]},{name:"IMLN",description:"This function returns the natural logarithm of a complex number.",parameters:[{name:"complexnum"}]},{name:"IMLOG2",description:"This function returns the base-2 logarithm of a complex number.",parameters:[{name:"complexnum"}]},{name:"IMLOG10",description:"This function returns the common logarithm of a complex number.",parameters:[{name:"complexnum"}]},{name:"IMPOWER",description:"This function returns a complex number raised to a power.",parameters:[{name:"complexnum"},{name:"powernum"}]},{name:"IMPRODUCT",description:"This function returns the product of up to 29 complex numbers in the x+yi or x+yj text format",parameters:[{name:"complexnum1"},{name:"complexnum2",repeatable:true}]},{name:"IMREAL",description:"This function returns the real coefficient of a complex number in the x+yi or x+yj text format.",parameters:[{name:"complexnum"}]},{name:"IMSIN",description:"This function returns the sine of a complex number in the x+yi or x+yj text format.",parameters:[{name:"complexnum"}]},{name:"IMSQRT",description:"This function returns the square root of a complex number in the x+yi or x+yj text format.",parameters:[{name:"complexnum"}]},{name:"IMSUB",description:"This function returns the difference of two complex numbers in the x+yi or x+yj text format.",parameters:[{name:"complexnum1"},{name:"complexnum2"}]},{name:"IMSUM",description:"This function returns the sum of two or more complex numbers in the x+yi or x+yj text format.",parameters:[{name:"complexnum1"},{name:"complexnum2",repeatable:true}]},{name:"INDEX",description:"This function returns a value or the reference to a value from within an array or range.",parameters:[{name:"return"},{name:"row"},{name:"col"},{name:"area"}]},{name:"INT",description:"This function rounds a specified number down to the nearest integer.",parameters:[{name:"value"}]},{name:"INTERCEPT",description:"This function returns the coordinates of a point at which a line intersects the y-axis, by using existing x values and y values.",parameters:[{name:"dependent"},{name:"independent"}]},{name:"INTRATE",description:"This function calculates the interest rate for a fully invested security.",parameters:[{name:"settle"},{name:"mature"},{name:"invest"},{name:"redeem"},{name:"basis"}]},{name:"IPMT",description:"This function calculates the payment of interest on a loan.",parameters:[{name:"rate"},{name:"per"},{name:"nper"},{name:"pval"},{name:"fval"},{name:"type"}]},{name:"IRR",description:"This function returns the internal rate of return for a series of cash flows represented by the numbers in an array.",parameters:[{name:"arrayvals"},{name:"estimate"}]},{name:"ISBLANK",description:"This function tests whether a value, an expression, or contents of a referenced cell is empty.",parameters:[{name:"cellreference"}]},{name:"ISERR",description:"This function, Is Error Other Than Not Available, tests whether a value, an expression, or contents of a referenced cell has an error other than not available (#N/A).",parameters:[{name:"cellreference"}]},{name:"ISERROR",description:"This function, Is Error of Any Kind, tests whether a value, an expression, or contents of a referenced cell has an error of any kind.",parameters:[{name:"cellreference"}]},{name:"ISEVEN",description:"This function, Is Number Even, tests whether a value, an expression, or contents of a referenced cell is even.",parameters:[{name:"cellreference"}]},{name:"ISLOGICAL",description:"This function tests whether a value, an expression, or contents of a referenced cell is a logical (Boolean) value.",parameters:[{name:"cellreference"}]},{name:"ISNA",description:"This function, Is Not Available, tests whether a value, an expression, or contents of a referenced cell has the not available (#N/A) error value.",parameters:[{name:"cellreference"}]},{name:"ISNONTEXT",description:"This function tests whether a value, an expression, or contents of a referenced cell has any data type other than text.",parameters:[{name:"cellreference"}]},{name:"ISNUMBER",description:"This function tests whether a value, an expression, or contents of a referenced cell has numeric data.",parameters:[{name:"cellreference"}]},{name:"ISODD",description:"This function, Is Number Odd, tests whether a value, an expression, or contents of a referenced cell has numeric data.",parameters:[{name:"cellreference"}]},{name:"ISPMT",description:"This function calculates the interest paid during a specific period of an investment.",parameters:[{name:"rate"},{name:"per"},{name:"nper"},{name:"pv"}]},{name:"ISREF",description:"This function, Is Reference, tests whether a value, an expression, or contents of a referenced cell is a reference to another cell.",parameters:[{name:"cellreference"}]},{name:"ISTEXT",description:"This function tests whether a value, an expression, or contents of a referenced cell has text data.",parameters:[{name:"cellreference"}]},{name:"KURT",description:"This function returns the kurtosis of a data set.",parameters:[{name:"value1"},{name:"value2"},{name:"value3"},{name:"value4",repeatable:true}]},{name:"LARGE",description:"This function returns the nth largest value in a data set, where n is specified.",parameters:[{name:"array"},{name:"n"}]},{name:"LCM",description:"This function returns the least common multiple of two numbers.",parameters:[{name:"number1"},{name:"number2"}]},{name:"LEFT",description:"This function returns the specified leftmost characters from a text value.",parameters:[{name:"mytext"},{name:"num_chars"}]},{name:"LEN",description:"This function returns the length of, the number of characters in, a text string.",parameters:[{name:"value"}]},{name:"LINEST",description:"This function calculates the statistics for a line.",parameters:[{name:"y"},{name:"x"},{name:"constant"},{name:"stats"}]},{name:"LN",description:"This function returns the natural logarithm of the specified number.",parameters:[{name:"value"}]},{name:"LOG",description:"This function returns the logarithm base Y of a number X.",parameters:[{name:"number"},{name:"base"}]},{name:"LOG10",description:"This function returns the logarithm base 10 of the number given.",parameters:[{name:"value"}]},{name:"LOGEST",description:"This function calculates an exponential curve that fits the data and returns an array of values that describes the curve.",parameters:[{name:"y"},{name:"x"},{name:"constant"},{name:"stats"}]},{name:"LOGINV",description:"This function returns the inverse of the lognormal cumulative distribution function of x, where LN(x) is normally distributed with the specified mean and standard deviation.",parameters:[{name:"prob"},{name:"mean"},{name:"stdev"}]},{name:"LOGNORMDIST",description:"This function returns the cumulative natural log normal distribution of x, where LN(x) is normally distributed with the specified mean and standard deviation. Analyze data that has been logarithmically transformed with this function.",parameters:[{name:"x"},{name:"mean"},{name:"stdev"}]},{name:"LOOKUP",description:"This function searches for a value and returns a value from the same location in a second area.",parameters:[{name:"lookupvalue"},{name:"lookupvector"},{name:"resultvector"}]},{name:"LOWER",description:"This function converts text to lower case letters.",parameters:[{name:"string"}]},{name:"MATCH",description:"This function returns the relative position of a specified item in a range.",parameters:[{name:"value1"},{name:"array"},{name:"type"}]},{name:"MAX",description:"This function returns the maximum value, the greatest value, of all the values in the arguments.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"MAXA",description:"This function returns the largest value in a list of arguments, including text and logical values.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"MDETERM",description:"This function returns the matrix determinant of an array.",parameters:[{name:"array"}]},{name:"MDURATION",description:"This function calculates the modified Macauley duration of a security with an assumed par value of $100.",parameters:[{name:"settlement"},{name:"maturity"},{name:"coupon"},{name:"yield"},{name:"frequency"},{name:"basis"}]},{name:"MEDIAN",description:"This function returns the median, the number in the middle of the provided set of numbers; that is, half the numbers have values that are greater than the median, and half have values that are less than the median.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"MID",description:"This function returns the requested number of characters from a text string starting at the position you specify.",parameters:[{name:"text"},{name:"start_num"},{name:"num_chars"}]},{name:"MIN",description:"This function returns the minimum value, the least value, of all the values in the arguments",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"MINA",description:"This function returns the minimum value in a list of arguments, including text and logical values.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"MINUTE",description:"This function returns the minute corresponding to a specified time.",parameters:[{name:"time"}]},{name:"MINVERSE",description:"This function returns the inverse matrix for the matrix stored in an array.",parameters:[{name:"array"}]},{name:"MIRR",description:"This function returns the modified internal rate of return for a series of periodic cash flows.",parameters:[{name:"arrayvals"},{name:"payment_int"},{name:"income_int"}]},{name:"MMULT",description:"This function returns the matrix product for two arrays.",parameters:[{name:"array1"},{name:"array2"}]},{name:"MOD",description:"This function returns the remainder of a division operation.",parameters:[{name:"dividend"},{name:"divisor"}]},{name:"MODE",description:"This function returns the most frequently occurring value in a set of data.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"MONTH",description:"This function returns the month corresponding to the specified date value.",parameters:[{name:"date"}]},{name:"MROUND",description:"This function returns a number rounded to the desired multiple.",parameters:[{name:"number"},{name:"multiple"}]},{name:"MULTINOMIAL",description:"This function calculates the ratio of the factorial of a sum of values to the product of factorials.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"N",description:"This function returns a value converted to a number.",parameters:[{name:"value"}]},{name:"NA",description:"This function returns the error value #N/A that means not available.",parameters:[]},{name:"NEGBINOMDIST",description:"This function returns the negative binomial distribution.",parameters:[{name:"x"},{name:"r"},{name:"p"}]},{name:"NETWORKDAYS",description:"This function returns the total number of complete working days between the start and end dates.",parameters:[{name:"startdate"},{name:"enddate"},{name:"holidays"}]},{name:"NOMINAL",description:"This function returns the nominal annual interest rate for a given effective rate and number of compounding periods per year.",parameters:[{name:"effrate"},{name:"comper"}]},{name:"NORMDIST",description:"This function returns the normal cumulative distribution for the specified mean and standard deviation.",parameters:[{name:"x"},{name:"mean"},{name:"stdev"},{name:"cumulative"}]},{name:"NORMINV",description:"This function returns the inverse of the normal cumulative distribution for the given mean and standard deviation.",parameters:[{name:"prob"},{name:"mean"},{name:"stdev"}]},{name:"NORMSDIST",description:"This function returns the standard normal cumulative distribution function.",parameters:[{name:"value"}]},{name:"NORMSINV",description:"This function returns the inverse of the standard normal cumulative distribution. The distribution has a mean of zero and a standard deviation of one.",parameters:[{name:"prob"}]},{name:"NOT",description:"This function reverses the logical value of its argument.",parameters:[{name:"value"}]},{name:"NOW",description:"This function returns the current date and time.",parameters:[]},{name:"NPER",description:"This function returns the number of periods for an investment based on a present value, future value, periodic payments, and a specified interest rate.",parameters:[{name:"rate"},{name:"paymt"},{name:"pval"},{name:"fval"},{name:"type"}]},{name:"NPV",description:"This function calculates the net present value of an investment by using a discount rate and a series of future payments and income.",parameters:[{name:"discount"},{name:"value1"},{name:"value2",repeatable:true}]},{name:"OCT2BIN",description:"This function converts an octal number to a binary number.",parameters:[{name:"number"},{name:"places"}]},{name:"OCT2DEC",description:"This function converts an octal number to a decimal number.",parameters:[{name:"number"}]},{name:"OCT2HEX",description:"This function converts an octal number to a hexadecimal number.",parameters:[{name:"number"},{name:"places"}]},{name:"ODD",description:"This function rounds the specified value up to the nearest odd integer.",parameters:[{name:"value"}]},{name:"ODDFPRICE",description:"This function calculates the price per $100 face value of a security with an odd first period.",parameters:[{name:"settle"},{name:"maturity"},{name:"issue"},{name:"first"},{name:"rate"},{name:"yield"},{name:"redeem"},{name:"freq"},{name:"basis"}]},{name:"ODDFYIELD",description:"This function calculates the yield of a security with an odd first period.",parameters:[{name:"settle"},{name:"maturity"},{name:"issue"},{name:"first"},{name:"rate"},{name:"price"},{name:"redeem"},{name:"freq"},{name:"basis"}]},{name:"ODDLPRICE",description:"This function calculates the price per $100 face value of a security with an odd last coupon period.",parameters:[{name:"settle"},{name:"maturity"},{name:"last"},{name:"rate"},{name:"yield"},{name:"redeem"},{name:"freq"},{name:"basis"}]},{name:"ODDLYIELD",description:"This function calculates the yield of a security with an odd last period.",parameters:[{name:"settle"},{name:"maturity"},{name:"last"},{name:"rate"},{name:"price"},{name:"redeem"},{name:"freq"},{name:"basis"}]},{name:"OFFSET",description:"This function returns a reference to a range. The range is a specified number of rows and columns from a cell or range of cells. The function returns a single cell or a range of cells.",parameters:[{name:"reference"},{name:"rows"},{name:"cols"},{name:"height"},{name:"width"}]},{name:"OR",description:"This function calculates logical OR. It returns TRUE if any of its arguments are true; otherwise, returns FALSE if all arguments are false.",parameters:[{name:"argument1"},{name:"argument2..."}]},{name:"PEARSON",description:"This function returns the Pearson product moment correlation coefficient, a dimensionless index between -1.0 to 1.0 inclusive indicative of the linear relationship of two data sets.",parameters:[{name:"array_ind"},{name:"array_dep"}]},{name:"PERCENTILE",description:"This function returns the nth percentile of values in a range.",parameters:[{name:"array"},{name:"n"}]},{name:"PERCENTRANK",description:"This function returns the rank of a value in a data set as a percentage of the data set.",parameters:[{name:"array"},{name:"n"},{name:"sigdig"}]},{name:"PERMUT",description:"This function returns the number of possible permutations for a specified number of items.",parameters:[{name:"k"},{name:"n"}]},{name:"PI",description:"This function returns PI as 3.1415926536.",parameters:[]},{name:"PMT",description:"This function returns the payment amount for a loan given the present value, specified interest rate, and number of terms.",parameters:[{name:"rate"},{name:"nper"},{name:"pval"},{name:"fval"},{name:"type"}]},{name:"POISSON",description:"This function returns the Poisson distribution.",parameters:[{name:"nevents"},{name:"mean"},{name:"cumulative"}]},{name:"POWER",description:"This function raises the specified number to the specified power.",parameters:[{name:"number"},{name:"power"}]},{name:"PPMT",description:"This function returns the amount of payment of principal for a loan given the present value, specified interest rate, and number of terms.",parameters:[{name:"rate"},{name:"per"},{name:"nper"},{name:"pval"},{name:"fval"},{name:"type"}]},{name:"PRICE",description:"This function calculates the price per $100 face value of a periodic interest security",parameters:[{name:"settlement"},{name:"maturity"},{name:"rate"},{name:"yield"},{name:"redeem"},{name:"frequency"},{name:"basis"}]},{name:"PRICEDISC",description:"This function returns the price per $100 face value of a discounted security.",parameters:[{name:"settle"},{name:"mature"},{name:"discount"},{name:"redeem"},{name:"basis"}]},{name:"PRICEMAT",description:"This function returns the price at maturity per $100 face value of a security that pays interest.",parameters:[{name:"settle"},{name:"mature"},{name:"issue"},{name:"rate"},{name:"yield"},{name:"basis"}]},{name:"PROB",description:"This function returns the probability that values in a range are between two limits.",parameters:[{name:"array"},{name:"probs"},{name:"lower"},{name:"upper"}]},{name:"PRODUCT",description:"This function multiplies all the arguments and returns the product.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"PV",description:"This function returns the present value of an investment based on the interest rate, number and amount of periodic payments, and future value. The present value is the total amount that a series of future payments is worth now.",parameters:[{name:"rate"},{name:"numper"},{name:"paymt"},{name:"fval"},{name:"type"}]},{name:"QUARTILE",description:"This function returns which quartile (which quarter or 25 percent) of a data set a value is.",parameters:[{name:"array"},{name:"quart"}]},{name:"QUOTIENT",description:"This function returns the integer portion of a division. Use this to ignore the remainder of a division.",parameters:[{name:"numerator"},{name:"denominator"}]},{name:"RADIANS",description:"This function converts the specified number from degrees to radians.",parameters:[{name:"value"}]},{name:"RADIANS",description:"This function converts the specified number from degrees to radians.",parameters:[{name:"value"}]},{name:"RAND",description:"This function returns an evenly distributed random number between 0 and 1.",parameters:[]},{name:"RANDBETWEEN",description:"This function returns a random number between the numbers you specify.",parameters:[{name:"lower"},{name:"upper"}]},{name:"RANK",description:"This function returns the rank of a number in a set of numbers. If you were to sort the set, the rank of the number would be its position in the list.",parameters:[{name:"number"},{name:"array"},{name:"order"}]},{name:"RATE",description:"This function returns the interest rate per period of an annuity.",parameters:[{name:"nper"},{name:"pmt"},{name:"pval"},{name:"fval"},{name:"type"},{name:"guess"}]},{name:"RECEIVED",description:"This function returns the amount received at maturity for a fully invested security.",parameters:[{name:"settle"},{name:"mature"},{name:"invest"},{name:"discount"},{name:"basis"}]},{name:"REPLACE",description:"This function replaces part of a text string with a different text string.",parameters:[{name:"old_text"},{name:"start_char"},{name:"num_chars"},{name:"new_text"}]},{name:"REPT",description:"This function repeats text a specified number of times.",parameters:[{name:"text"},{name:"number"}]},{name:"RIGHT",description:"This function returns the specified rightmost characters from a text value.",parameters:[{name:"text"},{name:"num_chars"}]},{name:"ROMAN",description:"This function converts an arabic numeral to a roman numeral text equivalent.",parameters:[{name:"number"},{name:"style"}]},{name:"ROUND",description:"This function rounds the specified value to the nearest number, using the specified number of decimal places.",parameters:[{name:"value"},{name:"places"}]},{name:"ROUNDDOWN",description:"This function rounds the specified number down to the nearest number, using the specified number of decimal places.",parameters:[{name:"value"},{name:"places"}]},{name:"ROUNDUP",description:"This function rounds the specified number up to the nearest number, using the specified number of decimal places.",parameters:[{name:"value"},{name:"places"}]},{name:"ROW",description:"This function returns the number of a row from a reference.",parameters:[{name:"reference"}]},{name:"ROWS",description:"This function returns the number of rows in an array.",parameters:[{name:"array"}]},{name:"RSQ",description:"This function returns the square of the Pearson product moment correlation coefficient (R\u2011squared) through data points in known y\u2019s and known x\u2019s.",parameters:[{name:"array_dep"},{name:"array_ind"}]},{name:"SEARCH",description:"This function finds one text string in another text string and returns the index of the starting position of the found text.",parameters:[{name:"string1"},{name:"string2"}]},{name:"SECOND",description:"This function returns the seconds (0 to 59) value for a specified time.",parameters:[{name:"time"}]},{name:"SERIESSUM",description:"This function returns the sum of a power series.",parameters:[{name:"x"},{name:"n"},{name:"m"},{name:"coeff"}]},{name:"SIGN",description:"This function returns the sign of a number or expression.",parameters:[{name:"cellreference"}]},{name:"SIN",description:"This function returns the sine of the specified angle.",parameters:[{name:"angle"}]},{name:"SINH",description:"This function returns the hyperbolic sine of the specified number.",parameters:[{name:"value"}]},{name:"SKEW",description:"This function returns the skewness of a distribution.",parameters:[{name:"number1"},{name:"number2",repeatable:true}]},{name:"SLN",description:"This function returns the straight-line depreciation of an asset for one period.",parameters:[{name:"cost"},{name:"salvage"},{name:"life"}]},{name:"SLOPE",description:"This function calculates the slope of a linear regression.",parameters:[{name:"array_dep"},{name:"array_ind"}]},{name:"SMALL",description:"This function returns the nth smallest value in a data set, where n is specified.",parameters:[{name:"array"},{name:"n"}]},{name:"SQRT",description:"This function returns the positive square root of the specified number.",parameters:[{name:"value"}]},{name:"SQRTPI",description:"This function returns the positive square root of a multiple of pi (p).",parameters:[{name:"multiple"}]},{name:"STANDARDIZE",description:"This function returns a normalized value from a distribution characterized by mean and standard deviation.",parameters:[{name:"x"},{name:"mean"},{name:"stdev"}]},{name:"STDEVA",description:"This function returns the standard deviation for a set of numbers, text, or logical values.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"STDEVP",description:"This function returns the standard deviation for an entire specified population (of numeric values).",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"STDEVPA",description:"This function returns the standard deviation for an entire specified population, including text or logical values as well as numeric values.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"STEYX",description:"This function returns the standard error of the predicted y value for each x. The standard error is a measure of the amount of error in the prediction of y for a value of x.",parameters:[{name:"array_dep"},{name:"array_ind"}]},{name:"SUBSTITUTE",description:"This function substitutes a new string for specified characters in an existing string.",parameters:[{name:"text"},{name:"old_piece"},{name:"new_piece"},{name:"instance"}]},{name:"SUBTOTAL",description:"This function calculates a subtotal of a list of numbers using a specified built-in function.",parameters:[{name:"functioncode"},{name:"value1"},{name:"value2",repeatable:true}]},{name:"SUM",description:"This function returns the sum of cells or range of cells.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"SUMIF",description:"This function adds the cells using a given criteria.",parameters:[{name:"array"},{name:"condition"},{name:"sumrange"}]},{name:"SUMIFS",description:"This function adds the cells in a range using multiple criteria.",parameters:[{name:"array"},{name:"conditionarray"},{name:"condition",repeatable:true}]},{name:"SUMPRODUCT",description:"This function returns the sum of products of cells. Multiplies corresponding components in the given arrays, and returns the sum of those products.",parameters:[{name:"array1"},{name:"array2",repeatable:true}]},{name:"SUMSQ",description:"This function returns the sum of the squares of the arguments.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"SUMX2MY2",description:"This function returns the sum of the difference of the squares of corresponding values in two arrays.",parameters:[{name:"array_x"},{name:"array_y"}]},{name:"SUMX2PY2",description:"This function returns the sum of the sum of squares of corresponding values in two arrays.",parameters:[{name:"array_x"},{name:"array_y"}]},{name:"SUMXMY2",description:"This function returns the sum of the square of the differences of corresponding values in two arrays.",parameters:[{name:"array_x"},{name:"array_y"}]},{name:"SYD",description:"This function returns the sum-of-years\u2019 digits depreciation of an asset for a specified period.",parameters:[{name:"cost"},{name:"salvage"},{name:"life"},{name:"period"}]},{name:"T",description:"This function returns the text in a specified cell.",parameters:[{name:"value"}]},{name:"TAN",description:"This function returns the tangent of the specified angle.",parameters:[{name:"angle"}]},{name:"TANH",description:"This function returns the hyperbolic tangent of the specified number.",parameters:[{name:"value"}]},{name:"TBILLEQ",description:"This function returns the equivalent yield for a Treasury bill (or T-bill)",parameters:[{name:"settle"},{name:"mature"},{name:"discount"}]},{name:"TBILLPRICE",description:"This function returns the price per $100 face value for a Treasury bill (or T-bill).",parameters:[{name:"settle"},{name:"mature"},{name:"discount"}]},{name:"TBILLYIELD",description:"This function returns the yield for a Treasury bill (or T-bill).",parameters:[{name:"settle"},{name:"mature"},{name:"priceper"}]},{name:"TDIST",description:"This function returns the probability for the t-distribution.",parameters:[{name:"x"},{name:"deg"},{name:"tails"}]},{name:"TEXT",description:"This function formats a number and converts it to text.",parameters:[{name:"value"},{name:"text"}]},{name:"TIME",description:"This function returns the TimeSpan object for a specified time.",parameters:[{name:"hour"},{name:"minutes"},{name:"seconds"}]},{name:"TIMEVALUE",description:"This function returns the TimeSpan object of the time represented by a text string.",parameters:[{name:"time_string"}]},{name:"TINV",description:"This function returns the t-value of the student's t-distribution as a function of the probability and the degrees of freedom.",parameters:[{name:"prog"},{name:"deg"}]},{name:"TODAY",description:"This function returns the date and time of the current date.",parameters:[]},{name:"TRANSPOSE",description:"This function returns a vertical range of cells as a horizontal range or a horizontal range of cells as a vertical range.",parameters:[{name:"array"}]},{name:"TREND",description:"This function returns values along a linear trend. This function fits a straight line to the arrays known x and y values. Trend returns the y values along that line for the array of specified new x values.",parameters:[{name:"y"},{name:"x"},{name:"newx"},{name:"constant"}]},{name:"TRIM",description:"This function removes extra spaces from a string and leaves single spaces between words.",parameters:[{name:"text"}]},{name:"TRIMMEAN",description:"This function returns the mean of a subset of data excluding the top and bottom data.",parameters:[{name:"array"},{name:"percent"}]},{name:"TRUE",description:"This function returns the value for logical TRUE.",parameters:[]},{name:"TRUNC",description:"This function removes the specified fractional part of the specified number.",parameters:[{name:"value"},{name:"precision"}]},{name:"TTEST",description:"This function returns the probability associated with a t-test.",parameters:[{name:"array1"},{name:"array2"},{name:"tails"},{name:"type"}]},{name:"TYPE",description:"This function returns the type of value.",parameters:[{name:"value"}]},{name:"UPPER",description:"This function converts text to uppercase letters.",parameters:[{name:"string"}]},{name:"VALUE",description:"This function converts a text string that is a number to a numeric value.",parameters:[{name:"text"}]},{name:"VAR",description:"This function returns the variance based on a sample of a population, which uses only numeric values.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"VARA",description:"This function returns the variance based on a sample of a population, which includes numeric, logical, or text values.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"VARP",description:"This function returns variance based on the entire population, which uses only numeric values.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"VARPA",description:"This function returns variance based on the entire population, which includes numeric, logical, or text values.",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"VDB",description:"This function returns the depreciation of an asset for any period you specify using the variable declining balance method.",parameters:[{name:"cost"},{name:"salvage"},{name:"life"},{name:"start"},{name:"end"},{name:"factor"},{name:"switchnot"}]},{name:"VLOOKUP",description:"This function searches for a value in the leftmost column and returns a value in the same row from a column you specify.",parameters:[{name:"value"},{name:"array"},{name:"colindex"},{name:"approx"}]},{name:"WEEKDAY",description:"This function returns the number corresponding to the day of the week for a specified date.",parameters:[{name:"date"},{name:"type"}]},{name:"WEEKNUM",description:"This function returns a number that indicates the week of the year numerically.",parameters:[{name:"date"},{name:"weektype"}]},{name:"WEIBULL",description:"This function returns the two-parameter Weibull distribution, often used in reliability analysis.",parameters:[{name:"x"},{name:"alpha"},{name:"beta"},{name:"cumulative"}]},{name:"WORKDAY",description:"This function returns the number of working days before or after the starting date.",parameters:[{name:"startdate"},{name:"numdays"},{name:"holidays"}]},{name:"XIRR",description:"This function calculates the internal rate of return for a schedule of cash flows that may not be periodic.",parameters:[{name:"values"},{name:"dates"},{name:"guess"}]},{name:"XNPV",description:"This function calculates the net present value for a schedule of cash flows that may not be periodic.",parameters:[{name:"rate"},{name:"values"},{name:"dates"}]},{name:"YEAR",description:"This function returns the year as an integer for a specified date.",parameters:[{name:"date"}]},{name:"YEARFRAC",description:"This function returns the fraction of the year represented by the number of whole days between the start and end dates.",parameters:[{name:"startdate"},{name:"enddate"},{name:"basis"}]},{name:"YIELD",description:"This function calculates the yield on a security that pays periodic interest.",parameters:[{name:"settle"},{name:"maturity"},{name:"rate"},{name:"price"},{name:"redeem"},{name:"frequency"},{name:"basis"}]},{name:"YIELDDISC",description:"This function calculates the annual yield for a discounted security.",parameters:[{name:"settle"},{name:"maturity"},{name:"price"},{name:"redeem"},{name:"basis"}]},{name:"YIELDMAT",description:"This function calculates the annual yield of a security that pays interest at maturity.",parameters:[{name:"settle"},{name:"maturity"},{name:"issue"},{name:"issrate"},{name:"price"},{name:"basis"}]},{name:"ZTEST",description:"This function returns the significance value of a z-test. The z-test generates a standard score for x with respect to the set of data and returns the two-tailed probability for the normal distribution.",parameters:[{name:"array"},{name:"x"},{name:"sigma"}]},{name:"PIESPARKLINE",description:"This function returns a data set used for representing a pie sparkline",parameters:[{name:"range|percentage"},{name:"color",repeatable:true}]},{name:"AREASPARKLINE",description:"This function returns a data set used for representing a area sparkline",parameters:[{name:"points"},{name:"mini"},{name:"maxi"},{name:"line1"},{name:"line2"},{name:"colorPositive"},{name:"colorNegative"}]},{name:"SCATTERSPARKLINE",description:"This function returns a data set used for representing a scatter sparkline",parameters:[{name:"points1"},{name:"points2"},{name:"minX"},{name:"maxX"},{name:"minY"},{name:"maxY"},{name:"hLine"},{name:"vLine"},{name:"xMinZone"},{name:"xMaxZone"},{name:"yMinZone"},{name:"yMaxZone"},{name:"tags"},{name:"drawSymbol"},{name:"drawLines"},{name:"color1"},{name:"color2"},{name:"dash"}]},{name:"LINESPARKLINE",description:"This function returns a data set used for representing a line sparkline",parameters:[{name:"data"},{name:"dataOrientation"},{name:"dateAxisData"},{name:"dateAxisOrientation"},{name:"setting"}]},{name:"COLUMNSPARKLINE",description:"This function returns a data set used for representing a column sparkline",parameters:[{name:"data"},{name:"dataOrientation"},{name:"dateAxisData"},{name:"dateAxisOrientation"},{name:"setting"}]},{name:"WINLOSSSPARKLINE",description:"This function returns a data set used for representing a win/loss sparkline",parameters:[{name:"data"},{name:"dataOrientation"},{name:"dateAxisData"},{name:"dateAxisOrientation"},{name:"setting"}]}];return FormulaTextBoxResource_EN})();spread.FormulaTextBoxResource_EN=FormulaTextBoxResource_EN;var FormulaTextBoxResource_JP=(function(){function FormulaTextBoxResource_JP(){}FormulaTextBoxResource_JP.Functions=[{name:"ABS",description:"\u6307\u5b9a\u3057\u305f\u5024\u306e\u7d76\u5bfe\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"ACCRINT",description:"\u5b9a\u671f\u7684\u306b\u5229\u606f\u304c\u652f\u6255\u308f\u308c\u308b\u8a3c\u5238\u306e\u672a\u53ce\u5229\u606f\u984d\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"issue"},{name:"first"},{name:"settle"},{name:"rate"},{name:"par"},{name:"frequency"},{name:"basis"}]},{name:"ACCRINTM",description:"\u6e80\u671f\u306b\u5229\u606f\u304c\u652f\u6255\u308f\u308c\u308b\u8a3c\u5238\u306e\u672a\u53ce\u5229\u606f\u984d\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"issue"},{name:"maturity"},{name:"rate"},{name:"par"},{name:"basis"}]},{name:"ACOS",description:"\u6307\u5b9a\u306e\u5024\u304c\u30b3\u30b5\u30a4\u30f3\u3068\u306a\u308b\u89d2\u5ea6\u3092\u8fd4\u3057\u307e\u3059\u3002\u623b\u308a\u5024\u306e\u89d2\u5ea6\u306f 0\uff5e\u03c0\uff08\u30e9\u30b8\u30a2\u30f3\u5358\u4f4d\uff09\u3067\u3059\u3002",parameters:[{name:"value"}]},{name:"ACOSH",description:"\u6307\u5b9a\u3057\u305f\u89d2\u5ea6\u306e\u30cf\u30a4\u30d1\u30fc\u30dc\u30ea\u30c3\u30af\u30b3\u30b5\u30a4\u30f3\u306e\u9006\u95a2\u6570\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"ADDRESS",description:"\u6307\u5b9a\u306e\u884c\u756a\u53f7\u304a\u3088\u3073\u5217\u756a\u53f7\u306b\u57fa\u3065\u304d\u3001\u30bb\u30eb \u30a2\u30c9\u30ec\u30b9\u3092\u8868\u3059\u30c6\u30ad\u30b9\u30c8\u3092\u751f\u6210\u3057\u307e\u3059\u3002",parameters:[{name:"row"},{name:"column"},{name:"absnum"},{name:"a1style"},{name:"sheettext"}]},{name:"AMORDEGRC",description:"\u65e5\u5272\u308a\u8a08\u7b97\u306b\u3088\u308b\u6e1b\u4fa1\u511f\u5374\u3092\u8003\u616e\u3057\u3001\u8cc7\u7523\u8010\u7528\u5e74\u6570\u306b\u57fa\u3065\u304f\u6e1b\u4fa1\u511f\u5374\u4fc2\u6570\u3092\u8a08\u7b97\u306b\u9069\u7528\u3057\u3066\u3001\u4f1a\u8a08\u671f\u3054\u3068\u306e\u6e1b\u4fa1\u511f\u5374\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"cost"},{name:"datepurchased"},{name:"firstperiod"},{name:"salvage"},{name:"period"},{name:"drate"},{name:"basis"}]},{name:"AMORLINC",description:"\u65e5\u5272\u308a\u8a08\u7b97\u306b\u3088\u308b\u6e1b\u4fa1\u6d88\u5374\u3092\u8003\u616e\u3057\u3001\u6307\u5b9a\u306e\u4f1a\u8a08\u671f\u306e\u6e1b\u4fa1\u511f\u5374\u8cbb\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"cost"},{name:"datepurchased"},{name:"firstperiod"},{name:"salvage"},{name:"period"},{name:"drate"},{name:"basis"}]},{name:"AND",description:"\u3059\u3079\u3066\u306e\u5f15\u6570\u304c\u771f\u3067\u3042\u308c\u3070 True \u3092\u3001\uff11\u3064\u4ee5\u4e0a\u306e\u5f15\u6570\u304c\u507d\u3067\u3042\u308c\u3070 False \u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"logical1"},{name:"logical2"}]},{name:"ASIN",description:"\u6307\u5b9a\u306e\u5024\u304c\u30b5\u30a4\u30f3\u3068\u306a\u308b\u89d2\u5ea6\u3092\u8fd4\u3057\u307e\u3059\u3002\u623b\u308a\u5024\u306e\u89d2\u5ea6\u306f -\u03c0/2\uff5e\u03c0/2\uff08\u30e9\u30b8\u30a2\u30f3\u5358\u4f4d\uff09\u3067\u3059\u3002",parameters:[{name:"value"}]},{name:"ASINH",description:"\u6307\u5b9a\u3057\u305f\u6570\u5024\u306e\u30cf\u30a4\u30d1\u30fc\u30dc\u30ea\u30c3\u30af\u30b5\u30a4\u30f3\u306e\u9006\u95a2\u6570\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"ATAN",description:"\u6307\u5b9a\u306e\u5024\u304c\u30bf\u30f3\u30b8\u30a7\u30f3\u30c8\u3068\u306a\u308b\u89d2\u5ea6\u3092\u8fd4\u3057\u307e\u3059\u3002\u623b\u308a\u5024\u306e\u89d2\u5ea6\u306f -\u03c0/2\uff5e\u03c0/2\uff08\u30e9\u30b8\u30a2\u30f3\u5358\u4f4d\uff09\u3067\u3059\u3002",parameters:[{name:"value"}]},{name:"ATAN2",description:"\u6307\u5b9a\u306e x \u5ea7\u6a19\u304a\u3088\u3073 y \u5ea7\u6a19\u306e\u30a2\u30fc\u30af\u30bf\u30f3\u30b8\u30a7\u30f3\u30c8\u3092\u8fd4\u3057\u307e\u3059\u3002\u623b\u308a\u5024\u306e\u89d2\u5ea6\u306f -\u03c0\uff5e\u03c0\uff08\u30e9\u30b8\u30a2\u30f3\u5358\u4f4d\u3001\u305f\u3060\u3057 -\u03c0 \u3092\u9664\u304f\uff09\u3067\u3059\u3002",parameters:[{name:"x"},{name:"y"}]},{name:"ATANH",description:"\u6307\u5b9a\u3057\u305f\u6570\u5024\u306e\u30cf\u30a4\u30d1\u30fc\u30dc\u30ea\u30c3\u30af\u30bf\u30f3\u30b8\u30a7\u30f3\u30c8\u306e\u9006\u95a2\u6570\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"AVEDEV",description:"\u6307\u5b9a\u306e\u30c7\u30fc\u30bf\u5168\u4f53\u306e\u5e73\u5747\u5024\u306b\u5bfe\u3059\u308b\u3001\u500b\u3005\u306e\u5024\u306e\u7d76\u5bfe\u504f\u5dee\u306e\u5e73\u5747\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"AVERAGE",description:"\u6307\u5b9a\u3057\u305f\u6570\u5024\u306e\u5e73\u5747\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"AVERAGEA",description:"\u6307\u5b9a\u3057\u305f\u6570\u5024\u306e\u5e73\u5747\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"AVERAGEIF",description:"\u6307\u5b9a\u3057\u305f\u57fa\u6e96\u3092\u6e80\u305f\u3059\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u306e\u5e73\u5747\u5024\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true},{name:"condition"}]},{name:"AVERAGEIFS",description:"\u6307\u5b9a\u3057\u305f\u8907\u6570\u306e\u57fa\u6e96\u3092\u6e80\u305f\u3059\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u306e\u5e73\u5747\u5024\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"condition1"},{name:"value2",repeatable:true},{name:"condition2..."}]},{name:"BESSELI",description:"\u7d14\u865a\u6570\u3092\u5f15\u6570\u3068\u3057\u305f\u3068\u304d\u306e\u7b2c\uff11\u7a2e\u5909\u5f62\u30d9\u30c3\u30bb\u30eb\u95a2\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"order"}]},{name:"BESSELJ",description:"\u7b2c\uff11\u7a2e\u30d9\u30c3\u30bb\u30eb\u95a2\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"order"}]},{name:"BESSELK",description:"\u7d14\u865a\u6570\u3092\u5f15\u6570\u3068\u3057\u305f\u3068\u304d\u306e\u7b2c\uff12\u7a2e\u5909\u5f62\u30d9\u30c3\u30bb\u30eb\u95a2\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"order"}]},{name:"BESSELY",description:"\u7b2c\uff12\u7a2e\u30d9\u30c3\u30bb\u30eb\u95a2\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"order"}]},{name:"BETADIST",description:"\u7d2f\u7a4d\u03b2\u78ba\u7387\u5bc6\u5ea6\u95a2\u6570\u306e\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"x"},{name:"alpha"},{name:"beta"},{name:"lower"},{name:"upper"}]},{name:"BETAINV",description:"\u7d2f\u7a4d\u03b2\u78ba\u7387\u5bc6\u5ea6\u95a2\u6570\u306e\u9006\u95a2\u6570\u306e\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"prob"},{name:"alpha"},{name:"beta"},{name:"lower"},{name:"upper"}]},{name:"BIN2DEC",description:"\uff12\u9032\u6570\u5024\u3092 10 \u9032\u6570\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"number"}]},{name:"BIN2HEX",description:"\uff12\u9032\u6570\u5024\u3092 16 \u9032\u6570\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"number"},{name:"places"}]},{name:"BIN2OCT",description:"\uff12\u9032\u6570\u5024\u3092\uff18\u9032\u6570\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"number"},{name:"places"}]},{name:"BINOMDIST",description:"\u500b\u5225\u9805\u306e\u4e8c\u9805\u5206\u5e03\u306e\u78ba\u7387\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"x"},{name:"n"},{name:"p"},{name:"cumulative"}]},{name:"CEILING",description:"\u6307\u5b9a\u3057\u305f\u57fa\u6e96\u5024\u306e\u500d\u6570\u306b\u306a\u308b\u3088\u3046\u306b\u6570\u5024\u3092\u4e38\u3081\u3001\u5143\u306e\u5024\u306b\u6700\u3082\u8fd1\u3044\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"signif"}]},{name:"CHAR",description:"\u6307\u5b9a\u3057\u305f\u6570\u5024\u306b\u5bfe\u5fdc\u3059\u308b\u6587\u5b57\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"CHIDIST",description:"\u7247\u5074\u30ab\u30a4\uff12\u4e57\u5206\u5e03\u306e\u78ba\u7387\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"deg"}]},{name:"CHIINV",description:"\u7247\u5074\u30ab\u30a4\uff12\u4e57\u5206\u5e03\u78ba\u7387\u306e\u9006\u95a2\u6570\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"prob"},{name:"deg"}]},{name:"CHITEST",description:"\u30ab\u30a4\uff12\u4e57\u5206\u5e03\u304b\u3089\u306e\u72ec\u7acb\u6027\u3092\u691c\u5b9a\u3057\u307e\u3059\u3002",parameters:[{name:"obs_array"},{name:"exp_array"}]},{name:"CHOOSE",description:"\u5024\u30ea\u30b9\u30c8\u306e\u4e2d\u304b\u3089\u7279\u5b9a\u306e\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"index"},{name:"value1"},{name:"value2",repeatable:true}]},{name:"CLEAN",description:"\u6307\u5b9a\u306e\u30c6\u30ad\u30b9\u30c8\u304b\u3089\u3001\u5370\u5237\u3067\u304d\u306a\u3044\u3059\u3079\u3066\u306e\u6587\u5b57\u3092\u524a\u9664\u3057\u307e\u3059\u3002",parameters:[{name:"text"}]},{name:"CODE",description:"\u30c6\u30ad\u30b9\u30c8\u5185\u306e\u5148\u982d\u6587\u5b57\u306b\u5bfe\u5fdc\u3059\u308b\u6570\u5024\u30b3\u30fc\u30c9\u3092\u8fd4\u3057\u307e\u3059\u3002\u8fd4\u3055\u308c\u308b\u30b3\u30fc\u30c9\u306f\u3001Unicode\u3067\u3059\u3002",parameters:[{name:"text"}]},{name:"COLUMN",description:"\u53c2\u7167\u306e\u5217\u756a\u53f7\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"reference"}]},{name:"COLUMNS",description:"\u914d\u5217\u5185\u306e\u5217\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array"}]},{name:"COMBIN",description:"\u7dcf\u6570\u304b\u3089\u6307\u5b9a\u306e\u500b\u6570\u3092\u629c\u304d\u53d6\u308b\u5834\u5408\u3001\u9078\u629e\u53ef\u80fd\u306a\u7d44\u307f\u5408\u308f\u305b\u306e\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"k"},{name:"n"}]},{name:"COMPLEX",description:"\u5b9f\u6570\u4fc2\u6570\u304a\u3088\u3073\u865a\u6570\u4fc2\u6570\u3092\u8907\u7d20\u6570\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"realcoeff"},{name:"imagcoeff"},{name:"suffix"}]},{name:"CONCATENATE",description:"\u6307\u5b9a\u306e\u6587\u5b57\u5217\u307e\u305f\u306f\u6570\u5024\u3092\uff11\u3064\u306e\u6587\u5b57\u5217\u306b\u7d71\u5408\u3057\u307e\u3059\u3002",parameters:[{name:"text1"},{name:"text2"},{name:"...."}]},{name:"CONFIDENCE",description:"\u6bcd\u96c6\u56e3\u306e\u5e73\u5747\u5024\u306b\u5bfe\u3059\u308b\u4fe1\u983c\u533a\u9593\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"alpha"},{name:"stdev"},{name:"size"}]},{name:"CONVERT",description:"\u3042\u308b\u8a08\u6e2c\u5358\u4f4d\u306e\u5024\u3092\u3001\u5225\u306e\u8a08\u6e2c\u5358\u4f4d\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"number"},{name:"from-unit"},{name:"to-unit"}]},{name:"CORREL",description:"\uff12\u7d44\u306e\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u9593\u306e\u76f8\u95a2\u4fc2\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array1"},{name:"array2"}]},{name:"COS",description:"\u6307\u5b9a\u3057\u305f\u89d2\u5ea6\u306e\u30b3\u30b5\u30a4\u30f3\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"angle"}]},{name:"COSH",description:"\u6307\u5b9a\u3057\u305f\u89d2\u5ea6\u306e\u30cf\u30a4\u30d1\u30fc\u30dc\u30ea\u30c3\u30af\u30b3\u30b5\u30a4\u30f3\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"COUNT",description:"\u6307\u5b9a\u3057\u305f\u8907\u6570\u306e\u5024\u306b\u6570\u5024\u304c\u4f55\u500b\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u500b\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"COUNTA",description:"\u6307\u5b9a\u3057\u305f\u8907\u6570\u306e\u5024\u306b\u6570\u5024\u304c\u4f55\u500b\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u500b\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"COUNTBLANK",description:"\u30b7\u30fc\u30c8\u4e0a\u306e\u6307\u5b9a\u306e\u30bb\u30eb\u7bc4\u56f2\u304b\u3089\u3001\u7a7a\u767d\u30bb\u30eb\u306e\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"cellrange"}]},{name:"COUNTIF",description:"\u7279\u5b9a\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\u30bb\u30eb\u306e\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"cellrange"},{name:"condition"}]},{name:"COUNTIFS",description:"\u8907\u6570\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\u30bb\u30eb\u306e\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"cellrange"},{name:"condition"}]},{name:"COUPDAYBS",description:"\u8a3c\u5238\u306e\u5229\u6255\u671f\u9593\u306e\uff11\u65e5\u76ee\u304b\u3089\u53d7\u6e21\u65e5\u307e\u3067\u306e\u65e5\u6570\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"settlement"},{name:"maturity"},{name:"frequency"},{name:"basis"}]},{name:"COUPDAYS",description:"\u8a3c\u5238\u306e\u5229\u6255\u671f\u9593\uff08\u53d7\u6e21\u65e5\u3092\u542b\u3080\uff09\u3092\u8868\u3059\u65e5\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"settlement"},{name:"maturity"},{name:"frequency"},{name:"basis"}]},{name:"COUPDAYSNC",description:"\u8a3c\u5238\u306e\u53d7\u6e21\u65e5\u304b\u3089\u6b21\u306e\u5229\u6255\u65e5\u307e\u3067\u306e\u65e5\u6570\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"settlement"},{name:"maturity"},{name:"frequency"},{name:"basis"}]},{name:"COUPNCD",description:"\u8a3c\u5238\u306e\u53d7\u6e21\u5f8c\u306e\u6b21\u56de\u306e\u5229\u6255\u65e5\u3092\u65e5\u4ed8\u5024\u3067\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"settlement"},{name:"maturity"},{name:"frequency"},{name:"basi"}]},{name:"COUPNUM",description:"\u8a3c\u5238\u306e\u53d7\u6e21\u65e5\u304b\u3089\u6e80\u671f\u65e5\u307e\u3067\u306e\u671f\u9593\u4e2d\u306e\u5229\u6255\u56de\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"settlement"},{name:"maturity"},{name:"frequency"},{name:"basis"}]},{name:"COUPPCD",description:"\u8a3c\u5238\u306e\u53d7\u6e21\u65e5\u76f4\u524d\u306e\u5229\u6255\u65e5\u3092\u65e5\u4ed8\u5024\u3067\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"settlement"},{name:"maturity"},{name:"frequency"},{name:"basis"}]},{name:"COVAR",description:"\uff12\u7d44\u306e\u5bfe\u5fdc\u3059\u308b\u30c7\u30fc\u30bf\u306e\u6a19\u6e96\u504f\u5dee\u306e\u7a4d\u306e\u5e73\u5747\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array1"},{name:"array2"}]},{name:"CRITBINOM",description:"\u7d2f\u7a4d\u4e8c\u9805\u5206\u5e03\u306e\u5024\u304c\u57fa\u6e96\u5024\u4ee5\u4e0a\u3068\u306a\u308b\u6700\u5c0f\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"n"},{name:"p"},{name:"alpha"}]},{name:"CUMIPMT",description:"\u958b\u59cb\u671f\u304b\u3089\u7d42\u4e86\u671f\u307e\u3067\u306e\u671f\u9593\u5185\u3067\u3001\u8cb8\u4ed8\u91d1\u306b\u5bfe\u3057\u3066\u652f\u6255\u308f\u308c\u308b\u5229\u606f\u306e\u7d2f\u8a08\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"rate"},{name:"nper"},{name:"pval"},{name:"startperiod"},{name:"endperiod"},{name:"paytype"}]},{name:"CUMPRINC",description:"\u958b\u59cb\u671f\u304b\u3089\u7d42\u4e86\u671f\u307e\u3067\u306e\u671f\u9593\u5185\u3067\u3001\u8cb8\u4ed8\u91d1\u306b\u5bfe\u3057\u3066\u652f\u6255\u308f\u308c\u308b\u5143\u91d1\u306e\u7d2f\u8a08\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"rate"},{name:"nper"},{name:"pval"},{name:"startperiod"},{name:"endperiod"},{name:"paytype"}]},{name:"DATE",description:"\u5e74\u3001\u6708\u3001\u65e5\u3067\u6307\u5b9a\u3057\u305f\u65e5\u4ed8\u306b\u5bfe\u3059\u308b\u65e5\u4ed8\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"year"},{name:"month"},{name:"day"}]},{name:"DATEDIF",description:"\uff12\u3064\u306e\u65e5\u4ed8\u9593\u306e\u65e5\u6570\u3001\u6708\u6570\u3001\u307e\u305f\u306f\u5e74\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"date1"},{name:"date2"},{name:"outputcode"}]},{name:"DATEVALUE",description:"\u6307\u5b9a\u306e\u65e5\u4ed8\u306b\u5bfe\u3059\u308b\u65e5\u6642\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"date_string"}]},{name:"DAVERAGE",description:"\u30ea\u30b9\u30c8\u307e\u305f\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u6307\u5b9a\u306e\uff11\u5217\u306b\u304a\u3044\u3066\u3001\u6307\u5b9a\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\u5024\u306e\u5e73\u5747\u5024\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DAY",description:"\u7279\u5b9a\u306e\u65e5\u4ed8\u306b\u5bfe\u5fdc\u3059\u308b\u3001\u6708\u5185\u306e\u65e5\uff081\uff5e31\uff09\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"date"}]},{name:"DAYS360",description:"\uff11\u5e74\u3092 360 \u65e5\uff08\uff11\u6708\u304c 30 \u65e5\uff09\u3068\u307f\u306a\u3057\u3001\uff12\u3064\u306e\u65e5\u4ed8\u9593\u306e\u65e5\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"startdate"},{name:"enddate"},{name:"method"}]},{name:"DB",description:"\u5b9a\u7387\u6cd5\u3092\u4f7f\u7528\u3057\u3066\u3001\u7279\u5b9a\u306e\u671f\u306e\u8cc7\u7523\u306e\u6e1b\u4fa1\u511f\u5374\u8cbb\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"cost"},{name:"salvage"},{name:"life"},{name:"period"},{name:"month"}]},{name:"DCOUNT",description:"\u30ea\u30b9\u30c8\u307e\u305f\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u6307\u5b9a\u306e\uff11\u5217\u306b\u304a\u3044\u3066\u3001\u6307\u5b9a\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\u6570\u5024\u3092\u4fdd\u6301\u3059\u308b\u30bb\u30eb\u6570\u3092\u30ab\u30a6\u30f3\u30c8\u3057\u307e\u3059\u3002",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DCOUNTA",description:"\u30ea\u30b9\u30c8\u307e\u305f\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u6307\u5b9a\u306e\uff11\u5217\u306b\u304a\u3044\u3066\u3001\u6307\u5b9a\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\u3001\u7a7a\u767d\u4ee5\u5916\u306e\u30bb\u30eb\u6570\u3092\u30ab\u30a6\u30f3\u30c8\u3057\u307e\u3059\u3002",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DDB",description:"\u500d\u7387\u6cd5\u3001\u307e\u305f\u306f\u305d\u306e\u4ed6\u306e\u6307\u5b9a\u306e\u8a08\u7b97\u65b9\u6cd5\u3092\u4f7f\u7528\u3057\u3066\u3001\u7279\u5b9a\u306e\u671f\u306e\u8cc7\u7523\u306e\u6e1b\u4fa1\u511f\u5374\u8cbb\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"cost"},{name:"salvage"},{name:"life"},{name:"period"},{name:"factor"}]},{name:"DEC2BIN",description:"10 \u9032\u6570\u5024\u3092\uff12\u9032\u6570\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"number"},{name:"places"}]},{name:"DEC2HEX",description:"10 \u9032\u6570\u5024\u3092 16 \u9032\u6570\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"number"},{name:"places"}]},{name:"DEC2OCT",description:"10 \u9032\u6570\u5024\u3092\uff18\u9032\u6570\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"number"},{name:"places"}]},{name:"DEGREES",description:"\u6307\u5b9a\u3057\u305f\u30e9\u30b8\u30a2\u30f3\u5358\u4f4d\u306e\u89d2\u5ea6\u306e\u5024\u3092\u5ea6\u5358\u4f4d\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"angle"}]},{name:"DELTA",description:"\uff12\u3064\u306e\u5024\u304c\u7b49\u3057\u3044\u304b\u3069\u3046\u304b\u3092\u8abf\u3079\u307e\u3059\u3002\uff12\u3064\u306e\u5024\u304c\u7b49\u3057\u3051\u308c\u3070\uff11\u3001\u305d\u3046\u3067\u306a\u3051\u308c\u3070\uff10\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2"}]},{name:"DEVSQ",description:"\u5e73\u5747\u5024\u306b\u5bfe\u3059\u308b\u500b\u3005\u306e\u30c7\u30fc\u30bf\u70b9\u306e\u504f\u5dee\u306e\u5e73\u65b9\u548c\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"DGET",description:"\u30ea\u30b9\u30c8\u307e\u305f\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u6307\u5b9a\u306e\uff11\u5217\u306b\u304a\u3044\u3066\u3001\u6307\u5b9a\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\uff11\u3064\u306e\u5024\u3092\u62bd\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DISC",description:"\u8a3c\u5238\u306e\u5272\u5f15\u7387\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"settle"},{name:"mature"},{name:"pricep"},{name:"redeem"},{name:"basis"}]},{name:"DMAX",description:"\u30ea\u30b9\u30c8\u307e\u305f\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u6307\u5b9a\u306e\uff11\u5217\u306b\u304a\u3044\u3066\u3001\u6307\u5b9a\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\u6700\u5927\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DMIN",description:"\u30ea\u30b9\u30c8\u307e\u305f\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u6307\u5b9a\u306e\uff11\u5217\u306b\u304a\u3044\u3066\u3001\u6307\u5b9a\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\u6700\u5c0f\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DOLLAR",description:"\u6570\u5024\u3092\u6307\u5b9a\u306e\u5c0f\u6570\u4f4d\u306b\u306a\u308b\u3088\u3046\u306b\u56db\u6368\u4e94\u5165\u3057\u3001\u901a\u8ca8\u66f8\u5f0f\u3092\u65bd\u3057\u305f\u6587\u5b57\u5217\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"digits"}]},{name:"DOLLARDE",description:"\u5206\u6570\u8868\u8a18\u3055\u308c\u305f\u30c9\u30eb\u5024\u3092\u3001\u5c0f\u6570\u8868\u8a18\u306e\u30c9\u30eb\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"fractionaldollar"},{name:"fraction"}]},{name:"DOLLARFR",description:"\u5c0f\u6570\u8868\u8a18\u3055\u308c\u305f\u30c9\u30eb\u5024\u3092\u3001\u5206\u6570\u8868\u8a18\u306e\u30c9\u30eb\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"decimaldollar"},{name:"fraction"}]},{name:"DPRODUCT",description:"\u30ea\u30b9\u30c8\u307e\u305f\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u6307\u5b9a\u306e\uff11\u5217\u306b\u304a\u3044\u3066\u3001\u6307\u5b9a\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\u5024\u3092\u4e57\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DSTDEV",description:"\u30ea\u30b9\u30c8\u307e\u305f\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u6307\u5b9a\u306e\uff11\u5217\u306b\u304a\u3051\u308b\u3001\u6307\u5b9a\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\u6570\u5024\u3092\u6a19\u672c\u3068\u3057\u3066\u4f7f\u7528\u3057\u3066\u3001\u6bcd\u96c6\u56e3\u306e\u6a19\u6e96\u504f\u5dee\u3092\u8a55\u4fa1\u3057\u307e\u3059",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DSTDEVP",description:"\u30ea\u30b9\u30c8\u307e\u305f\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u6307\u5b9a\u306e\uff11\u5217\u306b\u304a\u3051\u308b\u3001\u6307\u5b9a\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\u6570\u5024\u3092\u4f7f\u7528\u3057\u3066\u3001\u6bcd\u96c6\u56e3\u5168\u4f53\u306b\u57fa\u3065\u304f\u6a19\u6e96\u504f\u5dee\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DSUM",description:"\u30ea\u30b9\u30c8\u307e\u305f\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u6307\u5b9a\u306e\uff11\u5217\u306b\u304a\u3044\u3066\u3001\u6307\u5b9a\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\u6570\u5024\u3092\u52a0\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DURATION",description:"\u984d\u9762\u3092 $100 \u3068\u307f\u306a\u3057\u305f\u8a3c\u5238\u306e\u30de\u30b3\u30fc\u30ec\u30fc \u30c7\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"settlement"},{name:"maturity"},{name:"coupon"},{name:"yield"},{name:"frequency"},{name:"basis"}]},{name:"DVAR",description:"\u30ea\u30b9\u30c8\u307e\u305f\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u6307\u5b9a\u306e\uff11\u5217\u306b\u304a\u3051\u308b\u3001\u6307\u5b9a\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\u6570\u5024\u3092\u6a19\u672c\u3068\u3057\u3066\u4f7f\u7528\u3057\u3066\u3001\u6bcd\u96c6\u56e3\u306e\u5206\u6563\u3092\u8a55\u4fa1\u3057\u307e\u3059\u3002",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"DVARP",description:"\u30ea\u30b9\u30c8\u307e\u305f\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u6307\u5b9a\u306e\uff11\u5217\u306b\u304a\u3051\u308b\u3001\u6307\u5b9a\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\u6570\u5024\u3092\u4f7f\u7528\u3057\u3066\u3001\u6bcd\u96c6\u56e3\u5168\u4f53\u306b\u57fa\u3065\u304f\u5206\u6563\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"database"},{name:" field"},{name:" criteria"}]},{name:"EDATE",description:"\u6307\u5b9a\u306e\u65e5\u4ed8\u304b\u3089\u3001\u6307\u5b9a\u306e\u6708\u6570\u3060\u3051\u524d\u307e\u305f\u306f\u5f8c\u306e\u65e5\u6642\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"startdate"},{name:"months"}]},{name:"EFFECT",description:"\u6307\u5b9a\u306e\u540d\u76ee\u5e74\u5229\u7387\u3068\uff11\u5e74\u3042\u305f\u308a\u306e\u8907\u5229\u8a08\u7b97\u671f\u9593\u306b\u57fa\u3065\u304d\u3001\u5b9f\u52b9\u5e74\u5229\u7387\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"nomrate"},{name:"comper"}]},{name:"EOMONTH",description:"\u6307\u5b9a\u306e\u65e5\u4ed8\u304b\u3089\u3001\u6307\u5b9a\u306e\u6708\u6570\u3060\u3051\u524d\u307e\u305f\u306f\u5f8c\u306e\u6708\u306e\u6700\u7d42\u65e5\uff08\u6708\u672b\u65e5\uff09\u3068\u306a\u308b\u65e5\u6642\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"startdate"},{name:"months"}]},{name:"ERF",description:"\u4e0a\u9650\u304b\u3089\u4e0b\u9650\u306e\u7bc4\u56f2\u3067\u3001\u8aa4\u5dee\u95a2\u6570\u306e\u7a4d\u5206\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"limit"},{name:"upperlimit"}]},{name:"ERFC",description:"\u4e0b\u9650\u304b\u3089\u7121\u9650\u5927\u306e\u7bc4\u56f2\u3067\u3001\u76f8\u88dc\u8aa4\u5dee\u95a2\u6570\u306e\u7a4d\u5206\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"lowerlimit"}]},{name:"ERROR.TYPE",description:"\u30a8\u30e9\u30fc\u5024\u306b\u5bfe\u5fdc\u3059\u308b\u6570\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002\u30a8\u30e9\u30fc\u304c\u306a\u3044\u5834\u5408\u306f\u3001#N/A \u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"errorvalue"}]},{name:"EURO",description:"ISO \u901a\u8ca8\u30b3\u30fc\u30c9\u306b\u57fa\u3065\u304d\u3001\uff11\u30e6\u30fc\u30ed\u306b\u76f8\u5f53\u3059\u308b\u901a\u8ca8\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"code"}]},{name:"EUROCONVERT",description:"\u30e6\u30fc\u30ed\u52a0\u76df\u56fd\u901a\u8ca8\uff08\u30e6\u30fc\u30ed\u3092\u542b\u3080\uff09\u9593\u3067\u3001\u3042\u308b\u901a\u8ca8\u5024\u3092\u5225\u306e\u901a\u8ca8\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"currency"},{name:"source"},{name:"target"},{name:"fullprecision"},{name:"triangulation"}]},{name:"EVEN",description:"\u6307\u5b9a\u3057\u305f\u5024\u3092\u5207\u308a\u4e0a\u3052\u3001\u6700\u3082\u8fd1\u3044\u5076\u6570\u306e\u6574\u6570\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"EXACT",description:"\uff12\u3064\u306e\u6587\u5b57\u5217\u304c\u7b49\u3057\u3051\u308c\u3070 True \u3092\u3001\u305d\u3046\u3067\u306a\u3051\u308c\u3070 False \u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"text1"},{name:"text2"}]},{name:"EXP",description:"e\uff08\u81ea\u7136\u5bfe\u6570\u306e\u5e95\uff09\u3092\u5e95\u3068\u3059\u308b\u3001\u6307\u5b9a\u306e\u6570\u306e\u3079\u304d\u4e57 (ex) \u3092\u8fd4\u3057\u307e\u3059\u3002EXP \u95a2\u6570\u306f LN \u306e\u9006\u95a2\u6570\u3067\u3059\u3002",parameters:[{name:"value"}]},{name:"EXPONDIST",description:"\u6307\u6570\u5206\u5e03\u95a2\u6570\u307e\u305f\u306f\u78ba\u7387\u5bc6\u5ea6\u95a2\u6570\u306e\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"lambda"},{name:"cumulative"}]},{name:"FACT",description:"\u6307\u5b9a\u3057\u305f\u5024\u306e\u968e\u4e57\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"number"}]},{name:"FACTDOUBLE",description:"\u6570\u5024\u306e\uff12\u4e57\u968e\u4e57\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"number"}]},{name:"FALSE",description:"\u8ad6\u7406\u5024\uff10\uff08False\uff09\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[]},{name:"FDIST",description:"\uff12\u7d44\u306e\u30c7\u30fc\u30bf\u9593\u306e\u5206\u6563\u5ea6\u3092\u6bd4\u8f03\u3059\u308b F \u78ba\u7387\u5206\u5e03\u95a2\u6570\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"degnum"},{name:"degden"}]},{name:"FIND",description:"\u30c6\u30ad\u30b9\u30c8\u5185\u304b\u3089\u6307\u5b9a\u306e\u6587\u5b57\u3092\u691c\u7d22\u3057\u3001\u3053\u306e\u6587\u5b57\u306e\u4f4d\u7f6e\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"findtext"},{name:"intext"},{name:"start"}]},{name:"FINV",description:"F \u78ba\u7387\u5206\u5e03\u95a2\u6570\u306e\u9006\u95a2\u6570\u306e\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002p = FDIST(x,...) \u3067\u3042\u308b\u3068\u304d\u3001FINV(p,...) = x \u3068\u306a\u308a\u307e\u3059\u3002",parameters:[{name:"p"},{name:"degnum"},{name:"degden"}]},{name:"FISHER",description:"\u6307\u5b9a\u306e\u5024\u306b\u5bfe\u3059\u308b\u30d5\u30a3\u30c3\u30b7\u30e3\u30fc\u5909\u63db\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"FISHERINV",description:"\u30d5\u30a3\u30c3\u30b7\u30e3\u30fc\u5909\u63db\u306e\u9006\u95a2\u6570\u306e\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"FIXED",description:"\u6570\u5024\u3092\u6307\u5b9a\u306e\u5c0f\u6570\u4f4d\u306b\u306a\u308b\u3088\u3046\u306b\u56db\u6368\u4e94\u5165\u3057\u3001\u30d4\u30ea\u30aa\u30c9\u3068\u30b3\u30f3\u30de\uff08\u6307\u5b9a\u3057\u305f\u5834\u5408\uff09\u306b\u3088\u308b\u5c0f\u6570\u66f8\u5f0f\u3092\u9069\u7528\u3057\u305f\u7d50\u679c\u3092\u30c6\u30ad\u30b9\u30c8\u3068\u3057\u3066\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"num"},{name:"digits"},{name:"notcomma"}]},{name:"FLOOR",description:"\u6307\u5b9a\u3057\u305f\u57fa\u6e96\u5024\u306e\u500d\u6570\u306b\u306a\u308b\u3088\u3046\u306b\u6570\u5024\u3092\u5207\u308a\u6368\u3066\u3001\u5143\u306e\u5024\u306b\u6700\u3082\u8fd1\u3044\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"signif"}]},{name:"FORECAST",description:"\u65e2\u77e5\u306e\u5024\u3092\u4f7f\u7528\u3057\u3066\u4e88\u6e2c\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"Yarray"},{name:"Xarray"}]},{name:"FREQUENCY",description:"\u6307\u5b9a\u306e\u5024\u7bc4\u56f2\u5185\u3067\u5024\u304c\u51fa\u73fe\u3059\u308b\u983b\u5ea6\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002 \u3053\u306e\u95a2\u6570\u306f\u3001\u6570\u5024\u306e\u5782\u76f4\u914d\u5217\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"dataarray"},{name:"binarray"}]},{name:"FTEST",description:"F \u691c\u5b9a\u306e\u7d50\u679c\u3092\u8fd4\u3057\u307e\u3059\u3002\u3053\u308c\u306f\u3001\uff12\u3064\u306e\u914d\u5217\u5185\u306e\u30c7\u30fc\u30bf\u306e\u5206\u6563\u306b\u6709\u610f\u306a\u5dee\u304c\u8a8d\u3081\u3089\u308c\u306a\u3044\u7247\u5074\u78ba\u7387\u306e\u7b97\u51fa\u7d50\u679c\u3067\u3059\u3002",parameters:[{name:"array1"},{name:"array2"}]},{name:"FV",description:"\u73fe\u5728\u4fa1\u5024\u3001\u5b9a\u671f\u6255\u3044\u3001\u304a\u3088\u3073\u7279\u5b9a\u306e\u5229\u7387\u3092\u6761\u4ef6\u3068\u3057\u3001\u6295\u8cc7\u306e\u5c06\u6765\u4fa1\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"rate"},{name:"numper"},{name:"paymt"},{name:"pval"},{name:"type"}]},{name:"FVSCHEDULE",description:"\u6295\u8cc7\u671f\u9593\u5185\u306e\u4e00\u9023\u306e\u91d1\u5229\u3092\u8907\u5408\u8a08\u7b97\u3059\u308b\u3053\u3068\u306b\u3088\u308a\u3001\u521d\u671f\u6295\u8cc7\uff08\u5143\u91d1\uff09\u306e\u5c06\u6765\u4fa1\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"principal"},{name:"schedule"}]},{name:"GAMMADIST",description:"\u30ac\u30f3\u30de\u5206\u5e03\u95a2\u6570\u306e\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"x"},{name:"alpha"},{name:"beta"},{name:"cumulative"}]},{name:"GAMMAINV",description:"\u30ac\u30f3\u30de\u7d2f\u7a4d\u5206\u5e03\u95a2\u6570\u306e\u9006\u95a2\u6570\u306e\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002p = GAMMADIST(x,...) \u3067\u3042\u308b\u3068\u304d\u3001GAMMAINV(p,...) = x \u3068\u306a\u308a\u307e\u3059\u3002",parameters:[{name:"p"},{name:"alpha"},{name:"beta"}]},{name:"GAMMALN",description:"\u30ac\u30f3\u30de\u95a2\u6570\u306e\u5024\u306e\u81ea\u7136\u5bfe\u6570 (x) \u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"GCD",description:"\uff12\u3064\u306e\u6570\u5024\u9593\u306e\u6700\u5927\u516c\u7d04\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002\u6700\u5927\u516c\u7d04\u6570\u3068\u306f\u3001\u5bfe\u8c61\u3068\u306a\u308b\u3059\u3079\u3066\u306e\u5024\u3092\u4f59\u308a\u3092\u51fa\u3055\u305a\u306b\u5272\u308a\u5207\u308b\u3053\u3068\u306e\u3067\u304d\u308b\u6700\u5927\u306e\u6574\u6570\u3067\u3059\u3002",parameters:[{name:"number1"},{name:"number2"}]},{name:"GEOMEAN",description:"\u4e00\u7fa4\u306e\u6b63\u6570\u306e\u76f8\u4e57\u5e73\u5747\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"GESTEP",description:"\u6570\u5024\u304c\u3057\u304d\u3044\u5024\u306b\u7b49\u3057\u3044\u304b\u3069\u3046\u304b\u3092\u5224\u5b9a\u3057\u307e\u3059\u3002\u6307\u5b9a\u3057\u305f\u6570\u5024\u304c\u3057\u304d\u3044\u5024\u3068\u7b49\u3057\u3044\u304b\u3001\u305d\u308c\u4ee5\u4e0a\u3067\u3042\u308c\u3070\uff11\u3001\u305d\u3046\u3067\u306a\u3044\u5834\u5408\u306f\uff10\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"number"},{name:"step"}]},{name:"GROWTH",description:"\u4e88\u6e2c\u3055\u308c\u308b\u6307\u6570\u66f2\u7dda\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"y"},{name:"x"},{name:"newx"},{name:"constant"}]},{name:"HARMEAN",description:"\u4e00\u7fa4\u306e\u6570\u5024\u306e\u8abf\u548c\u5e73\u5747\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"HEX2BIN",description:"16 \u9032\u6570\u5024\u3092\uff12\u9032\u6570\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"number"},{name:" places"}]},{name:"HEX2DEC",description:"16 \u9032\u6570\u5024\u3092 10 \u9032\u6570\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"number"}]},{name:"HEX2OCT",description:"16 \u9032\u6570\u5024\u3092\uff18\u9032\u6570\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"number"},{name:" places"}]},{name:"HLOOKUP",description:"\u6307\u5b9a\u7bc4\u56f2\u306e\u6700\u4e0a\u884c\u304b\u3089\u5024\u3092\u691c\u7d22\u3057\u3001\u6307\u5b9a\u306e\u884c\u304b\u3089\u3001\u3053\u306e\u5024\u3068\u540c\u3058\u5217\u5185\u306e\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"array"},{name:"row"},{name:"approx"}]},{name:"HOUR",description:"\u6307\u5b9a\u306e\u6642\u523b\u5024\u306b\u5bfe\u5fdc\u3059\u308b\u6642\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"time"}]},{name:"HYPGEOMDIST",description:"\u8d85\u5e7e\u4f55\u5206\u5e03\u95a2\u6570\u306e\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"x"},{name:"n"},{name:"M"},{name:"N"}]},{name:"IF",description:"\u8ad6\u7406\u5f0f\u306e\u7d50\u679c\u3092\u8868\u3059\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"valueTest"},{name:"valueTrue"},{name:"valueFalse"}]},{name:"IFERROR",description:"\u6570\u5f0f\u3092\u8a55\u4fa1\u3057\u3001\u30a8\u30e9\u30fc\u306e\u5834\u5408\u306b\u306f\u6307\u5b9a\u3057\u305f\u5024\u3001\u305d\u306e\u4ed6\u306e\u5834\u5408\u306b\u306f\u6570\u5f0f\u306e\u7d50\u679c\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"error"}]},{name:"IMABS",description:"\u8907\u7d20\u6570\u306e\u7d76\u5bfe\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum"}]},{name:"IMAGINARY",description:"\u8907\u7d20\u6570\u306e\u865a\u6570\u4fc2\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum"}]},{name:"IMARGUMENT",description:"\u30e9\u30b8\u30a2\u30f3\u5358\u4f4d\u306e\u89d2\u5ea6\u3067\u3042\u308b\u5f15\u6570\u03b8\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum"}]},{name:"IMCONJUGATE",description:"\u8907\u7d20\u6570\u306e\u8907\u7d20\u5171\u5f79\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum"}]},{name:"IMCOS",description:"\u8907\u7d20\u6570\u306e\u30b3\u30b5\u30a4\u30f3\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum"}]},{name:"IMDIV",description:"\uff12\u3064\u306e\u8907\u7d20\u6570\u306e\u5546\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum"},{name:"complexdenom"}]},{name:"IMEXP",description:"\u8907\u7d20\u6570\u306e\u6307\u6570\u95a2\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum"}]},{name:"IMLN",description:"\u8907\u7d20\u6570\u306e\u81ea\u7136\u5bfe\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum"}]},{name:"IMLOG2",description:"\u8907\u7d20\u6570\u306e\uff12\u3092\u5e95\u3068\u3059\u308b\u5bfe\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum"}]},{name:"IMLOG10",description:"\u8907\u7d20\u6570\u306e\u5e38\u7528\u5bfe\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum"}]},{name:"IMPOWER",description:"\u8907\u7d20\u6570\u306e\u6574\u6570\u4e57\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum"},{name:"powernum"}]},{name:"IMPRODUCT",description:"\"x+yi\" \u307e\u305f\u306f \"x+yj\" \u5f62\u5f0f\u306e\u30c6\u30ad\u30b9\u30c8\u3067\u6307\u5b9a\u3057\u305f\u3001\u6700\u5927 29 \u500b\u306e\u8907\u7d20\u6570\u306e\u7a4d\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum1"},{name:"complexnum2",repeatable:true}]},{name:"IMREAL",description:"\"x+yi\" \u307e\u305f\u306f \"x+yj\" \u5f62\u5f0f\u306e\u30c6\u30ad\u30b9\u30c8\u3067\u6307\u5b9a\u3057\u305f\u8907\u7d20\u6570\u306e\u5b9f\u6570\u4fc2\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum"}]},{name:"IMSIN",description:"\"x+yi\" \u307e\u305f\u306f \"x+yj\" \u5f62\u5f0f\u306e\u30c6\u30ad\u30b9\u30c8\u3067\u6307\u5b9a\u3057\u305f\u8907\u7d20\u6570\u306e\u30b5\u30a4\u30f3\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum"}]},{name:"IMSQRT",description:"\"x+yi\" \u307e\u305f\u306f \"x+yj\" \u5f62\u5f0f\u306e\u30c6\u30ad\u30b9\u30c8\u3067\u6307\u5b9a\u3057\u305f\u8907\u7d20\u6570\u306e\u5e73\u65b9\u6839\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum"}]},{name:"IMSUB",description:"\"x+yi\" \u307e\u305f\u306f \"x+yj\" \u5f62\u5f0f\u306e\u30c6\u30ad\u30b9\u30c8\u3067\u6307\u5b9a\u3057\u305f\uff12\u3064\u306e\u8907\u7d20\u6570\u306e\u5dee\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum1"},{name:"complexnum2"}]},{name:"IMSUM",description:"x+yi\" \u307e\u305f\u306f \"x+yj\" \u5f62\u5f0f\u306e\u30c6\u30ad\u30b9\u30c8\u3067\u6307\u5b9a\u3057\u305f\uff12\u3064\u4ee5\u4e0a\u306e\u8907\u7d20\u6570\u306e\u5408\u8a08\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"complexnum1"},{name:"complexnum2",repeatable:true}]},{name:"INDEX",description:"\u914d\u5217\u307e\u305f\u306f\u30bb\u30eb\u7bc4\u56f2\u306e\u4e2d\u304b\u3089\u3001\u7279\u5b9a\u306e\u5024\u307e\u305f\u306f\u5024\u3078\u306e\u53c2\u7167\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"return"},{name:"row"},{name:"col"},{name:"area"}]},{name:"INT",description:"\u6307\u5b9a\u3057\u305f\u5024\u306e\u5c0f\u6570\u90e8\u5206\u3092\u5207\u308a\u6368\u3066\u3001\u6700\u3082\u8fd1\u3044\u6574\u6570\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"INTERCEPT",description:"\u6307\u5b9a\u306e x \u5024\u3068 y \u5024\u3092\u4f7f\u7528\u3057\u3066\u5f97\u305f\u56de\u5e30\u76f4\u7dda\u304c y \u8ef8\u3068\u4ea4\u308f\u308b\u70b9\u3092\u6c42\u3081\u307e\u3059\u3002",parameters:[{name:"dependent"},{name:"independent"}]},{name:"INTRATE",description:"\u5168\u984d\u6295\u8cc7\u3055\u308c\u305f\u8a3c\u5238\u306e\u5229\u7387\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"settle"},{name:"mature"},{name:"invest"},{name:"redeem"},{name:"basis"}]},{name:"IPMT",description:"\u501f\u5165\u91d1\u8fd4\u6e08\u306b\u304a\u3044\u3066\u3001\u652f\u6255\u3046\u3079\u304d\u91d1\u5229\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"rate"},{name:"per"},{name:"nper"},{name:"pval"},{name:"fval"},{name:"type"}]},{name:"IRR",description:"\u4e00\u9023\u306e\u5b9a\u671f\u7684\u306a\u30ad\u30e3\u30c3\u30b7\u30e5\u30d5\u30ed\u30fc\uff08values \u5f15\u6570\u306e\u914d\u5217\u5024\u3067\u6307\u5b9a\uff09\u306b\u57fa\u3065\u304d\u3001\u5185\u90e8\u5229\u76ca\u7387\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"arrayvals"},{name:"estimate"}]},{name:"ISBLANK",description:"\u30bb\u30eb\u306a\u3069\u306e\u5024\u304c\u7a7a\u767d\u304b\u3069\u3046\u304b\u3092\u5224\u5b9a\u3057\u307e\u3059\u3002",parameters:[{name:"cellreference"}]},{name:"ISERR",description:"\u30bb\u30eb\u306a\u3069\u306e\u5024\u304c\u3001#N/A\uff08\u5229\u7528\u4e0d\u53ef\uff09\u4ee5\u5916\u306e\u30a8\u30e9\u30fc\u5024\u3092\u53c2\u7167\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u5224\u5b9a\u3057\u307e\u3059\u3002",parameters:[{name:"cellreference"}]},{name:"ISERROR",description:"\u30bb\u30eb\u306a\u3069\u306e\u5024\u304c\u3001\u4efb\u610f\u306e\u30a8\u30e9\u30fc\u5024\u3092\u53c2\u7167\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u5224\u5b9a\u3057\u307e\u3059\u3002",parameters:[{name:"cellreference"}]},{name:"ISEVEN",description:"\u30bb\u30eb\u306a\u3069\u306e\u5024\u304c\u5076\u6570\u304b\u3069\u3046\u304b\u3092\u5224\u5b9a\u3057\u307e\u3059\u3002",parameters:[{name:"cellreference"}]},{name:"ISLOGICAL",description:"\u30bb\u30eb\u306a\u3069\u306e\u5024\u304c\u8ad6\u7406\u5024\u304b\u3069\u3046\u304b\u3092\u5224\u5b9a\u3057\u307e\u3059\u3002",parameters:[{name:"cellreference"}]},{name:"ISNA",description:"\u30bb\u30eb\u306a\u3069\u306e\u5024\u304c\u3001\u30a8\u30e9\u30fc\u5024 #N/A\uff08\u5229\u7528\u4e0d\u53ef\uff09\u3092\u53c2\u7167\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u5224\u5b9a\u3057\u307e\u3059\u3002",parameters:[{name:"cellreference"}]},{name:"ISNONTEXT",description:"\u30bb\u30eb\u306a\u3069\u306e\u5024\u304c\u3001\u30c6\u30ad\u30b9\u30c8\u4ee5\u5916\u306e\u30c7\u30fc\u30bf\u304b\u3069\u3046\u304b\u3092\u5224\u5b9a\u3057\u307e\u3059\u3002",parameters:[{name:"cellreference"}]},{name:"ISNUMBER",description:"\u30bb\u30eb\u306a\u3069\u306e\u5024\u304c\u6570\u5024\u304b\u3069\u3046\u304b\u3092\u5224\u5b9a\u3057\u307e\u3059\u3002",parameters:[{name:"cellreference"}]},{name:"ISODD",description:"\u30bb\u30eb\u306a\u3069\u306e\u5024\u304c\u5947\u6570\u304b\u3069\u3046\u304b\u3092\u5224\u5b9a\u3057\u307e\u3059\u3002",parameters:[{name:"cellreference"}]},{name:"ISPMT",description:"\u6307\u5b9a\u306e\u6295\u8cc7\u671f\u9593\u306b\u652f\u6255\u308f\u308c\u308b\u91d1\u5229\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"rate"},{name:"per"},{name:"nper"},{name:"pv"}]},{name:"ISREF",description:"\u30bb\u30eb\u306a\u3069\u306e\u5024\u304c\u3001\u4ed6\u306e\u30bb\u30eb\u3078\u306e\u53c2\u7167\u304b\u3069\u3046\u304b\u3092\u5224\u5b9a\u3057\u307e\u3059\u3002",parameters:[{name:"cellreference"}]},{name:"ISTEXT",description:"\u30bb\u30eb\u306a\u3069\u306e\u5024\u304c\u6587\u5b57\u5217\u304b\u3069\u3046\u304b\u3092\u5224\u5b9a\u3057\u307e\u3059\u3002",parameters:[{name:"cellreference"}]},{name:"KURT",description:"\u30c7\u30fc\u30bf\u96c6\u5408\u306e\u5c16\u5ea6\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2"},{name:"value3"},{name:"value4",repeatable:true}]},{name:"LARGE",description:"\u30c7\u30fc\u30bf\u96c6\u5408\u5185\u3067 n \u756a\u76ee\u306b\u5927\u304d\u3044\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array"},{name:"n"}]},{name:"LCM",description:"\u6307\u5b9a\u3057\u305f\u6574\u6570\u306e\u6700\u5c0f\u516c\u500d\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"number1"},{name:"number2"}]},{name:"LEFT",description:"\u30c6\u30ad\u30b9\u30c8\u5024\u304b\u3089\u5148\u982d\uff08\u5de6\u7aef\uff09\u306e\u6587\u5b57\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"mytext"},{name:"num_chars"}]},{name:"LEN",description:"\u30c6\u30ad\u30b9\u30c8\u306e\u6587\u5b57\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"LINEST",description:"\u76f4\u7dda\u306b\u57fa\u3065\u304f\u7d71\u8a08\u5024\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"y"},{name:"x"},{name:"constant"},{name:"stats"}]},{name:"LN",description:"\u6307\u5b9a\u3057\u305f\u6570\u306e\u81ea\u7136\u5bfe\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002LN \u306f EXP \u306e\u9006\u95a2\u6570\u3067\u3059\u3002",parameters:[{name:"value"}]},{name:"LOG",description:"Y \u3092\u5e95\u3068\u3059\u308b\u6570\u5024 X \u306e\u5bfe\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"number"},{name:"base"}]},{name:"LOG10",description:"10 \u3092\u5e95\u3068\u3059\u308b\u6570\u5024 X \u306e\u5bfe\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"LOGEST",description:"\u30c7\u30fc\u30bf\u306b\u9069\u5408\u3059\u308b\u6307\u6570\u66f2\u7dda\u3092\u8a08\u7b97\u3057\u3001\u3053\u306e\u66f2\u7dda\u3092\u8868\u3059\u5024\u306e\u914d\u5217\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"y"},{name:"x"},{name:"constant"},{name:"stats"}]},{name:"LOGINV",description:"x \u306e\u5bfe\u6570\u6b63\u898f\u7d2f\u7a4d\u5206\u5e03\u95a2\u6570\u306e\u9006\u95a2\u6570\u306e\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"prob"},{name:"mean"},{name:"stdev"}]},{name:"LOGNORMDIST",description:"x \u306e\u5bfe\u6570\u6b63\u898f\u7d2f\u7a4d\u5206\u5e03\u95a2\u6570\u306e\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"x"},{name:"mean"},{name:"stdev"}]},{name:"LOOKUP",description:"\uff11\u884c\u307e\u305f\u306f\uff11\u5217\u5185\u306e\u30bb\u30eb\u7bc4\u56f2\u3001\u307e\u305f\u306f\u914d\u5217\u304b\u3089\u5024\u3092\u691c\u7d22\u3057\u307e\u3059\u3002",parameters:[{name:"lookupvalue"},{name:"lookupvector"},{name:"resultvector"}]},{name:"LOWER",description:"\u30c6\u30ad\u30b9\u30c8\u3092\u5c0f\u6587\u5b57\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"string"}]},{name:"MATCH",description:"\u6307\u5b9a\u3055\u308c\u305f\u9805\u76ee\u306e\u7bc4\u56f2\u5185\u306b\u304a\u3051\u308b\u76f8\u5bfe\u4f4d\u7f6e\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"array"},{name:"type"}]},{name:"MAX",description:"\u5f15\u6570\u30ea\u30b9\u30c8\u306e\u4e2d\u304b\u3089\u6700\u5927\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"MAXA",description:"\u5f15\u6570\u30ea\u30b9\u30c8\u306e\u4e2d\u304b\u3089\u6700\u5927\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"MDETERM",description:"\u914d\u5217\u306e\u884c\u5217\u5f0f\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array"}]},{name:"MDURATION",description:"\u984d\u9762\u3092 $100 \u3068\u307f\u306a\u3057\u305f\u8a3c\u5238\u306e\u4fee\u6b63\u30de\u30b3\u30fc\u30ec\u30fc \u30c7\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"settlement"},{name:"maturity"},{name:"coupon"},{name:"yield"},{name:"frequency"},{name:"basis"}]},{name:"MEDIAN",description:"\u6307\u5b9a\u3057\u305f\u4e00\u7fa4\u306e\u6570\u5024\u306e\u4e2d\u304b\u3089\u30e1\u30b8\u30a2\u30f3\uff08\u4e2d\u592e\u5024\uff09\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"MID",description:"\u30c6\u30ad\u30b9\u30c8\u5185\u306e\u6307\u5b9a\u4f4d\u7f6e\u304b\u3089\u3001\u6307\u5b9a\u3057\u305f\u6570\u306e\u6587\u5b57\u3092\u53d6\u308a\u51fa\u3057\u3066\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"text"},{name:"start_num"},{name:"num_chars"}]},{name:"MIN",description:"\u5f15\u6570\u30ea\u30b9\u30c8\u306e\u4e2d\u304b\u3089\u6700\u5c0f\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"MINA",description:"\u5f15\u6570\u30ea\u30b9\u30c8\u306e\u4e2d\u304b\u3089\u6700\u5c0f\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"MINUTE",description:"\u5f15\u6570\u30ea\u30b9\u30c8\u306e\u4e2d\u304b\u3089\u6700\u5c0f\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"time"}]},{name:"MINVERSE",description:"\u914d\u5217\u306b\u6307\u5b9a\u3057\u305f\u884c\u5217\u306e\u9006\u884c\u5217\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array"}]},{name:"MIRR",description:"\u4e00\u9023\u306e\u5b9a\u671f\u7684\u306a\u30ad\u30e3\u30c3\u30b7\u30e5\u30d5\u30ed\u30fc\u306b\u57fa\u3065\u304d\u3001\u4fee\u6b63\u5185\u90e8\u5229\u76ca\u7387\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"arrayvals"},{name:"payment_int"},{name:"income_int"}]},{name:"MMULT",description:"\uff12\u3064\u306e\u914d\u5217\u306b\u6307\u5b9a\u3057\u305f\u884c\u5217\u306e\u7a4d\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array1"},{name:"array2"}]},{name:"MOD",description:"number \u5f15\u6570\uff08\u88ab\u9664\u6570\uff09\u3092 divisor \u5f15\u6570\uff08\u9664\u6570\uff09\u3067\u5272\u3063\u305f\u3068\u304d\u306e\u5270\u4f59\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"dividend"},{name:"divisor"}]},{name:"MODE",description:"\u6307\u5b9a\u306e\u5f15\u6570\u30ea\u30b9\u30c8\u306e\u4e2d\u3067\u3001\u6700\u3082\u983b\u7e41\u306b\u51fa\u73fe\u3059\u308b\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"MONTH",description:"\u6307\u5b9a\u306e\u65e5\u4ed8\u5024\u306b\u5bfe\u5fdc\u3059\u308b\u6708\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"date"}]},{name:"MROUND",description:"\u6307\u5b9a\u306e\u500d\u6570\u3068\u306a\u308b\u3088\u3046\u306b\u4e38\u3081\u305f\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"number"},{name:"multiple"}]},{name:"MULTINOMIAL",description:"\u6307\u5b9a\u3055\u308c\u305f\u5f15\u6570\u30ea\u30b9\u30c8\u306e\u591a\u9805\u4fc2\u6570\uff08\u30ea\u30b9\u30c8\u5185\u306e\u5024\u306e\u548c\u306e\u968e\u4e57\u3068\u3001\u5404\u5024\u306e\u968e\u4e57\u306e\u7a4d\u3068\u306e\u6bd4\uff09\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"N",description:"\u6570\u5024\u306b\u5909\u63db\u3057\u305f\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"NA",description:"\u300c\u5229\u7528\u4e0d\u53ef\u300d\u3092\u610f\u5473\u3059\u308b\u30a8\u30e9\u30fc\u5024 #N/A \u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[]},{name:"NEGBINOMDIST",description:"\u8ca0\u306e\u4e8c\u9805\u5206\u5e03\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"x"},{name:"r"},{name:"p"}]},{name:"NETWORKDAYS",description:"\u958b\u59cb\u65e5\u304b\u3089\u7d42\u4e86\u65e5\u307e\u3067\u306e\u671f\u9593\u5185\u3067\u3001\u5b8c\u5168\u306a\u7a3c\u50cd\u65e5\u306e\u5408\u8a08\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"startdate"},{name:"enddate"},{name:"holidays"}]},{name:"NOMINAL",description:"\u6307\u5b9a\u306e\u5b9f\u52b9\u5229\u7387\u3068\uff11\u5e74\u3042\u305f\u308a\u306e\u8907\u5229\u8a08\u7b97\u671f\u9593\u306b\u57fa\u3065\u304d\u3001\u540d\u76ee\u4e0a\u306e\u5e74\u5229\u7387\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"effrate"},{name:"comper"}]},{name:"NORMDIST",description:"\u6307\u5b9a\u306e\u5e73\u5747\u3068\u6a19\u6e96\u504f\u5dee\u306b\u5bfe\u3059\u308b\u6b63\u898f\u7d2f\u7a4d\u5206\u5e03\u95a2\u6570\u306e\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"x"},{name:"mean"},{name:"stdev"},{name:"cumulative"}]},{name:"NORMINV",description:"\u6307\u5b9a\u306e\u5e73\u5747\u3068\u6a19\u6e96\u504f\u5dee\u306b\u5bfe\u3059\u308b\u6b63\u898f\u7d2f\u7a4d\u5206\u5e03\u95a2\u6570\u306e\u9006\u95a2\u6570\u306e\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"prob"},{name:"mean"},{name:"stdev"}]},{name:"NORMSDIST",description:"\u6a19\u6e96\u6b63\u898f\u7d2f\u7a4d\u5206\u5e03\u95a2\u6570\u306e\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"NORMSINV",description:"\u6a19\u6e96\u6b63\u898f\u7d2f\u7a4d\u5206\u5e03\u95a2\u6570\u306e\u9006\u95a2\u6570\u306e\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002\u3053\u306e\u5206\u5e03\u3067\u306f\u3001\u5e73\u5747\u304c\uff10\u3001\u6a19\u6e96\u504f\u5dee\u304c\uff11\u3068\u306a\u308a\u307e\u3059\u3002",parameters:[{name:"prob"}]},{name:"NOT",description:"\u5f15\u6570\u306e\u8ad6\u7406\u5024\u3092\u9006\u306b\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"NOW",description:"\u73fe\u5728\u306e\u65e5\u4ed8\u3068\u6642\u523b\u3092\u8868\u3059\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[]},{name:"NPER",description:"\u73fe\u884c\u4fa1\u5024\u3001\u5c06\u6765\u4fa1\u5024\u3001\u5b9a\u671f\u6255\u3044\u3001\u304a\u3088\u3073\u7279\u5b9a\u306e\u5229\u7387\u3092\u6761\u4ef6\u3068\u3057\u3001\u6295\u8cc7\u306b\u5fc5\u8981\u306a\u671f\u9593\uff08\u652f\u6255\u56de\u6570\uff09\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"rate"},{name:"paymt"},{name:"pval"},{name:"fval"},{name:"type"}]},{name:"NPV",description:"\u5272\u5f15\u7387\u3068\u3001\u5c06\u6765\u884c\u308f\u308c\u308b\u4e00\u9023\u306e\u652f\u6255\u3044\u304a\u3088\u3073\u305d\u306e\u53ce\u76ca\u306b\u57fa\u3065\u3044\u3066\u3001\u6295\u8cc7\u306e\u6b63\u5473\u73fe\u5728\u4fa1\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"discount"},{name:"value1"},{name:"value2",repeatable:true}]},{name:"OCT2BIN",description:"\uff18\u9032\u6570\u5024\u3092\uff12\u9032\u6570\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"number"},{name:"places"}]},{name:"OCT2DEC",description:"\uff18\u9032\u6570\u5024\u3092 10 \u9032\u6570\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"number"}]},{name:"OCT2HEX",description:"\uff18\u9032\u6570\u5024\u3092 16 \u9032\u6570\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"number"},{name:"places"}]},{name:"ODD",description:"\u6307\u5b9a\u3057\u305f\u5024\u3092\u5207\u308a\u4e0a\u3052\u3001\u6700\u3082\u8fd1\u3044\u5947\u6570\u306e\u6574\u6570\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"ODDFPRICE",description:"\uff11\u671f\u76ee\u306e\u65e5\u6570\u304c\u534a\u7aef\u306a\u8a3c\u5238\u306b\u5bfe\u3057\u3001\u984d\u9762 $100 \u3042\u305f\u308a\u306e\u4fa1\u683c\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"settle"},{name:"maturity"},{name:"issue"},{name:"first"},{name:"rate"},{name:"yield"},{name:"redeem"},{name:"freq"},{name:"basis"}]},{name:"ODDFYIELD",description:"\uff11\u671f\u76ee\u306e\u65e5\u6570\u304c\u534a\u7aef\u306a\u8a3c\u5238\u306e\u5229\u56de\u308a\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"settle"},{name:"maturity"},{name:"issue"},{name:"first"},{name:"rate"},{name:"price"},{name:"redeem"},{name:"freq"},{name:"basis"}]},{name:"ODDLPRICE",description:"\u6700\u7d42\u671f\u306e\u65e5\u6570\u304c\u534a\u7aef\u306a\u8a3c\u5238\u306b\u5bfe\u3057\u3001\u984d\u9762 $100 \u3042\u305f\u308a\u306e\u4fa1\u683c\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"settle"},{name:"maturity"},{name:"last"},{name:"rate"},{name:"yield"},{name:"redeem"},{name:"freq"},{name:"basis"}]},{name:"ODDLYIELD",description:"\u6700\u7d42\u671f\u306e\u65e5\u6570\u304c\u534a\u7aef\u306a\u8a3c\u5238\u306e\u5229\u56de\u308a\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"settle"},{name:"maturity"},{name:"last"},{name:"rate"},{name:"price"},{name:"redeem"},{name:"freq"},{name:"basis"}]},{name:"OFFSET",description:"\u3053\u306e\u95a2\u6570\u306f\u3001\u30bb\u30eb\u7bc4\u56f2\u3078\u306e\u53c2\u7167\u3092\u8fd4\u3057\u307e\u3059\u3002 \u8fd4\u3055\u308c\u308b\u30bb\u30eb\u7bc4\u56f2\u306f\u3001\u5358\u4e00\u306e\u30bb\u30eb\u307e\u305f\u306f\u30bb\u30eb\u7bc4\u56f2\u304b\u3089\u306e\u884c\u6570\u3068\u5217\u6570\u3067\u6307\u5b9a\u3057\u307e\u3059\u3002 \u3053\u308c\u306b\u3088\u308a\u3001\u5358\u4e00\u306e\u30bb\u30eb\u307e\u305f\u306f\u30bb\u30eb\u7bc4\u56f2\u304c\u8fd4\u3055\u308c\u307e\u3059\u3002",parameters:[{name:"reference"},{name:"rows"},{name:"cols"},{name:"height"},{name:"width"}]},{name:"OR",description:"\u3044\u305a\u308c\u304b\u306e\u5f15\u6570\u304c\u771f\u3067\u3042\u308c\u3070\uff11\uff08True\uff09\u3092\u3001\u3059\u3079\u3066\u306e\u5f15\u6570\u304c\u507d\u3067\u3042\u308c\u3070\uff10\uff08False\uff09\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"argument1"},{name:"argument2..."}]},{name:"PEARSON",description:"\u30d4\u30a2\u30bd\u30f3\u306e\u7a4d\u7387\u76f8\u95a2\u4fc2\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002\u3053\u308c\u306f -1.0\uff5e1.0 \u306e\u7bc4\u56f2\u306e\u6570\u5024\u3067\u3042\u308a\u3001\uff12\u7d44\u306e\u30c7\u30fc\u30bf\u9593\u3067\u306e\u7dda\u5f62\u76f8\u95a2\u306e\u7a0b\u5ea6\u3092\u793a\u3057\u307e\u3059\u3002",parameters:[{name:"array_ind"},{name:"array_dep"}]},{name:"PERCENTILE",description:"\u3042\u308b\u7bc4\u56f2\u5185\u306e\u5024\u306e\u4e2d\u3067 n \u756a\u76ee\u306e\u767e\u5206\u4f4d\u3092\u6301\u3064\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array"},{name:"n"}]},{name:"PERCENTRANK",description:"\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u5185\u306e\u5024\u306e\u9806\u4f4d\u3092\u3001\u3053\u306e\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u5185\u306e\u767e\u5206\u7387\u3068\u3057\u3066\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array"},{name:"n"},{name:"sigdig"}]},{name:"PERMUT",description:"\u6307\u5b9a\u3057\u305f\u6570\u306e\u6a19\u672c\u3092\u629c\u304d\u53d6\u308b\u969b\u306e\u3001\u6709\u52b9\u306a\u9806\u5217\u306e\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"k"},{name:"n"}]},{name:"PI",description:"\u5186\u5468\u7387\uff08\u03c0\uff09\u3092 3.1415926536 \u3068\u3057\u3066\u8fd4\u3057\u307e\u3059\u3002",parameters:[]},{name:"PMT",description:"\u73fe\u5728\u4fa1\u5024\u3001\u6307\u5b9a\u306e\u5229\u7387\u3001\u304a\u3088\u3073\u652f\u6255\u56de\u6570\u306b\u57fa\u3065\u304d\u3001\u501f\u5165\u91d1\u8fd4\u6e08\u3067\u306e\u5b9a\u671f\u652f\u6255\u984d\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"rate"},{name:"nper"},{name:"pval"},{name:"fval"},{name:"type"}]},{name:"POISSON",description:"\u30dd\u30a2\u30bd\u30f3\u78ba\u7387\u5206\u5e03\u306e\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"nevents"},{name:"mean"},{name:"cumulative"}]},{name:"POWER",description:"\u6307\u5b9a\u306e\u6570\uff08X\uff09\u3092\u5e95\u3068\u3059\u308b\u6307\u6570\uff08Y\uff09\u306e\u3079\u304d\u4e57\u3092\u6c42\u3081\u307e\u3059\u3002",parameters:[{name:"number"},{name:"power"}]},{name:"PPMT",description:"\u5143\u91d1\u306e\u8fd4\u6e08\u984d\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"rate"},{name:"per"},{name:"nper"},{name:"pval"},{name:"fval"},{name:"type"}]},{name:"PRICE",description:"\u5b9a\u671f\u7684\u306b\u5229\u606f\u304c\u652f\u6255\u308f\u308c\u308b\u8a3c\u5238\u306b\u5bfe\u3057\u3001\u984d\u9762 $100 \u3042\u305f\u308a\u306e\u4fa1\u683c\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"settlement"},{name:"maturity"},{name:"rate"},{name:"yield"},{name:"redeem"},{name:"frequency"},{name:"basis"}]},{name:"PRICEDISC",description:"\u5272\u5f15\u50b5\u306e\u984d\u9762 $100 \u3042\u305f\u308a\u306e\u4fa1\u683c\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"settle"},{name:"mature"},{name:"discount"},{name:"redeem"},{name:"basis"}]},{name:"PRICEMAT",description:"\u6e80\u671f\u65e5\u306b\u5229\u606f\u304c\u6255\u308f\u308c\u308b\u8a3c\u5238\u306b\u5bfe\u3057\u3001\u984d\u9762 $100 \u3042\u305f\u308a\u306e\u4fa1\u683c\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"settle"},{name:"mature"},{name:"issue"},{name:"rate"},{name:"yield"},{name:"basis"}]},{name:"PROB",description:"\u7279\u5b9a\u7bc4\u56f2\u5185\u306e\u5024\u304c\u4e0a\u9650\u3068\u4e0b\u9650\u306e\u9593\u306b\u53ce\u307e\u308b\u78ba\u7387\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array"},{name:"probs"},{name:"lower"},{name:"upper"}]},{name:"PRODUCT",description:"\u3059\u3079\u3066\u306e\u5f15\u6570\u5024\u3092\u4e57\u7b97\u3057\u3066\u5f97\u305f\u7a4d\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"PV",description:"\u7279\u5b9a\u306e\u5229\u7387\u3001\u5b9a\u671f\u6255\u3044\u306e\u56de\u6570\u3068\u652f\u6255\u984d\u3001\u304a\u3088\u3073\u5c06\u6765\u4fa1\u5024\u3092\u6761\u4ef6\u3068\u3057\u3066\u3001\u6295\u8cc7\u306e\u73fe\u5728\u4fa1\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"rate"},{name:"numper"},{name:"paymt"},{name:"fval"},{name:"type"}]},{name:"QUARTILE",description:"\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u304b\u3089\u3001\u6307\u5b9a\u3057\u305f\u56db\u5206\u4f4d\u6570\uff08\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u306e 1/4\uff3b25%\uff3d\uff09\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array"},{name:"quart"}]},{name:"QUOTIENT",description:"\u9664\u7b97\u3067\u5f97\u305f\u5546\u306e\u6574\u6570\u90e8\u5206\u3092\u8fd4\u3057\u307e\u3059\u3002QUOTIENT \u95a2\u6570\u306f\u3001\u5546\u306e\u4f59\u308a\uff08\u5270\u4f59\uff09\u3092\u7121\u8996\u3057\u305f\u3044\u5834\u5408\u306b\u4f7f\u7528\u3057\u307e\u3059\u3002",parameters:[{name:"numerator"},{name:"denominator"}]},{name:"RADIANS",description:"\u5ea6\u5358\u4f4d\u306e\u89d2\u5ea6\u306e\u5024\u3092\u30e9\u30b8\u30a2\u30f3\u5358\u4f4d\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"RADIANS",description:"\u5ea6\u5358\u4f4d\u306e\u89d2\u5ea6\u306e\u5024\u3092\u30e9\u30b8\u30a2\u30f3\u5358\u4f4d\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"RAND",description:"\u5206\u5e03\u304c\u4e00\u69d8\u306a\u30010\u4ee5\u4e0a1\u672a\u6e80\u306e\u4e71\u6570\u3092\u767a\u751f\u3055\u305b\u307e\u3059\u3002RAND \u95a2\u6570\u306f\u3001\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u304c\u518d\u8a08\u7b97\u3055\u308c\u308b\u305f\u3073\u306b\u65b0\u305f\u306a\u4e71\u6570\u3092\u767a\u751f\u3055\u305b\u307e\u3059\u3002",parameters:[]},{name:"RANDBETWEEN",description:"\u6307\u5b9a\u3057\u305f\uff12\u3064\u306e\u6570\u5024\u9593\u306e\u7bc4\u56f2\u3067\u4e71\u6570\u3092\u767a\u751f\u3055\u305b\u307e\u3059\u3002RANDBETWEEN \u95a2\u6570\u306f\u3001\u30b7\u30fc\u30c8\u304c\u518d\u8a08\u7b97\u3055\u308c\u308b\u305f\u3073\u306b\u65b0\u305f\u306b\u4e71\u6570\u3092\u767a\u751f\u3055\u305b\u307e\u3059\u3002",parameters:[{name:"lower"},{name:"upper"}]},{name:"RANK",description:"\u6570\u5024\u30ea\u30b9\u30c8\u306e\u4e2d\u304b\u3089\u3001\u6307\u5b9a\u306e\u6570\u5024\u304c\u4f55\u756a\u76ee\u306b\u4f4d\u7f6e\u3059\u308b\u304b\u3092\u8fd4\u3057\u307e\u3059\u3002RANK \u95a2\u6570\u306e\u8fd4\u3059\u9806\u4f4d\u306f\u3001\u30ea\u30b9\u30c8\u5185\u306e\u6570\u5024\u3092\u4e26\u3079\u66ff\u3048\u305f\u5834\u5408\u306e\u6570\u5024\u306e\u9806\u4f4d\u3068\u306a\u308a\u307e\u3059\u3002",parameters:[{name:"number"},{name:"array"},{name:"order"}]},{name:"RATE",description:"\u6295\u8cc7\u671f\u9593\u3092\u901a\u3058\u305f\u5229\u7387\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"nper"},{name:"pmt"},{name:"pval"},{name:"fval"},{name:"type"},{name:"guess"}]},{name:"RECEIVED",description:"\u5168\u984d\u6295\u8cc7\u3055\u308c\u305f\u8a3c\u5238\u306b\u5bfe\u3057\u3066\u3001\u6e80\u671f\u306b\u652f\u6255\u308f\u308c\u308b\u91d1\u984d\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"settle"},{name:"mature"},{name:"invest"},{name:"discount"},{name:"basis"}]},{name:"REPLACE",description:"\u6587\u5b57\u5217\u306e\u4e00\u90e8\u3092\u5225\u306e\u6587\u5b57\u5217\u306b\u7f6e\u304d\u63db\u3048\u307e\u3059\u3002",parameters:[{name:"old_text"},{name:"start_char"},{name:"num_chars"},{name:"new_text"}]},{name:"REPT",description:"\u6587\u5b57\u5217\u3092\u6307\u5b9a\u306e\u56de\u6570\u5206\u3001\u7e70\u308a\u8fd4\u3057\u8868\u793a\u3057\u307e\u3059\u3002",parameters:[{name:"text"},{name:"number"}]},{name:"RIGHT",description:"\u30c6\u30ad\u30b9\u30c8\u5024\u304b\u3089\u53f3\u7aef\u306e\u6587\u5b57\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"text"},{name:"num_chars"}]},{name:"ROMAN",description:"\u30a2\u30e9\u30d3\u30a2\u6570\u5b57\u3092\u3001\u30ed\u30fc\u30de\u6570\u5b57\u3092\u8868\u3059\u30c6\u30ad\u30b9\u30c8\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"number"},{name:"style"}]},{name:"ROUND",description:"\u6307\u5b9a\u306e\u6570\u5024\u3092\u3001\u6307\u5b9a\u306e\u6841\u6570\u306b\u306a\u308b\u3088\u3046\u306b\u56db\u6368\u4e94\u5165\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"places"}]},{name:"ROUNDDOWN",description:"\u6307\u5b9a\u306e\u6570\u5024\u3092\u3001\u6307\u5b9a\u306e\u6841\u6570\u306b\u306a\u308b\u3088\u3046\u306b\u5207\u308a\u6368\u3066\u307e\u3059\u3002",parameters:[{name:"value"},{name:"places"}]},{name:"ROUNDUP",description:"\u6307\u5b9a\u306e\u6570\u5024\u3092\u3001\u6307\u5b9a\u306e\u6841\u6570\u306b\u306a\u308b\u3088\u3046\u306b\u5207\u308a\u4e0a\u3052\u307e\u3059\u3002",parameters:[{name:"value"},{name:"places"}]},{name:"ROW",description:"\u53c2\u7167\u306e\u884c\u756a\u53f7\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"reference"}]},{name:"ROWS",description:"\u914d\u5217\u5185\u306e\u884c\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array"}]},{name:"RSQ",description:"\u65e2\u77e5\u306e x \u3068\u65e2\u77e5\u306e Y \u3092\u901a\u904e\u3059\u308b\u56de\u5e30\u76f4\u7dda\u306e\u30c7\u30fc\u30bf\u70b9\u3092\u4f7f\u7528\u3057\u3066\u3001\u30d4\u30a2\u30bd\u30f3\u7a4d\u7387\u76f8\u95a2\u4fc2\u6570\u306e\u4e8c\u4e57\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array_dep"},{name:"array_ind"}]},{name:"SEARCH",description:"\u30c6\u30ad\u30b9\u30c8\u5185\u304b\u3089\u6307\u5b9a\u306e\u6587\u5b57\u3092\u691c\u7d22\u3057\u3001\u30c6\u30ad\u30b9\u30c8\u5185\u306b\u304a\u3051\u308b\u3053\u306e\u6587\u5b57\u306e\u958b\u59cb\u4f4d\u7f6e\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"string1"},{name:"string2"}]},{name:"SECOND",description:"\u6307\u5b9a\u306e\u6642\u523b\u5024\u306b\u5bfe\u5fdc\u3059\u308b\u79d2\u306e\u5024\uff080\uff5e59\uff09\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"time"}]},{name:"SERIESSUM",description:"\u3079\u304d\u7d1a\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"x"},{name:"n"},{name:"m"},{name:"coeff"}]},{name:"SIGN",description:"\u6570\u5024\u306e\u7b26\u53f7\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"cellreference"}]},{name:"SIN",description:"\u6307\u5b9a\u3057\u305f\u89d2\u5ea6\u306e\u30b5\u30a4\u30f3\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"angle"}]},{name:"SINH",description:"\u6307\u5b9a\u3057\u305f\u6570\u5024\u306e\u30cf\u30a4\u30d1\u30fc\u30dc\u30ea\u30c3\u30af\u30b5\u30a4\u30f3\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"SKEW",description:"\u5206\u5e03\u306e\u6b6a\u5ea6\uff08\u5e73\u5747\u5024\u304b\u3089\u306e\u30c7\u30fc\u30bf\u306e\u504f\u308a\uff09\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"number1"},{name:"number2",repeatable:true}]},{name:"SLN",description:"\u5b9a\u984d\u6cd5\u3092\u4f7f\u7528\u3057\u3066\u3001\uff11\u671f\u3042\u305f\u308a\u306e\u8cc7\u7523\u306e\u6e1b\u4fa1\u511f\u5374\u8cbb\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"cost"},{name:"salvage"},{name:"life"}]},{name:"SLOPE",description:"\u56de\u5e30\u76f4\u7dda\u306e\u50be\u304d\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"array_dep"},{name:"array_ind"}]},{name:"SMALL",description:"\u30c7\u30fc\u30bf\u96c6\u5408\u5185\u3067 n \u756a\u76ee\u306b\u5c0f\u3055\u3044\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array"},{name:"n"}]},{name:"SQRT",description:"\u6307\u5b9a\u3057\u305f\u6570\u5024\u306e\u6b63\u306e\u5e73\u65b9\u6839\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"SQRTPI",description:"\u6307\u5b9a\u306e\u6570\u5024\u3092\u5186\u5468\u7387\u306b\u639b\u3051\u305f\u5024\u306e\u6b63\u306e\u5e73\u65b9\u6839\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"multiple"}]},{name:"STANDARDIZE",description:"\u7279\u5b9a\u306e\u5e73\u5747\u5024\u3068\u6a19\u6e96\u504f\u5dee\u3067\u6c7a\u5b9a\u3055\u308c\u308b\u5206\u5e03\u3092\u6a19\u6e96\u5316\u3059\u308b\u305f\u3081\u306e\u5909\u91cf\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"x"},{name:"mean"},{name:"stdev"}]},{name:"STDEVA",description:"\u6307\u5b9a\u3057\u305f\u6570\u5024\u306e\u96c6\u5408\u304b\u3089\u6a19\u6e96\u504f\u5dee\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"STDEVP",description:"\u5f15\u6570\u3068\u3057\u3066\u6307\u5b9a\u3057\u305f\u6bcd\u96c6\u56e3\u5168\u4f53\u306e\u6a19\u6e96\u504f\u5dee\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"STDEVPA",description:"\u5f15\u6570\u3068\u3057\u3066\u6307\u5b9a\u3057\u305f\u6bcd\u96c6\u56e3\u5168\u4f53\u306e\u6a19\u6e96\u504f\u5dee\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"STEYX",description:"\u500b\u5225\u306e x \u306b\u5bfe\u3059\u308b y \u306e\u4e88\u6e2c\u5024\u306e\u6a19\u6e96\u8aa4\u5dee\u3092\u8fd4\u3057\u307e\u3059\u3002\u6a19\u6e96\u8aa4\u5dee\u3068\u306f\u3001x \u5024\u306b\u5bfe\u3057\u3066\u4e88\u6e2c\u3055\u308c\u308b y \u5024\u306e\u8aa4\u5dee\u306e\u91cf\u3092\u8868\u3059\u6307\u6a19\u3067\u3059\u3002",parameters:[{name:"array_dep"},{name:"array_ind"}]},{name:"SUBSTITUTE",description:"\u65e2\u5b58\u6587\u5b57\u5217\u5185\u306e\u6307\u5b9a\u306e\u6587\u5b57\u3092\u3001\u65b0\u898f\u6587\u5b57\u5217\u306b\u7f6e\u304d\u63db\u3048\u307e\u3059\u3002",parameters:[{name:"text"},{name:"old_piece"},{name:"new_piece"},{name:"instance"}]},{name:"SUBTOTAL",description:"\u5c0f\u8a08\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"functioncode"},{name:"value1"},{name:"value2",repeatable:true}]},{name:"SUM",description:"\u30bb\u30eb\u307e\u305f\u306f\u30bb\u30eb\u30d6\u30ed\u30c3\u30af\u306e\u548c\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"SUMIF",description:"\u6307\u5b9a\u306e\u57fa\u6e96\u306b\u57fa\u3065\u304d\u3001\u30bb\u30eb\u5024\u3092\u5408\u8a08\u3057\u307e\u3059\u3002",parameters:[{name:"array"},{name:"condition"},{name:"sumrange"}]},{name:"SUMIFS",description:"\u8907\u6570\u306e\u57fa\u6e96\u306b\u57fa\u3065\u304d\u3001\u30bb\u30eb\u5024\u3092\u5408\u8a08\u3057\u307e\u3059\u3002",parameters:[{name:"array"},{name:"conditionarray"},{name:"condition",repeatable:true}]},{name:"SUMPRODUCT",description:"\u6307\u5b9a\u306e\u914d\u5217\u5185\u306e\u5bfe\u5fdc\u3059\u308b\u8981\u7d20\u306e\u7a4d\u3092\u7b97\u51fa\u3057\u3001\u3053\u308c\u3089\u306e\u7a4d\u306e\u5408\u8a08\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array1"},{name:"array2",repeatable:true}]},{name:"SUMSQ",description:"\u5f15\u6570\u306b\u6307\u5b9a\u3057\u305f\u5024\u306e\uff12\u4e57\u306e\u5408\u8a08\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"SUMX2MY2",description:"\uff12\u3064\u306e\u914d\u5217\u5185\u306e\u5bfe\u5fdc\u3059\u308b\u8981\u7d20\u306e\u5e73\u65b9\u5dee\u3092\u5408\u8a08\u3057\u3066\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array_x"},{name:"array_y"}]},{name:"SUMX2PY2",description:"\uff12\u3064\u306e\u914d\u5217\u5185\u306e\u5bfe\u5fdc\u3059\u308b\u8981\u7d20\u306e\u5e73\u65b9\u548c\u3092\u5408\u8a08\u3057\u3066\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array_x"},{name:"array_y"}]},{name:"SUMXMY2",description:"\uff12\u3064\u306e\u914d\u5217\u5185\u306e\u5bfe\u5fdc\u3059\u308b\u8981\u7d20\u306e\u5dee\u3092\uff12\u4e57\u3057\u3066\u5408\u8a08\u3057\u307e\u3059\u3002",parameters:[{name:"array_x"},{name:"array_y"}]},{name:"SYD",description:"\u5b9a\u984d\u9013\u6e1b\u6cd5\u3092\u4f7f\u7528\u3057\u3066\u3001\u7279\u5b9a\u671f\u9593\u306e\u8cc7\u7523\u306e\u6e1b\u4fa1\u511f\u5374\u8cbb\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"cost"},{name:"salvage"},{name:"life"},{name:"period"}]},{name:"T",description:"\u30bb\u30eb\u5185\u306b\u30c6\u30ad\u30b9\u30c8\u304c\u4fdd\u6301\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306b\u3053\u306e\u30c6\u30ad\u30b9\u30c8\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"TAN",description:"\u6307\u5b9a\u3057\u305f\u89d2\u5ea6\u306e\u30bf\u30f3\u30b8\u30a7\u30f3\u30c8\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"angle"}]},{name:"TANH",description:"\u6307\u5b9a\u3057\u305f\u6570\u5024\u306e\u30cf\u30a4\u30d1\u30fc\u30dc\u30ea\u30c3\u30af\u30bf\u30f3\u30b8\u30a7\u30f3\u30c8\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"TBILLEQ",description:"\u7c73\u56fd\u8ca1\u52d9\u7701\u77ed\u671f\u8a3c\u5238\uff08TB\uff09\u306e\u50b5\u5238\u306b\u76f8\u5f53\u3059\u308b\u5229\u56de\u308a\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"settle"},{name:"mature"},{name:"discount"}]},{name:"TBILLPRICE",description:"\u7c73\u56fd\u8ca1\u52d9\u7701\u77ed\u671f\u8a3c\u5238\uff08TB\uff09\u306e\u984d\u9762 $100 \u3042\u305f\u308a\u306e\u4fa1\u683c\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"settle"},{name:"mature"},{name:"discount"}]},{name:"TBILLYIELD",description:"\u7c73\u56fd\u8ca1\u52d9\u7701\u77ed\u671f\u8a3c\u5238\uff08TB\uff09\u306e\u5229\u56de\u308a\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"settle"},{name:"mature"},{name:"priceper"}]},{name:"TDIST",description:"t \u5206\u5e03\u306e\u78ba\u7387\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"x"},{name:"deg"},{name:"tails"}]},{name:"TEXT",description:"\u6570\u5024\u3092\u66f8\u5f0f\u8a2d\u5b9a\u3057\u3001\u30c6\u30ad\u30b9\u30c8\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"text"}]},{name:"TIME",description:"\u6307\u5b9a\u306e\u6642\u9593\u306b\u5bfe\u3059\u308b DateTime \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"hour"},{name:"minutes"},{name:"seconds"}]},{name:"TIMEVALUE",description:"\u6587\u5b57\u5217\u3067\u8868\u3055\u308c\u308b\u6642\u523b\u306b\u5bfe\u5fdc\u3059\u308b\u6642\u9593\u9593\u9694\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"time_string"}]},{name:"TINV",description:"\u30b9\u30c1\u30e5\u30fc\u30c7\u30f3\u30c8\u306e t \u5206\u5e03\u306e\u5024\u3092\u3001\u78ba\u7387\u3068\u81ea\u7531\u5ea6\u3092\u4f7f\u7528\u3057\u305f\u95a2\u6570\u3068\u3057\u3066\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"prog"},{name:"deg"}]},{name:"TODAY",description:"\u73fe\u5728\u306e\u65e5\u4ed8\u3092\u8868\u3059\u9023\u7d9a\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[]},{name:"TRANSPOSE",description:"\u6c34\u5e73\u30bb\u30eb\u7bc4\u56f2\u3092\u5782\u76f4\u30bb\u30eb\u7bc4\u56f2\u3068\u3057\u3066\u8fd4\u3057\u3001\u5782\u76f4\u30bb\u30eb\u7bc4\u56f2\u3092\u6c34\u5e73\u30bb\u30eb\u7bc4\u56f2\u3068\u3057\u3066\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array"}]},{name:"TREND",description:"\u56de\u5e30\u76f4\u7dda\u306b\u5bfe\u3057\u3066\u4e88\u6e2c\u3055\u308c\u308b\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"y"},{name:"x"},{name:"newx"},{name:"constant"}]},{name:"TRIM",description:"\u6587\u5b57\u5217\u304b\u3089\u4f59\u5206\u306a\u30b9\u30da\u30fc\u30b9\u3092\u524a\u9664\u3057\u3001\u5358\u8a9e\u9593\u306b\uff11\u6587\u5b57\u5206\u306e\u30b9\u30da\u30fc\u30b9\u3092\u4fdd\u3061\u307e\u3059\u3002",parameters:[{name:"text"}]},{name:"TRIMMEAN",description:"\u4e0a\u4f4d\u304a\u3088\u3073\u4e0b\u4f4d\u306e\u30c7\u30fc\u30bf\u3092\u9664\u5916\u3057\u305f\u3001\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u5185\u306e\u4e2d\u9593\u30c7\u30fc\u30bf\u306e\u5e73\u5747\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"array"},{name:"percent"}]},{name:"TRUE",description:"\u8ad6\u7406\u5024\uff11\uff08True\uff09\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[]},{name:"TRUNC",description:"\u30b9\u30c1\u30e5\u30fc\u30c7\u30f3\u30c8\u306e t \u691c\u5b9a\u306b\u95a2\u9023\u3059\u308b\u78ba\u7387\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"precision"}]},{name:"TTEST",description:"\u30b9\u30c1\u30e5\u30fc\u30c7\u30f3\u30c8\u306e t \u691c\u5b9a\u306b\u95a2\u9023\u3059\u308b\u78ba\u7387\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array1"},{name:"array2"},{name:"tails"},{name:"type"}]},{name:"TYPE",description:"\u5024\u306e\u30c7\u30fc\u30bf\u578b\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"}]},{name:"UPPER",description:"\u30c6\u30ad\u30b9\u30c8\u3092\u5927\u6587\u5b57\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"string"}]},{name:"VALUE",description:"\u6570\u5024\u3092\u8868\u3059\u6587\u5b57\u5217\u3092\u6570\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002",parameters:[{name:"text"}]},{name:"VAR",description:"\u5f15\u6570\u5024\u3092\u6bcd\u96c6\u56e3\u306e\u6a19\u672c\u3068\u307f\u306a\u3057\u3001\u6bcd\u96c6\u56e3\u306e\u5206\u6563\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"VARA",description:"\u5f15\u6570\u5024\u3092\u6bcd\u96c6\u56e3\u306e\u6a19\u672c\u3068\u307f\u306a\u3057\u3001\u6bcd\u96c6\u56e3\u306e\u5206\u6563\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"VARP",description:"\u6bcd\u96c6\u56e3\u5168\u4f53\u306e\u5206\u6563\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"VARPA",description:"\u6bcd\u96c6\u56e3\u5168\u4f53\u306e\u5206\u6563\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"value1"},{name:"value2",repeatable:true}]},{name:"VDB",description:"\u500d\u7387\u6cd5\u3092\u4f7f\u7528\u3057\u3066\u3001\u6307\u5b9a\u3057\u305f\u4efb\u610f\u306e\u671f\u9593\u306b\u304a\u3051\u308b\u8cc7\u7523\u306e\u6e1b\u4fa1\u511f\u5374\u8cbb\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002",parameters:[{name:"cost"},{name:"salvage"},{name:"life"},{name:"start"},{name:"end"},{name:"factor"},{name:"switchnot"}]},{name:"VLOOKUP",description:"\u6307\u5b9a\u7bc4\u56f2\u306e\u6700\u5de6\u5217\u304b\u3089\u5024\u3092\u691c\u7d22\u3057\u3001\u6307\u5b9a\u306e\u5217\u304b\u3089\u3001\u3053\u306e\u5024\u3068\u540c\u3058\u884c\u5185\u306e\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"value"},{name:"array"},{name:"colindex"},{name:"approx"}]},{name:"WEEKDAY",description:"\u6307\u5b9a\u306e\u65e5\u4ed8\u306b\u5bfe\u5fdc\u3059\u308b\u66dc\u65e5\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"date"},{name:"type"}]},{name:"WEEKNUM",description:"\u6307\u5b9a\u306e\u65e5\u4ed8\u304c\u305d\u306e\u5e74\u306e\u4f55\u9031\u76ee\u306b\u5f53\u305f\u308b\u304b\u3092\u8868\u3059\u6570\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"date"},{name:"weektype"}]},{name:"WEIBULL",description:"\uff12\u3064\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u306b\u3088\u308b\u30ef\u30a4\u30d6\u30eb\u5206\u5e03\u306e\u5024\u3092\u7b97\u51fa\u3057\u307e\u3059\u3002\u3053\u308c\u306f\u3001\u4fe1\u983c\u6027\u306e\u5206\u6790\u306a\u3069\u306b\u3088\u304f\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002",parameters:[{name:"x"},{name:"alpha"},{name:"beta"},{name:"cumulative"}]},{name:"WORKDAY",description:"\u958b\u59cb\u65e5\u3088\u308a\u6307\u5b9a\u306e\u65e5\u6570\u5206\u4ee5\u524d\u307e\u305f\u306f\u4ee5\u964d\u306e\u7a3c\u50cd\u65e5\u306e\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"startdate"},{name:"numdays"},{name:"holidays"}]},{name:"XIRR",description:"\u4e88\u5b9a\u3055\u308c\u3066\u3044\u308b\u30ad\u30e3\u30c3\u30b7\u30e5\u30d5\u30ed\u30fc\uff08\u5b9a\u671f\u7684\u3001\u307e\u305f\u306f\u4e0d\u5b9a\u671f\uff09\u306b\u57fa\u3065\u304d\u3001\u5185\u90e8\u5229\u76ca\u7387\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"values"},{name:"dates"},{name:"guess"}]},{name:"XNPV",description:"\u4e88\u5b9a\u3055\u308c\u3066\u3044\u308b\u30ad\u30e3\u30c3\u30b7\u30e5\u30d5\u30ed\u30fc\uff08\u5b9a\u671f\u7684\u3001\u307e\u305f\u306f\u4e0d\u5b9a\u671f\uff09\u306b\u57fa\u3065\u304d\u3001\u6b63\u5473\u73fe\u5728\u4fa1\u5024\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"rate"},{name:"values"},{name:"dates"}]},{name:"YEAR",description:"\u6307\u5b9a\u306e\u65e5\u4ed8\u306b\u5bfe\u5fdc\u3059\u308b\u5e74\u3092\u8868\u3059\u6574\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"date"}]},{name:"YEARFRAC",description:"\u958b\u59cb\u65e5\u304b\u3089\u7d42\u4e86\u65e5\u307e\u3067\u306e\u671f\u9593\u5185\u306e\u5b8c\u5168\u306a\u65e5\u6570\u304c\u3001\uff11\u5e74\u306e\u3069\u308c\u3060\u3051\u3092\u5360\u3081\u308b\u304b\u3092\u8868\u3059\u5272\u5408\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"startdate"},{name:"enddate"},{name:"basis"}]},{name:"YIELD",description:"\u5b9a\u671f\u7684\u306b\u5229\u606f\u304c\u652f\u6255\u308f\u308c\u308b\u8a3c\u5238\u306e\u5229\u56de\u308a\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"settle"},{name:"maturity"},{name:"rate"},{name:"price"},{name:"redeem"},{name:"frequency"},{name:"basis"}]},{name:"YIELDDISC",description:"\u5272\u5f15\u50b5\u306e\u5e74\u5229\u56de\u308a\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"settle"},{name:"maturity"},{name:"price"},{name:"redeem"},{name:"basis"}]},{name:"YIELDMAT",description:"\u6e80\u671f\u306b\u5229\u606f\u304c\u652f\u6255\u308f\u308c\u308b\u8a3c\u5238\u306e\u5e74\u5229\u56de\u308a\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002",parameters:[{name:"settle"},{name:"maturity"},{name:"issue"},{name:"issrate"},{name:"price"},{name:"basis"}]},{name:"ZTEST",description:"z \u691c\u5b9a\u306e\u6709\u610f\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002z \u691c\u5b9a\u3067\u306f\u3001\u4e00\u7fa4\u306e\u30c7\u30fc\u30bf\u306b\u5bfe\u3059\u308b\u691c\u5b9a\u5024 x \u306e\u6a19\u6e96\u30b9\u30b3\u30a2\u3092\u751f\u6210\u3057\u3001\u6b63\u898f\u5206\u5e03\u306e\u4e21\u5074\u306e\u78ba\u7387\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002",parameters:[{name:"array"},{name:"x"},{name:"sigma"}]},{name:"PIESPARKLINE",description:"\u5186\u30b9\u30d1\u30fc\u30af\u30e9\u30a4\u30f3\u3092\u8868\u793a\u3059\u308b\u70ba\u306e\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3092\u8fd4\u3057\u307e\u3059",parameters:[{name:"range|percentage"},{name:"color",repeatable:true}]},{name:"AREASPARKLINE",description:"\u9762\u30b9\u30d1\u30fc\u30af\u30e9\u30a4\u30f3\u3092\u8868\u793a\u3059\u308b\u70ba\u306e\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3092\u8fd4\u3057\u307e\u3059",parameters:[{name:"points"},{name:"mini"},{name:"maxi"},{name:"line1"},{name:"line2"},{name:"colorPositive"},{name:"colorNegative"}]},{name:"SCATTERSPARKLINE",description:"\u6563\u5e03\u56f3\u30b9\u30d1\u30fc\u30af\u30e9\u30a4\u30f3\u3092\u8868\u793a\u3059\u308b\u70ba\u306e\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3092\u8fd4\u3057\u307e\u3059",parameters:[{name:"points1"},{name:"points2"},{name:"minX"},{name:"maxX"},{name:"minY"},{name:"maxY"},{name:"hLine"},{name:"vLine"},{name:"xMinZone"},{name:"xMaxZone"},{name:"yMinZone"},{name:"yMaxZone"},{name:"tags"},{name:"drawSymbol"},{name:"drawLines"},{name:"color1"},{name:"color2"},{name:"dash"}]},{name:"LINESPARKLINE",description:"\u6298\u308c\u7dda\u30b9\u30d1\u30fc\u30af\u30e9\u30a4\u30f3\u3092\u8868\u793a\u3059\u308b\u70ba\u306e\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3092\u8fd4\u3057\u307e\u3059",parameters:[{name:"data"},{name:"dataOrientation"},{name:"dateAxisData"},{name:"dateAxisOrientation"},{name:"setting"}]},{name:"COLUMNSPARKLINE",description:"\u7e26\u68d2\u30b9\u30d1\u30fc\u30af\u30e9\u30a4\u30f3\u3092\u8868\u793a\u3059\u308b\u70ba\u306e\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3092\u8fd4\u3057\u307e\u3059",parameters:[{name:"data"},{name:"dataOrientation"},{name:"dateAxisData"},{name:"dateAxisOrientation"},{name:"setting"}]},{name:"WINLOSSSPARKLINE",description:"\u52dd\u6557\u30b9\u30d1\u30fc\u30af\u30e9\u30a4\u30f3\u3092\u8868\u793a\u3059\u308b\u70ba\u306e\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3092\u8fd4\u3057\u307e\u3059",parameters:[{name:"data"},{name:"dataOrientation"},{name:"dateAxisData"},{name:"dateAxisOrientation"},{name:"setting"}]}];return FormulaTextBoxResource_JP})();spread.FormulaTextBoxResource_JP=FormulaTextBoxResource_JP})(wijmo.spread||(wijmo.spread={}));var spread=wijmo.spread})(wijmo||(wijmo={}))