all files / pdfviewer/annotation/ annotation.js

4.82% Statements 230/4770
0% Branches 0/4243
4.08% Functions 10/245
4.83% Lines 230/4763
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 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 72381×   1× 1× 1×                                                                                         1×                                                                                                                                                                             1×                       1×                                                     1×                                                                                                                                                                                                                                                                                                                                                                                                                                                                           1×                     1×                                       1×                                                                                                   1×                       1×                       1×                                                                       1×                                           1×                                     1×                                     1×                               1×                           1×                           1×                                                                   1×                                                                                                                                                                                                                                                                                             1×                                                       1×                                               1×                                                 1×                   1×                             1×               1×                                   1×                                                                                                                                           1×                         1×       1×                                     1×                                     1×                                                                                                                       1×                     1×             1×                                                                                                                                     1×     1×               1×                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   1×                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         1×                             1×                 1×               1×                                                                                                                                     1×                                             1×                 1×                           1×                   1×                                                             1×         1×                                                           1×                       1×                                                       1×     1×           1×             1×                                                                     1×                                                           1×                     1×                               1×                                                                                                                                                             1×                           1×             1×                                                       1×                                   1×                               1×                     1×                                                 1×                                                                                     1×                                                                                                                                                               1×                                                                                   1×       1×                                                                                                                     1×         1×           1×           1×                                         1×                         1×               1×     1×                                             1×           1×           1×                       1×           1×               1×       1×       1×                                     1×     1×                             1×                                                                                                                                                                                                                                                                           1×     1×                                                           1×                                             1×                                                                                 1×                                                                                                                                                                                                                                                                                                                                                                           1×                                                                                                     1×                                                 1×                                           1×                                                                                                                 1×                   1×                                 1×                                                                                             1×                 1×                   1×                 1×                                                           1×                                       1×             1×     1×                           1×                     1×                                 1×                                                                                                                                                                                                                             1×                                                                                         1×                                                         1×                                     1×                                             1×                                         1×                                                                     1×                                 1×                                       1×                                                                                   1×                                                                     1×                                                           1×                                                                                                                                                                                                                                                                                                                                                                                 1×                 1×                 1×                                                                                                       1×               1×                             1×       1×                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         1×                                                                                                               1×         1×                                                 1×                                           1×                     1×               1×           1×                                                   1×                                                                                                                                                                                                                                                                                                                                                                                       1×                                                                                                                                                                                                                                                             1×                                                                                       1×                                     1×                                   1×                                                                                                                           1×                                                                                                                                     1×                                               1×                       1×                                                                                                                                                                                                       1×                             1×                                                                                                                                                                                                                                                   1×                                                               1×                                   1×               1×                                         1×                                                                               1×                                                                       1×     1×                                   1×                               1×                                 1×                 1×                                                                                                                                                                 1×                                                                                                                                             1×             1×               1×                                                   1×                                                                                                                                                 1×         1×     1×     1×                                                 1×                                   1×                                                                 1×                                                                                                         1×       1×                           1×               1×     1×                                                                                                                                                                           1×     1×             1×                   1×         1×                                                                     1×                                                                                                                                                                                                                             1×                                                                                                                 1×                 1×                       1×                                                                             1×                                         1×   1× 1× 1×   1×   1× 1× 1×   1×   1× 1× 1×   1×   1× 1× 1×   1×   1× 1× 1×   1×   1× 1× 1×   1×   1× 1× 1×   1×   1× 1× 1×   1×   1×    
define(["require", "exports", "../index", "@syncfusion/ej2-base", "@syncfusion/ej2-inputs", "@syncfusion/ej2-popups", "@syncfusion/ej2-splitbuttons", "@syncfusion/ej2-drawings", "../drawing/drawing-util", "../drawing/tools", "../drawing/connector-util", "./free-text-annotation", "./input-element", "@syncfusion/ej2-inplace-editor", "./redaction-annotation", "./redaction-overlay-text"], function (require, exports, index_1, ej2_base_1, ej2_inputs_1, ej2_popups_1, ej2_splitbuttons_1, ej2_drawings_1, drawing_util_1, tools_1, connector_util_1, free_text_annotation_1, input_element_1, ej2_inplace_editor_1, redaction_annotation_1, redaction_overlay_text_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var Annotation = (function () {
        function Annotation(pdfViewer, viewerBase) {
            this.isUndoActionImageLoad = false;
            this.boundsChanged = false;
            this.isUndoRedoAction = false;
            this.isFreeTextFontsizeChanged = false;
            this.isUndoAction = false;
            this.annotationSelected = true;
            this.isAnnotDeletionApiCall = false;
            this.removedDocumentAnnotationCollection = [];
            this.nonRenderSelectedAnnotation = null;
            this.isShapeCopied = false;
            this.actionCollection = [];
            this.redoCollection = [];
            this.isPopupNoteVisible = false;
            this.undoCommentsElement = [];
            this.redoCommentsElement = [];
            this.selectAnnotationId = null;
            this.isAnnotationSelected = false;
            this.annotationPageIndex = null;
            this.previousIndex = null;
            this.annotationType = null;
            this.overlappedAnnotations = [];
            this.overlappedCollections = [];
            this.isFormFieldShape = false;
            this.removedAnnotationCollection = [];
            this.isEdited = false;
            this.pdfViewer = pdfViewer;
            this.pdfViewerBase = viewerBase;
            if (this.pdfViewer.enableTextMarkupAnnotation) {
                this.textMarkupAnnotationModule = new index_1.TextMarkupAnnotation(this.pdfViewer, this.pdfViewerBase);
            }
            if (this.pdfViewer.enableShapeAnnotation) {
                this.shapeAnnotationModule = new index_1.ShapeAnnotation(this.pdfViewer, this.pdfViewerBase);
            }
            if (this.pdfViewer.enableMeasureAnnotation) {
                this.measureAnnotationModule = new index_1.MeasureAnnotation(this.pdfViewer, this.pdfViewerBase);
            }
            this.stampAnnotationModule = new index_1.StampAnnotation(this.pdfViewer, this.pdfViewerBase);
            this.redactionAnnotationModule = new redaction_annotation_1.Redaction(this.pdfViewer, this.pdfViewerBase);
            this.redactionOverlayTextModule = new redaction_overlay_text_1.RedactionOverlayText(this.pdfViewer, this.pdfViewerBase);
            this.stickyNotesAnnotationModule = new index_1.StickyNotesAnnotation(this.pdfViewer, this.pdfViewerBase);
            this.freeTextAnnotationModule = new free_text_annotation_1.FreeTextAnnotation(this.pdfViewer, this.pdfViewerBase);
            this.inputElementModule = new input_element_1.InputElement(this.pdfViewer, this.pdfViewerBase);
            this.inkAnnotationModule = new index_1.InkAnnotation(this.pdfViewer, this.pdfViewerBase);
        }
        Annotation.prototype.setAnnotationMode = function (type, dynamicStampItem, signStampItem, standardBusinessStampItem) {
            var allowServerDataBind = this.pdfViewer.allowServerDataBinding;
            this.pdfViewer.enableServerDataBinding(false);
            if (this.pdfViewer.tool === 'Stamp' && this.pdfViewer.toolbarModule) {
                this.pdfViewer.toolbarModule.updateStampItems();
            }
            if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {
                this.pdfViewer.toolbarModule.annotationToolbarModule.resetFreeTextAnnot();
            }
            if (type !== 'None') {
                this.triggerAnnotationUnselectEvent();
            }
            this.pdfViewer.tool = '';
            if (this.pdfViewer.toolbarModule) {
                this.pdfViewer.toolbarModule.deSelectCommentAnnotation();
            }
            if (type === 'None') {
                this.clearAnnotationMode();
            }
            else if (type === 'Highlight' || type === 'Strikethrough' || type === 'Underline' || type === 'Squiggly') {
                if (this.textMarkupAnnotationModule) {
                    this.textMarkupAnnotationModule.isSelectionMaintained = false;
                    this.textMarkupAnnotationModule.drawTextMarkupAnnotations(type.toString());
                }
            }
            else if (type === 'Line' || type === 'Arrow' || type === 'Rectangle' || type === 'Circle' || type === 'Polygon') {
                if (this.shapeAnnotationModule) {
                    this.shapeAnnotationModule.setAnnotationType(type);
                }
            }
            else if (type === 'Distance' || type === 'Perimeter' || type === 'Area' || type === 'Radius' || type === 'Volume') {
                if (this.measureAnnotationModule) {
                    this.measureAnnotationModule.setAnnotationType(type);
                }
            }
            else if (type === 'FreeText' && this.freeTextAnnotationModule) {
                this.freeTextAnnotationModule.setAnnotationType('FreeText');
                this.freeTextAnnotationModule.isNewFreeTextAnnot = true;
                this.freeTextAnnotationModule.isNewAddedAnnot = true;
            }
            else if (type === 'HandWrittenSignature') {
                this.pdfViewerBase.signatureModule.setAnnotationMode();
            }
            else if (type === 'Initial') {
                this.pdfViewerBase.signatureModule.setInitialMode();
            }
            else if (type === 'Ink') {
                this.inkAnnotationModule.setAnnotationMode();
            }
            else if (type === 'Redaction') {
                if (this.redactionAnnotationModule && this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.redactionToolbarModule) {
                    this.pdfViewer.toolbarModule.redactionToolbarModule.isTextRedactMode = true;
                    this.redactionAnnotationModule.setAnnotationType(type);
                    this.pdfViewer.toolbarModule.annotationToolbarModule.onRedactionDrawSelection();
                }
            }
            else if (type === 'StickyNotes') {
                this.pdfViewerBase.isCommentIconAdded = true;
                this.pdfViewerBase.isAddComment = true;
                var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + (this.pdfViewerBase.currentPageNumber - 1));
                if (pageDiv) {
                    pageDiv.addEventListener('mousedown', this.pdfViewer.annotationModule.stickyNotesAnnotationModule.drawIcons.bind(this));
                }
            }
            else if (type === 'Stamp') {
                this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;
                this.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;
                this.pdfViewerBase.stampAdded = true;
                if (dynamicStampItem) {
                    var stampName = index_1.DynamicStampItem[dynamicStampItem];
                    this.pdfViewerBase.isDynamicStamp = true;
                    this.stampAnnotationModule.retrieveDynamicStampAnnotation(stampName);
                }
                else if (signStampItem) {
                    var stampName = index_1.SignStampItem[signStampItem];
                    this.pdfViewerBase.isDynamicStamp = false;
                    this.stampAnnotationModule.retrievestampAnnotation(stampName);
                }
                else if (standardBusinessStampItem) {
                    var stampName = index_1.StandardBusinessStampItem[standardBusinessStampItem];
                    this.pdfViewerBase.isDynamicStamp = false;
                    this.stampAnnotationModule.retrievestampAnnotation(stampName);
                }
            }
            this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);
            this.pdfViewerBase.initiateTextSelection();
        };
        Annotation.prototype.deleteAnnotationById = function (annotationId) {
            if (annotationId) {
                this.isAnnotDeletionApiCall = true;
                this.annotationSelected = false;
                this.selectAnnotation(annotationId);
                this.deleteAnnotation();
                this.isAnnotDeletionApiCall = false;
                if (this.pdfViewer.textSelectionModule) {
                    this.pdfViewer.textSelectionModule.clearTextSelection();
                }
            }
        };
        Annotation.prototype.clearAnnotationMode = function () {
            if (this.textMarkupAnnotationModule) {
                this.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;
            }
            if (this.redactionAnnotationModule) {
                if (this.pdfViewer.toolbarModule.redactionToolbarModule) {
                    this.pdfViewer.toolbarModule.redactionToolbarModule.clear();
                }
            }
            if (this.freeTextAnnotationModule) {
                this.freeTextAnnotationModule.isNewFreeTextAnnot = false;
                this.freeTextAnnotationModule.isNewAddedAnnot = false;
            }
            if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {
                this.pdfViewer.annotation.textMarkupAnnotationModule.currentTextMarkupAddMode = '';
            }
            if (this.pdfViewerBase.isShapeAnnotationModule()) {
                this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode = '';
            }
            if (this.pdfViewerBase.isCalibrateAnnotationModule()) {
                this.pdfViewer.annotation.measureAnnotationModule.currentAnnotationMode = '';
            }
            if (this.pdfViewer.annotationModule.inkAnnotationModule) {
                var currentPageNumber = parseInt(this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber, 10);
                this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);
            }
        };
        Annotation.prototype.deleteAnnotation = function () {
            if (this.textMarkupAnnotationModule) {
                if (this.textMarkupAnnotationModule.currentTextMarkupAnnotation &&
                    this.textMarkupAnnotationModule.currentTextMarkupAnnotation.shapeAnnotationType !== 'Redaction') {
                    this.textMarkupAnnotationModule.deleteTextMarkupAnnotation();
                }
                if (this.redactionAnnotationModule) {
                    this.redactionAnnotationModule.deleteTextRedactAnnotation();
                }
            }
            var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];
            if (selectedAnnotation) {
                var data = this.pdfViewerBase.sessionStorageManager.getItem(this.pdfViewerBase.documentId + '_formfields');
                var formFieldsData = JSON.parse(data);
                var newFormFieldsData = [];
                if (formFieldsData) {
                    for (var x = 0; x < formFieldsData.length; x++) {
                        if (formFieldsData[parseInt(x.toString(), 10)].uniqueID == selectedAnnotation.id) {
                            formFieldsData[parseInt(x.toString(), 10)].Value = '';
                            for (var y = 0; y < formFieldsData.length; y++) {
                                if (formFieldsData[parseInt(y.toString(), 10)].Name === 'ink') {
                                    formFieldsData[parseInt(y.toString(), 10)].Value = '';
                                }
                                if (formFieldsData[parseInt(x.toString(), 10)].FieldName === formFieldsData[parseInt(y.toString(), 10)].FieldName && formFieldsData[parseInt(y.toString(), 10)].Name === 'ink') {
                                    formFieldsData.splice(y, 1);
                                }
                            }
                            newFormFieldsData.push(formFieldsData[parseInt(x.toString(), 10)]);
                        }
                        else {
                            newFormFieldsData.push(formFieldsData[parseInt(x.toString(), 10)]);
                        }
                    }
                    this.pdfViewerBase.sessionStorageManager.setItem(this.pdfViewerBase.documentId + '_formfields', JSON.stringify(newFormFieldsData));
                }
            }
            var isLock = false;
            var isReadOnly = false;
            if (this.pdfViewer.selectedItems.annotations.length > 0) {
                var annotation_1 = this.pdfViewer.selectedItems.annotations[0];
                var type = annotation_1.shapeAnnotationType;
                if (type === 'Path' || annotation_1.formFieldAnnotationType === 'SignatureField' || annotation_1.formFieldAnnotationType === 'InitialField' || type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') {
                    var inputFields = document.getElementById(annotation_1.id);
                    if (inputFields && inputFields.disabled) {
                        isReadOnly = true;
                    }
                }
                if (annotation_1.annotationSettings) {
                    isLock = annotation_1.annotationSettings.isLock;
                    if (isLock && this.checkAllowedInteractions('Delete', annotation_1)) {
                        isLock = false;
                    }
                }
                if (!isLock && !isReadOnly) {
                    var pageNumber = annotation_1.pageIndex;
                    var shapeType = annotation_1.shapeAnnotationType;
                    var undoElement = void 0;
                    if (shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Polygon' || shapeType === 'Ellipse' || shapeType === 'Rectangle' || shapeType === 'Radius' || shapeType === 'Distance') {
                        if (ej2_base_1.isNullOrUndefined(annotation_1.measureType) || annotation_1.measureType === '') {
                            this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(annotation_1, 'shape');
                            this.updateImportAnnotationCollection(annotation_1, pageNumber, 'shapeAnnotation');
                        }
                        else {
                            this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(annotation_1, 'measure');
                            this.updateImportAnnotationCollection(annotation_1, pageNumber, 'measureShapeAnnotation');
                        }
                        undoElement = this.modifyInCollections(annotation_1, 'delete');
                    }
                    else if (shapeType === 'Redaction') {
                        this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(annotation_1, 'Redaction', 'delete');
                        undoElement = this.modifyInCollections(annotation_1, 'delete');
                        this.updateImportAnnotationCollection(annotation_1, pageNumber, 'redactionAnnotation');
                    }
                    else if (shapeType === 'FreeText') {
                        this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(annotation_1, 'FreeText', 'delete');
                        undoElement = this.modifyInCollections(annotation_1, 'delete');
                        this.updateImportAnnotationCollection(annotation_1, pageNumber, 'freeTextAnnotation');
                    }
                    else if (shapeType === 'HandWrittenSignature' || shapeType === 'SignatureImage' || shapeType === 'SignatureText') {
                        undoElement = this.modifyInCollections(annotation_1, 'delete');
                    }
                    else if (shapeType === 'Ink') {
                        this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(annotation_1, 'Ink', 'delete');
                        undoElement = this.modifyInCollections(annotation_1, 'delete');
                        this.updateImportAnnotationCollection(annotation_1, pageNumber, 'signatureInkAnnotation');
                    }
                    else {
                        undoElement = this.pdfViewer.selectedItems.annotations[0];
                        this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(undoElement, undoElement.shapeAnnotationType, 'delete');
                        this.pdfViewer.annotation.stampAnnotationModule.updateSessionStorage(annotation_1, null, 'delete');
                    }
                    if (shapeType === 'StickyNotes') {
                        this.updateImportAnnotationCollection(annotation_1, pageNumber, 'stickyNotesAnnotation');
                    }
                    if (shapeType === 'Stamp' || shapeType === 'Image') {
                        this.updateImportAnnotationCollection(annotation_1, pageNumber, 'stampAnnotations');
                    }
                    var formFieldObj = this.pdfViewer.nameTable[annotation_1.id.split('_')[0]];
                    if (ej2_base_1.isNullOrUndefined(formFieldObj) || !(formFieldObj.formFieldAnnotationType === 'SignatureField' || formFieldObj.formFieldAnnotationType === 'InitialField')) {
                        this.pdfViewer.annotation.addAction(pageNumber, null, annotation_1, 'Delete', '', undoElement, annotation_1);
                    }
                    var removeDiv = void 0;
                    if (annotation_1.annotName !== '') {
                        removeDiv = document.getElementById(annotation_1.annotName);
                    }
                    else {
                        if (undoElement) {
                            if (undoElement.annotName !== '') {
                                removeDiv = document.getElementById(undoElement.annotName);
                            }
                        }
                    }
                    this.removeCommentPanelDiv(removeDiv);
                    var selectedAnnot = this.pdfViewer.selectedItems.annotations[0];
                    var annotationId = selectedAnnot.annotName;
                    var annotType = this.getAnnotationType(selectedAnnot.shapeAnnotationType, selectedAnnot.measureType);
                    if (shapeType === 'Path' || selectedAnnot.formFieldAnnotationType === 'SignatureField' || selectedAnnot.formFieldAnnotationType === 'InitialField' || shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText' || shapeType === 'SignatureImage') {
                        var formFieldCollection = this.pdfViewer.retrieveFormFields();
                        var index = formFieldCollection.findIndex(function (el) { return el.id === annotation_1.id; });
                        var formFieldName = void 0;
                        if (index > -1) {
                            formFieldName = formFieldCollection[parseInt(index.toString(), 10)].name;
                        }
                        for (var m = 0; m < formFieldCollection.length; m++) {
                            if (selectedAnnot.id === formFieldCollection[parseInt(m.toString(), 10)].id ||
                                (ej2_base_1.isNullOrUndefined(formFieldName) && formFieldName === formFieldCollection[parseInt(m.toString(), 10)].name)) {
                                formFieldCollection[parseInt(m.toString(), 10)].value = '';
                                formFieldCollection[parseInt(m.toString(), 10)].signatureType = '';
                                var annotation_2 = this.getAnnotationsFromCollections(formFieldCollection[parseInt(m.toString(), 10)].id);
                                if (!ej2_base_1.isNullOrUndefined(annotation_2)) {
                                    this.updateInputFieldDivElement(annotation_2);
                                    undoElement = this.modifyInCollections(annotation_2, 'delete');
                                    this.pdfViewer.annotation.addAction(annotation_2.pageIndex, null, annotation_2, 'Delete', '', undoElement, annotation_2);
                                    if (this.pdfViewer.formDesignerModule && selectedAnnot.formFieldAnnotationType) {
                                        this.updateFormFieldCollection(annotation_2);
                                    }
                                    else {
                                        this.updateAnnotationCollection(annotation_2);
                                    }
                                    this.pdfViewer.remove(annotation_2);
                                }
                            }
                        }
                        if (this.pdfViewer.formDesignerModule && selectedAnnot.formFieldAnnotationType) {
                            this.updateFormFieldCollection(annotation_1);
                        }
                        else {
                            this.updateAnnotationCollection(annotation_1);
                        }
                    }
                    if (this.pdfViewer.formDesignerModule && selectedAnnot.formFieldAnnotationType) {
                        this.updateFormFieldCollection(annotation_1);
                    }
                    else {
                        this.updateAnnotationCollection(annotation_1);
                    }
                    if (formFieldObj != null && (formFieldObj.formFieldAnnotationType === 'SignatureField' || formFieldObj.formFieldAnnotationType === 'InitialField')) {
                        var index = this.pdfViewer.formFieldCollections.findIndex(function (el) { return el.id === annotation_1.id.split('_')[0]; });
                        var formFieldName = void 0;
                        if (index > -1) {
                            formFieldName = this.pdfViewer.formFieldCollections[parseInt(index.toString(), 10)].name;
                        }
                        for (var i = 0; i < this.pdfViewer.formFieldCollections.length; i++) {
                            if (formFieldName === this.pdfViewer.formFieldCollections[parseInt(i.toString(), 10)].name) {
                                var formFieldsIndex = this.pdfViewer.formFieldCollections[parseInt(i.toString(), 10)];
                                this.pdfViewer.fireFormFieldPropertiesChangeEvent('formFieldPropertiesChange', formFieldsIndex, formFieldsIndex.pageIndex, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, formFieldsIndex.value, '');
                                formFieldsIndex.value = '';
                                formFieldsIndex.signatureType = '';
                                this.pdfViewer.formDesignerModule.updateFormFieldCollections(formFieldsIndex);
                                var annotation_3 = this.getAnnotationsFromCollections(formFieldsIndex.id + '_content');
                                if (!ej2_base_1.isNullOrUndefined(annotation_3)) {
                                    undoElement = this.modifyInCollections(annotation_3, 'delete');
                                    this.pdfViewer.annotation.addAction(annotation_3.pageIndex, null, annotation_3, 'Delete', '', undoElement, annotation_3);
                                    this.updateInputFieldDivElement(annotation_3);
                                    var formFieldObject = this.pdfViewer.nameTable[annotation_3.id.split('_')[0]];
                                    formFieldObject.wrapper.children.splice(formFieldObject.wrapper.children.
                                        indexOf(annotation_3.wrapper.children[0]), 1);
                                    this.pdfViewer.remove(annotation_3);
                                }
                            }
                        }
                    }
                    this.pdfViewer.remove(annotation_1);
                    this.pdfViewer.renderDrawing();
                    this.pdfViewer.clearSelection(pageNumber);
                    this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');
                    this.pdfViewerBase.updateDocumentEditedProperty(true);
                    this.pdfViewerBase.tool = null;
                    this.pdfViewer.tool = null;
                    if (selectedAnnot.shapeAnnotationType === 'HandWrittenSignature' || selectedAnnot.shapeAnnotationType === 'SignatureText' || selectedAnnot.shapeAnnotationType === 'SignatureImage' || selectedAnnot.shapeAnnotationType === 'Path') {
                        var bounds = { left: selectedAnnot.bounds.x, top: selectedAnnot.bounds.y,
                            width: selectedAnnot.bounds.width, height: selectedAnnot.bounds.height };
                        this.pdfViewer.fireSignatureRemove(pageNumber, selectedAnnot.id, selectedAnnot.shapeAnnotationType, bounds);
                    }
                    else if (this.pdfViewer.annotationModule) {
                        this.pdfViewer.fireAnnotationRemove(pageNumber, annotationId, annotType, selectedAnnot.bounds);
                    }
                    if (this.pdfViewer.textSelectionModule) {
                        this.pdfViewer.textSelectionModule.enableTextSelectionMode();
                    }
                }
            }
            else if (this.nonRenderSelectedAnnotation && this.nonRenderSelectedAnnotation.annotationId && this.isAnnotDeletionApiCall) {
                var annotationId = this.nonRenderSelectedAnnotation.annotationId;
                var pageIndex = this.nonRenderSelectedAnnotation.pageNumber ? this.nonRenderSelectedAnnotation.pageNumber :
                    this.nonRenderSelectedAnnotation.pageIndex;
                var collections = this.updateCollectionForNonRenderedPages(this.nonRenderSelectedAnnotation, annotationId, pageIndex);
                collections.pageIndex = pageIndex;
                this.pdfViewer.annotation.addAction(pageIndex, null, collections, 'Delete', '', collections, collections);
                this.undoCommentsElement.push(collections);
                var removeDiv = document.getElementById(annotationId);
                this.removeCommentPanelDiv(removeDiv);
                this.nonRenderSelectedAnnotation = null;
            }
            this.updateToolbar(true);
            if (this.pdfViewer.toolbarModule) {
                if (this.pdfViewer.toolbarModule.annotationToolbarModule && !isLock) {
                    this.pdfViewer.toolbarModule.annotationToolbarModule.selectAnnotationDeleteItem(false, true);
                    this.pdfViewer.toolbarModule.annotationToolbarModule.enableTextMarkupAnnotationPropertiesTools(false);
                }
                if (this.pdfViewer.toolbarModule.redactionToolbarModule && !isLock) {
                    this.pdfViewer.toolbarModule.redactionToolbarModule.showHideDeleteIcon(false);
                    var annotationsArray = this.pdfViewer.annotationCollection;
                    var hasRedaction = annotationsArray.some(function (annot) { return annot.shapeAnnotationType === 'Redaction'; });
                    if (!hasRedaction) {
                        this.pdfViewer.toolbarModule.redactionToolbarModule.showHideRedactIcon(false);
                    }
                }
            }
        };
        Annotation.prototype.getAnnotationsFromCollections = function (annotationId) {
            var collections = this.pdfViewer.annotations;
            if (collections && annotationId) {
                for (var i = 0; i < collections.length; i++) {
                    if (collections[parseInt(i.toString(), 10)].id === annotationId) {
                        return collections[parseInt(i.toString(), 10)];
                    }
                }
            }
            return null;
        };
        Annotation.prototype.updateInputFieldDivElement = function (annotation) {
            var inputFields = document.getElementById(annotation.id);
            var signatureFieldElement = document.getElementById(annotation.id + '_html_element');
            if (inputFields === null && !ej2_base_1.isNullOrUndefined(signatureFieldElement)) {
                inputFields = signatureFieldElement.children[0].children[0];
            }
            if (inputFields && inputFields.classList.contains('e-pdfviewer-signatureformfields-signature')) {
                inputFields.className = 'e-pdfviewer-signatureformfields';
                inputFields.style.pointerEvents = '';
                inputFields.parentElement.style.pointerEvents = '';
            }
            if (this.pdfViewer.formDesignerModule) {
                this.pdfViewer.formDesignerModule.updateSignatureValue(annotation.id);
            }
            else {
                if (this.pdfViewer.formFieldsModule) {
                    this.pdfViewer.formFieldsModule.updateDataInSession(inputFields, '');
                }
            }
        };
        Annotation.prototype.storeAnnotationCollections = function (annotation, pageNumber, isNeedToReorderCollection, orderNumber) {
            if (this.isFormFieldShape) {
                var collectionDetails = this.checkFormDesignCollection(annotation);
                var selectAnnotation = drawing_util_1.cloneObject(annotation);
                selectAnnotation.formFieldId = annotation.annotName;
                selectAnnotation.pageNumber = pageNumber;
                delete selectAnnotation.annotName;
                if (annotation.id) {
                    selectAnnotation.uniqueKey = annotation.id;
                    delete selectAnnotation.id;
                }
                if (collectionDetails.isExisting) {
                    this.pdfViewer.formFieldCollection.splice(collectionDetails.position, 0, selectAnnotation);
                }
                else {
                    this.pdfViewer.formFieldCollection.push(selectAnnotation);
                }
            }
            else {
                var collectionDetails = this.checkAnnotationCollection(annotation);
                var selectAnnotation = drawing_util_1.cloneObject(annotation);
                selectAnnotation.annotationId = annotation.annotName;
                selectAnnotation.pageNumber = pageNumber;
                delete selectAnnotation.annotName;
                if (annotation.shapeAnnotationType === 'stamp') {
                    selectAnnotation.uniqueKey = annotation.randomId;
                    delete selectAnnotation.randomId;
                }
                if (annotation.shapeAnnotationType === 'sticky') {
                    selectAnnotation.uniqueKey = annotation.annotName;
                }
                if (annotation.id) {
                    selectAnnotation.uniqueKey = annotation.id;
                    delete selectAnnotation.id;
                }
                if (selectAnnotation.customData && annotation.customData && JSON.stringify(selectAnnotation.customData) !==
                    JSON.stringify(annotation.customData)) {
                    selectAnnotation.customData = annotation.customData;
                }
                if (collectionDetails.isExisting) {
                    this.pdfViewer.annotationCollection.splice(collectionDetails.position, 0, selectAnnotation);
                }
                else if (!ej2_base_1.isNullOrUndefined(isNeedToReorderCollection) && isNeedToReorderCollection) {
                    this.pdfViewer.annotationCollection.splice(orderNumber, 0, selectAnnotation);
                }
                else {
                    this.pdfViewer.annotationCollection.push(selectAnnotation);
                }
            }
        };
        Annotation.prototype.checkFormDesignCollection = function (annotation) {
            var collections = this.pdfViewer.formFieldCollection;
            if (collections && annotation) {
                for (var i = 0; i < collections.length; i++) {
                    if (collections[parseInt(i.toString(), 10)].formFieldId === annotation.annotName) {
                        this.pdfViewer.formFieldCollection.splice(i, 1);
                        return { isExisting: true, position: i };
                    }
                }
            }
            return { isExisting: false, position: null };
        };
        Annotation.prototype.updateFormFieldCollection = function (annotation) {
            var collections = this.pdfViewer.formFieldCollection;
            if (collections && annotation) {
                for (var i = 0; i < collections.length; i++) {
                    if (collections[parseInt(i.toString(), 10)].formFieldId === annotation.annotName) {
                        this.removedAnnotationCollection.push(collections[parseInt(i.toString(), 10)]);
                        this.pdfViewer.formFieldCollection.splice(i, 1);
                        break;
                    }
                }
            }
        };
        Annotation.prototype.getCustomData = function (annotation) {
            var customData;
            if (annotation.ExistingCustomData && !annotation.CustomData) {
                customData = JSON.parse(annotation.ExistingCustomData);
            }
            else if (annotation.CustomData === null) {
                if (annotation.shapeAnnotationType === 'sticky') {
                    customData = this.pdfViewer.stickyNotesSettings.customData;
                }
                if (annotation.shapeAnnotationType === 'Stamp') {
                    customData = this.pdfViewer.stampSettings.customData;
                }
                if (annotation.shapeAnnotationType === 'FreeText') {
                    customData = this.pdfViewer.freeTextSettings.customData;
                }
                if (annotation.id === 'shape') {
                    customData = this.getShapeData(annotation.ShapeAnnotationType, annotation.subject);
                }
                if (annotation.id === 'measure') {
                    customData = this.getMeasureData(annotation.Subject);
                }
                if (annotation.shapeAnnotationType === 'textMarkup') {
                    customData = this.getTextMarkupData(annotation.subject);
                }
                if (annotation.shapeAnnotationType === 'Ink') {
                    customData = this.pdfViewer.inkAnnotationSettings.customData;
                }
            }
            else {
                var data = annotation.CustomData ? annotation.CustomData : annotation.customData;
                if (!ej2_base_1.isNullOrUndefined(data)) {
                    customData = typeof data === 'string' ? JSON.parse(data) : data;
                }
            }
            return customData;
        };
        Annotation.prototype.getShapeData = function (type, subject) {
            var customData;
            if (type === 'Line' && subject !== 'Arrow' && this.pdfViewer.lineSettings.customData) {
                customData = this.pdfViewer.lineSettings.customData;
            }
            else if ((type === 'LineWidthArrowHead' || subject === 'Arrow') && this.pdfViewer.arrowSettings.customData) {
                customData = this.pdfViewer.arrowSettings.customData;
            }
            else if ((type === 'Rectangle' || type === 'Square') && this.pdfViewer.rectangleSettings.customData) {
                customData = this.pdfViewer.rectangleSettings.customData;
            }
            else if ((type === 'Ellipse' || type === 'Circle') && this.pdfViewer.circleSettings.customData) {
                customData = this.pdfViewer.circleSettings.customData;
            }
            else if (type === 'Polygon' && this.pdfViewer.polygonSettings.customData) {
                customData = this.pdfViewer.polygonSettings.customData;
            }
            else if (this.pdfViewer.annotationSettings.customData) {
                customData = this.pdfViewer.annotationSettings.customData;
            }
            return customData;
        };
        Annotation.prototype.getMeasureData = function (type) {
            var customData;
            if ((type === 'Distance' || type === 'Distance calculation') && this.pdfViewer.distanceSettings.customData) {
                customData = this.pdfViewer.distanceSettings.customData;
            }
            else if ((type === 'Line' || type === 'Perimeter calculation') && this.pdfViewer.lineSettings.customData) {
                customData = this.pdfViewer.lineSettings.customData;
            }
            else if ((type === 'Polygon' || type === 'Area calculation' || type === 'Volume calculation') && this.pdfViewer.polygonSettings.customData) {
                customData = this.pdfViewer.polygonSettings.customData;
            }
            else if ((type === 'Radius' || type === 'Radius calculation') && this.pdfViewer.radiusSettings.customData) {
                customData = this.pdfViewer.radiusSettings.customData;
            }
            else if (this.pdfViewer.annotationSettings.customData) {
                customData = this.pdfViewer.annotationSettings.customData;
            }
            return customData;
        };
        Annotation.prototype.getTextMarkupData = function (type) {
            var customData;
            if (type === 'Highlight' && this.pdfViewer.highlightSettings.customData) {
                customData = this.pdfViewer.highlightSettings.customData;
            }
            else if (type === 'Underline' && this.pdfViewer.underlineSettings.customData) {
                customData = this.pdfViewer.underlineSettings.customData;
            }
            else if (type === 'Strikethrough' && this.pdfViewer.strikethroughSettings.customData) {
                customData = this.pdfViewer.strikethroughSettings.customData;
            }
            else if (type === 'Squiggly' && this.pdfViewer.squigglySettings.customData) {
                customData = this.pdfViewer.squigglySettings.customData;
            }
            else if (this.pdfViewer.annotationSettings.customData) {
                customData = this.pdfViewer.annotationSettings.customData;
            }
            return customData;
        };
        Annotation.prototype.getData = function (type) {
            var customData;
            if (type === 'FreeText' && this.pdfViewer.freeTextSettings.customData) {
                customData = this.pdfViewer.freeTextSettings.customData;
            }
            else if ((type === 'image' || type === 'Stamp') && this.pdfViewer.stampSettings.customData) {
                customData = this.pdfViewer.stampSettings.customData;
            }
            else if (type === 'sticky' && this.pdfViewer.stickyNotesSettings.customData) {
                customData = this.pdfViewer.stickyNotesSettings.customData;
            }
            else if (this.pdfViewer.annotationSettings.customData) {
                customData = this.pdfViewer.annotationSettings.customData;
            }
            return customData;
        };
        Annotation.prototype.checkAnnotationCollection = function (annotation) {
            var collections = this.pdfViewer.annotationCollection;
            if (collections && annotation) {
                for (var i = 0; i < collections.length; i++) {
                    if (collections[parseInt(i.toString(), 10)].annotationId === annotation.annotName &&
                        (collections[parseInt(i.toString(), 10)].pageNumber === annotation.pageNumber ||
                            collections[parseInt(i.toString(), 10)].pageNumber === annotation.pageIndex)) {
                        this.pdfViewer.annotationCollection.splice(i, 1);
                        return { isExisting: true, position: i };
                    }
                }
            }
            return { isExisting: false, position: null };
        };
        Annotation.prototype.updateAnnotationCollection = function (annotation) {
            var collections = this.pdfViewer.annotationCollection;
            if (collections && annotation) {
                for (var i = 0; i < collections.length; i++) {
                    if (collections[parseInt(i.toString(), 10)].annotationId ===
                        annotation.annotName || collections[parseInt(i.toString(), 10)].annotationId === annotation.annotationId &&
                        collections[parseInt(i.toString(), 10)].pageNumber === annotation.pageNumber) {
                        this.removedAnnotationCollection.push(collections[parseInt(i.toString(), 10)]);
                        this.pdfViewer.annotationCollection.splice(i, 1);
                        break;
                    }
                }
            }
        };
        Annotation.prototype.updateImportAnnotationCollection = function (annotation, pageNumber, annotationType) {
            if (this.pdfViewerBase.isImportAction) {
                if (this.pdfViewerBase.importedAnnotation && this.pdfViewerBase.importedAnnotation[parseInt(pageNumber.toString(), 10)]) {
                    var currentPageAnnotations = this.pdfViewerBase.importedAnnotation[parseInt(pageNumber.toString(), 10)];
                    if (currentPageAnnotations["" + annotationType] &&
                        !ej2_base_1.isNullOrUndefined(this.pdfViewerBase.importedAnnotation[parseInt(pageNumber.toString(), 10)].annotationOrder)) {
                        this.pdfViewerBase.importedAnnotation[parseInt(pageNumber.toString(), 10)].annotationOrder =
                            this.pdfViewerBase.importedAnnotation[parseInt(pageNumber.toString(), 10)].annotationOrder.filter(function (currentAnnotation) {
                                return !(annotation.annotName === currentAnnotation.AnnotName
                                    || annotation.annotName === currentAnnotation.annotName);
                            });
                    }
                    if (!ej2_base_1.isNullOrUndefined(this.pdfViewerBase.importedAnnotation) &&
                        !ej2_base_1.isNullOrUndefined(this.pdfViewerBase.importedAnnotation[parseInt(pageNumber.toString(), 10)])
                        && !ej2_base_1.isNullOrUndefined(this.pdfViewerBase.importedAnnotation[parseInt(pageNumber.toString(), 10)]["" + annotationType])) {
                        this.pdfViewerBase.importedAnnotation[parseInt(pageNumber.toString(), 10)]["" + annotationType] = this.pdfViewerBase.importedAnnotation[parseInt(pageNumber.toString(), 10)]["" + annotationType].filter(function (currentAnnotation) {
                            return annotation.annotName !== currentAnnotation.AnnotName;
                        });
                    }
                }
            }
            var documentcollections = this.pdfViewerBase.documentAnnotationCollections;
            if (documentcollections && documentcollections[parseInt(pageNumber.toString(), 10)]) {
                var documentPageCollections = documentcollections[parseInt(pageNumber.toString(), 10)];
                if (documentPageCollections && documentPageCollections["" + annotationType]) {
                    for (var i = 0; i < documentPageCollections["" + annotationType].length; i++) {
                        if (annotation.annotName === documentPageCollections["" + annotationType][parseInt(i.toString(), 10)].AnnotName) {
                            this.pdfViewerBase.documentAnnotationCollections[parseInt(pageNumber.toString(), 10)]["" + annotationType].splice(i, 1);
                            break;
                        }
                    }
                }
            }
        };
        Annotation.prototype.selectAnnotation = function (annotationId) {
            var annotation;
            var id;
            if (typeof annotationId === 'object') {
                annotation = annotationId;
                id = annotation.annotationId;
                annotation = this.getAnnotationsFromAnnotationCollections(id, annotationId);
            }
            if (typeof annotationId === 'string') {
                annotation = this.getAnnotationsFromAnnotationCollections(annotationId);
                id = annotationId;
            }
            if (annotation) {
                var pageIndex = ej2_base_1.isNullOrUndefined(annotation.pageNumber) ? annotation.pageIndex : annotation.pageNumber;
                var isRender = false;
                isRender = this.findRenderPageList(pageIndex);
                var currentSelector = this.pdfViewer.annotationSelectorSettings;
                if (annotation && pageIndex >= 0) {
                    if (annotation.shapeAnnotationType === 'textMarkup') {
                        if (annotation.rect || annotation.bounds) {
                            var scrollValue = this.pdfViewerBase.pageSize[parseInt(pageIndex.toString(), 10)].top *
                                this.pdfViewerBase.getZoomFactor() + (this.getAnnotationTop(annotation)) * this.pdfViewerBase.getZoomFactor();
                            var zoomFactor = this.pdfViewerBase.getZoomFactor();
                            if (zoomFactor >= 2) {
                                var boundingBox = this.getTextMarkupBounds(annotation);
                                if (boundingBox) {
                                    scrollValue = this.pdfViewerBase.pageSize[parseInt(pageIndex.toString(), 10)].top *
                                        zoomFactor + (boundingBox.top * zoomFactor);
                                }
                            }
                            if (!this.isAnnotDeletionApiCall) {
                                var scroll_1 = (scrollValue - 20).toString();
                                this.pdfViewerBase.viewerContainer.scrollTop = parseInt(scroll_1, 10);
                                this.pdfViewerBase.viewerContainer.scrollLeft = (annotation.bounds[0]).Left *
                                    this.pdfViewerBase.getZoomFactor() - 20;
                            }
                        }
                        else {
                            if (this.pdfViewer.navigation) {
                                this.pdfViewer.navigation.goToPage(pageIndex + 1);
                            }
                        }
                    }
                    else {
                        if (annotation.bounds) {
                            var scrollValue = this.pdfViewerBase.pageSize[parseInt(pageIndex.toString(), 10)].top *
                                this.pdfViewerBase.getZoomFactor() + (annotation.bounds.top) *
                                this.pdfViewerBase.getZoomFactor();
                            var scrollLeft = (annotation.bounds.left * this.pdfViewerBase.getZoomFactor()) - 20;
                            if (annotation.shapeAnnotationType === 'Ink') {
                                scrollValue = this.pdfViewerBase.pageSize[parseInt(pageIndex.toString(), 10)].top *
                                    this.pdfViewerBase.getZoomFactor() + (annotation.bounds.y) *
                                    this.pdfViewerBase.getZoomFactor();
                                scrollLeft = (annotation.bounds.x * this.pdfViewerBase.getZoomFactor()) - 20;
                            }
                            if (!this.isAnnotDeletionApiCall) {
                                var scroll_2 = (scrollValue - 20).toString();
                                this.pdfViewerBase.viewerContainer.scrollTop = parseInt(scroll_2, 10);
                                this.pdfViewerBase.viewerContainer.scrollLeft = scrollLeft;
                            }
                        }
                        else {
                            if (this.pdfViewer.navigation) {
                                this.pdfViewer.navigation.goToPage(pageIndex + 1);
                            }
                        }
                    }
                    if (isRender) {
                        if (this.previousIndex) {
                            this.pdfViewer.clearSelection(this.previousIndex);
                        }
                        this.pdfViewer.clearSelection(pageIndex);
                        this.previousIndex = pageIndex;
                        if (annotation.shapeAnnotationType === 'textMarkup') {
                            this.pdfViewer.annotationModule.textMarkupAnnotationModule.clearCurrentAnnotationSelection(pageIndex, true);
                            var canvasId = annotation.textMarkupAnnotationType === 'Highlight' ? '_blendAnnotationsIntoCanvas_' : '_annotationCanvas_';
                            var canvas = (canvasId === '_blendAnnotationsIntoCanvas_') ? this.pdfViewerBase.getElement(canvasId + pageIndex) :
                                this.pdfViewerBase.getAnnotationCanvas(canvasId, pageIndex);
                            var textMarkupAnnotation = this.getTextMarkupAnnotations(pageIndex, annotation);
                            if (textMarkupAnnotation) {
                                this.textMarkupAnnotationModule.currentTextMarkupAnnotation = null;
                                this.textMarkupAnnotationModule.isSelectedAnnotation = true;
                                this.textMarkupAnnotationModule.showHideDropletDiv(true);
                                this.textMarkupAnnotationModule.annotationClickPosition = null;
                                this.textMarkupAnnotationModule.selectAnnotation(textMarkupAnnotation, canvas, pageIndex, null, true);
                                this.textMarkupAnnotationModule.currentTextMarkupAnnotation = textMarkupAnnotation;
                                this.textMarkupAnnotationModule.selectTextMarkupCurrentPage = pageIndex;
                                this.textMarkupAnnotationModule.enableAnnotationPropertiesTool(true);
                                this.textMarkupAnnotationModule.isSelectedAnnotation = false;
                                if (this.pdfViewer.toolbarModule && this.pdfViewer.enableAnnotationToolbar) {
                                    this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden = true;
                                    this.pdfViewer.toolbarModule.annotationToolbarModule.
                                        showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);
                                }
                            }
                        }
                        else if (annotation.shapeAnnotationType === 'stamp' || annotation.ShapeAnnotationType === 'stamp') {
                            this.pdfViewer.select([annotation.uniqueKey], currentSelector);
                            this.pdfViewer.annotation.onAnnotationMouseDown();
                        }
                        else if (annotation.shapeAnnotationType === 'sticky' || annotation.ShapeAnnotationType === 'sticky') {
                            this.pdfViewer.select([annotation.annotationId], currentSelector);
                            this.pdfViewer.annotation.onAnnotationMouseDown();
                        }
                        else if (annotation.uniqueKey) {
                            this.pdfViewer.select([annotation.uniqueKey], currentSelector);
                            this.pdfViewer.annotation.onAnnotationMouseDown();
                        }
                        else {
                            this.selectAnnotationId = id;
                            this.isAnnotationSelected = true;
                            this.annotationPageIndex = pageIndex;
                            this.annotationType = annotation.stampAnnotationType;
                        }
                        var commentElement = document.getElementById(this.pdfViewer.element.id + '_commantPanel');
                        if (commentElement && commentElement.style.display === 'block') {
                            var accordionExpand = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + this.pdfViewer.currentPageNumber);
                            if (accordionExpand) {
                                accordionExpand.ej2_instances[0].expandItem(true);
                            }
                            var commentsDiv = document.getElementById(id);
                            if (commentsDiv) {
                                if (!commentsDiv.classList.contains('e-pv-comments-border')) {
                                    commentsDiv.firstChild.click();
                                }
                            }
                        }
                    }
                    else if (annotation.uniqueKey || (annotation.shapeAnnotationType === 'textMarkup' && annotation.annotationAddMode === 'Imported Annotation') || !this.isAnnotDeletionApiCall) {
                        this.selectAnnotationId = id;
                        this.isAnnotationSelected = true;
                        this.annotationPageIndex = pageIndex;
                        this.annotationType = annotation.stampAnnotationType;
                        if (annotation.uniqueKey || (annotation.shapeAnnotationType === 'textMarkup' && annotation.annotationAddMode === 'Imported Annotation')) {
                            this.selectAnnotationFromCodeBehind();
                        }
                    }
                    else if (!isRender && !annotation.uniqueKey && this.isAnnotDeletionApiCall) {
                        this.nonRenderSelectedAnnotation = annotation;
                    }
                }
            }
        };
        Annotation.prototype.getTextMarkupBounds = function (markup) {
            var segments = Array.isArray(markup.bounds) ? markup.bounds
                : Array.isArray(markup.rect) ? markup.rect
                    : null;
            if (segments && segments.length) {
                var minLeft = Number.POSITIVE_INFINITY;
                var minTop = Number.POSITIVE_INFINITY;
                var maxRight = Number.NEGATIVE_INFINITY;
                var maxBottom = Number.NEGATIVE_INFINITY;
                for (var _i = 0, segments_1 = segments; _i < segments_1.length; _i++) {
                    var seg = segments_1[_i];
                    var left = !ej2_base_1.isNullOrUndefined(seg.Left) ? seg.Left : !ej2_base_1.isNullOrUndefined(seg.left) ?
                        seg.left : !ej2_base_1.isNullOrUndefined(seg.x) ? seg.x : 0;
                    var top_1 = !ej2_base_1.isNullOrUndefined(seg.Top) ? seg.Top : !ej2_base_1.isNullOrUndefined(seg.top) ?
                        seg.top : !ej2_base_1.isNullOrUndefined(seg.y) ? seg.y : 0;
                    var right = !ej2_base_1.isNullOrUndefined(seg.Right) ? seg.Right :
                        (left + (!ej2_base_1.isNullOrUndefined(seg.Width) ? seg.Width : (!ej2_base_1.isNullOrUndefined(seg.width) ? seg.width : 0)));
                    var bottom = !ej2_base_1.isNullOrUndefined(seg.Bottom) ? seg.Bottom :
                        (top_1 + (!ej2_base_1.isNullOrUndefined(seg.Height) ? seg.Height : (!ej2_base_1.isNullOrUndefined(seg.height) ? seg.height : 0)));
                    minLeft = Math.min(minLeft, left);
                    minTop = Math.min(minTop, top_1);
                    maxRight = Math.max(maxRight, right);
                    maxBottom = Math.max(maxBottom, bottom);
                }
                return { left: minLeft, top: minTop, width: Math.max(0, maxRight - minLeft), height: Math.max(0, maxBottom - minTop) };
            }
            return { left: 0, top: 0, width: 0, height: 0 };
        };
        Annotation.prototype.updateCollectionForNonRenderedPages = function (annotation, id, pageIndex) {
            var collections;
            var annotationCollection = this.pdfViewer.annotationCollection;
            if (annotationCollection.length) {
                var collectionDetails = annotationCollection.filter(function (annotCollection) {
                    return annotCollection.annotationId === id;
                });
                collections = collectionDetails[0];
                this.updateAnnotationCollection(collectionDetails[0]);
            }
            var annotationType = this.getTypeOfAnnotation(annotation);
            var collection = this.pdfViewerBase.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)];
            if (collection["" + annotationType].length) {
                for (var x = 0; x < collection["" + annotationType].length; x++) {
                    if (collection["" + annotationType][parseInt(x.toString(), 10)].AnnotName === annotation.annotationId) {
                        var type = collection["" + annotationType][parseInt(x.toString(), 10)];
                        this.removedDocumentAnnotationCollection.push(type);
                        collection["" + annotationType].splice(x, 1);
                        break;
                    }
                }
            }
            return collections;
        };
        Annotation.prototype.getTypeOfAnnotation = function (annotation) {
            var annotationType;
            if (annotation.id && annotation.id.toLowerCase() === 'shape') {
                annotationType = 'shapeAnnotation';
            }
            else if (annotation.id && annotation.id.toLowerCase() === 'measure') {
                annotationType = 'measureShapeAnnotation';
            }
            else if (annotation.id && annotation.id.toLowerCase() === 'freetext') {
                annotationType = 'freeTextAnnotation';
            }
            else if (annotation.shapeAnnotationType && annotation.shapeAnnotationType.toLowerCase() === 'textmarkup') {
                annotationType = 'textMarkupAnnotation';
            }
            else if (annotation.shapeAnnotationType && annotation.shapeAnnotationType.toLowerCase() === 'stamp') {
                annotationType = 'stampAnnotations';
            }
            else if (annotation.shapeAnnotationType && annotation.shapeAnnotationType.toLowerCase() === 'ink') {
                annotationType = 'signatureInkAnnotation';
            }
            else if (annotation.shapeAnnotationType && annotation.shapeAnnotationType.toLowerCase() === 'sticky') {
                annotationType = 'stickyNotesAnnotation';
            }
            return annotationType;
        };
        Annotation.prototype.removeCommentPanelDiv = function (removeDiv) {
            if (removeDiv) {
                if (removeDiv.parentElement.childElementCount === 1) {
                    this.stickyNotesAnnotationModule.updateAccordionContainer(removeDiv);
                }
                else {
                    removeDiv.remove();
                }
            }
        };
        Annotation.prototype.clearSelection = function () {
            if (this.textMarkupAnnotationModule && this.textMarkupAnnotationModule.currentTextMarkupAnnotation) {
                this.textMarkupAnnotationModule.clearCurrentSelectedAnnotation();
                this.textMarkupAnnotationModule.clearCurrentAnnotationSelection(this.textMarkupAnnotationModule.selectTextMarkupCurrentPage);
            }
            else {
                if (this.pdfViewer.selectedItems && this.pdfViewer.selectedItems.annotations[0]) {
                    var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];
                    this.pdfViewer.clearSelection(currentAnnotation.pageIndex);
                }
                else {
                    this.pdfViewer.clearSelection(this.pdfViewer.currentPageNumber - 1);
                }
            }
        };
        Annotation.prototype.getAnnotationTop = function (annotation) {
            if (annotation.rect && (annotation.rect.Top || annotation.rect.top)) {
                return annotation.rect.Top || annotation.rect.top;
            }
            else {
                return annotation.bounds[0].Top || annotation.bounds[0].top;
            }
        };
        Annotation.prototype.getAnnotationLeft = function (annotation) {
            if (annotation.rect) {
                if (annotation.rect.Left) {
                    return annotation.rect.Left;
                }
                else {
                    return annotation.rect.left;
                }
            }
            else {
                if (annotation.bounds[0].Left) {
                    return annotation.bounds[0].Left;
                }
                else {
                    return annotation.bounds[0].left;
                }
            }
        };
        Annotation.prototype.selectAnnotationFromCodeBehind = function () {
            if (this.isAnnotationSelected && this.selectAnnotationId) {
                var annotation = this.getAnnotationsFromAnnotationCollections(this.selectAnnotationId);
                var id = this.selectAnnotationId;
                var pageIndex = annotation.pageNumber;
                var currentSelector = this.pdfViewer.annotationSelectorSettings;
                if (annotation && (this.annotationPageIndex >= 0) && this.annotationPageIndex === pageIndex) {
                    if (this.previousIndex) {
                        this.pdfViewer.clearSelection(this.previousIndex);
                    }
                    this.pdfViewer.clearSelection(pageIndex);
                    this.previousIndex = pageIndex;
                    if (annotation.shapeAnnotationType === 'textMarkup') {
                        this.pdfViewer.annotationModule.textMarkupAnnotationModule.clearCurrentAnnotationSelection(pageIndex, true);
                        var canvasId = annotation.textMarkupAnnotationType === 'Highlight' ? '_blendAnnotationsIntoCanvas_' : '_annotationCanvas_';
                        var canvas = (canvasId === '_blendAnnotationsIntoCanvas_') ? this.pdfViewerBase.getElement(canvasId + pageIndex) :
                            this.pdfViewerBase.getAnnotationCanvas(canvasId, pageIndex);
                        var textMarkupAnnotation = this.getTextMarkupAnnotations(pageIndex, annotation);
                        if (textMarkupAnnotation) {
                            this.textMarkupAnnotationModule.currentTextMarkupAnnotation = null;
                            this.textMarkupAnnotationModule.isSelectedAnnotation = true;
                            this.textMarkupAnnotationModule.showHideDropletDiv(true);
                            this.textMarkupAnnotationModule.annotationClickPosition = null;
                            this.textMarkupAnnotationModule.selectAnnotation(textMarkupAnnotation, canvas, pageIndex);
                            this.textMarkupAnnotationModule.currentTextMarkupAnnotation = textMarkupAnnotation;
                            this.textMarkupAnnotationModule.selectTextMarkupCurrentPage = pageIndex;
                            this.textMarkupAnnotationModule.enableAnnotationPropertiesTool(true);
                            this.textMarkupAnnotationModule.isSelectedAnnotation = false;
                            if (this.pdfViewer.toolbarModule && this.pdfViewer.enableAnnotationToolbar) {
                                this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden = true;
                                this.pdfViewer.toolbarModule.annotationToolbarModule.
                                    showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);
                            }
                        }
                    }
                    else if (annotation.shapeAnnotationType === 'stamp' || annotation.ShapeAnnotationType === 'stamp') {
                        this.pdfViewer.select([annotation.uniqueKey], currentSelector);
                        this.pdfViewer.annotation.onAnnotationMouseDown();
                    }
                    else if (annotation.shapeAnnotationType === 'sticky' || annotation.ShapeAnnotationType === 'sticky') {
                        this.pdfViewer.select([annotation.annotationId], currentSelector);
                        this.pdfViewer.annotation.onAnnotationMouseDown();
                    }
                    else if (annotation.uniqueKey) {
                        this.pdfViewer.select([annotation.uniqueKey], currentSelector);
                        this.pdfViewer.annotation.onAnnotationMouseDown();
                    }
                    else {
                        this.pdfViewer.select([annotation.annotationId], currentSelector);
                        this.pdfViewer.annotation.onAnnotationMouseDown();
                    }
                    var commentElement = document.getElementById(this.pdfViewer.element.id + '_commantPanel');
                    if (commentElement && commentElement.style.display === 'block') {
                        var accordionExpand = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + this.pdfViewer.currentPageNumber);
                        if (accordionExpand) {
                            accordionExpand.ej2_instances[0].expandItem(true);
                        }
                        var commentsDiv = document.getElementById(id);
                        if (commentsDiv) {
                            if (!commentsDiv.classList.contains('e-pv-comments-border')) {
                                commentsDiv.firstChild.click();
                            }
                        }
                    }
                }
                this.isAnnotationSelected = false;
                this.selectAnnotationId = null;
                this.annotationPageIndex = null;
            }
        };
        Annotation.prototype.findRenderPageList = function (pageIndex) {
            var isRender = false;
            var pageList = this.pdfViewerBase.renderedPagesList;
            if (pageList) {
                for (var i = 0; i < pageList.length; i++) {
                    if (pageList[parseInt(i.toString(), 10)] === pageIndex) {
                        isRender = true;
                        return isRender;
                    }
                }
            }
            return isRender;
        };
        Annotation.prototype.getAnnotationIdFromSignatureCollections = function (annotationId) {
            var signature = this.pdfViewer.signatureCollection.find(function (item) { return annotationId === item.annotationId; });
            return signature ? signature.uniqueKey : annotationId;
        };
        Annotation.prototype.getAnnotationsFromAnnotationCollections = function (annotationId, annotation) {
            var collections = this.pdfViewer.annotationCollection;
            if (collections && annotationId) {
                var hasAnnotation = !ej2_base_1.isNullOrUndefined(annotation) && typeof annotation === 'object';
                for (var i = 0; i < collections.length; i++) {
                    if (collections[parseInt(i.toString(), 10)].annotationId === annotationId) {
                        if (!hasAnnotation || collections[parseInt(i.toString(), 10)].pageNumber === annotation.pageNumber) {
                            return collections[parseInt(i.toString(), 10)];
                        }
                    }
                }
            }
            if (this.pdfViewer.selectedItems.annotations.length === 0) {
                if (ej2_base_1.isNullOrUndefined(this.pdfViewer.nameTable["" + annotationId])) {
                    annotationId = this.getAnnotationIdFromSignatureCollections(annotationId);
                }
                this.pdfViewer.selectedItems.annotations.push(this.pdfViewer.nameTable["" + annotationId]);
            }
        };
        Annotation.prototype.getTextMarkupAnnotations = function (pageIndex, annotation) {
            var storeObject = this.pdfViewer.annotationsCollection.get(this.pdfViewerBase.documentId + '_annotations_textMarkup');
            if (storeObject) {
                var index = this.getPageCollection(storeObject, pageIndex);
                if (index != null && storeObject[parseInt(index.toString(), 10)]) {
                    for (var i = 0; i < storeObject[parseInt(index.toString(), 10)].annotations.length; i++) {
                        if (storeObject[parseInt(index.toString(), 10)].annotations[parseInt(i.toString(), 10)].annotName ===
                            annotation.annotationId) {
                            return storeObject[parseInt(index.toString(), 10)].annotations[parseInt(i.toString(), 10)];
                        }
                    }
                    return null;
                }
                return null;
            }
            else {
                return null;
            }
        };
        Annotation.prototype.getAnnotationType = function (type, measureType) {
            var annotType;
            if (measureType === '' || ej2_base_1.isNullOrUndefined(measureType)) {
                switch (type) {
                    case 'Line':
                        annotType = 'Line';
                        break;
                    case 'LineWidthArrowHead':
                        annotType = 'Arrow';
                        break;
                    case 'Rectangle':
                        annotType = 'Rectangle';
                        break;
                    case 'Redaction':
                        annotType = 'Redaction';
                        break;
                    case 'Ellipse':
                        annotType = 'Circle';
                        break;
                    case 'Polygon':
                        annotType = 'Polygon';
                        break;
                    case 'Stamp':
                        annotType = 'Stamp';
                        break;
                    case 'Image':
                        annotType = 'Image';
                        break;
                    case 'FreeText':
                        annotType = 'FreeText';
                        break;
                    case 'Ink':
                        annotType = 'Ink';
                        break;
                    case 'StickyNotes':
                        annotType = 'StickyNotes';
                        break;
                }
            }
            else {
                switch (measureType) {
                    case 'Distance':
                        annotType = 'Distance';
                        break;
                    case 'Perimeter':
                        annotType = 'Perimeter';
                        break;
                    case 'Area':
                        annotType = 'Area';
                        break;
                    case 'Radius':
                        annotType = 'Radius';
                        break;
                    case 'Volume':
                        annotType = 'Volume';
                        break;
                }
            }
            return annotType;
        };
        Annotation.prototype.getAnnotationIndex = function (pageNumber, annotationId) {
            var pageAnnotationBases = this.pdfViewer.drawing.getPageObjects(pageNumber);
            var index = null;
            for (var i = 0; i < pageAnnotationBases.length; i++) {
                if (pageAnnotationBases[parseInt(i.toString(), 10)].id === annotationId) {
                    index = i;
                    break;
                }
            }
            return index;
        };
        Annotation.prototype.initializeCollection = function () {
            this.actionCollection = [];
            this.redoCollection = [];
            if (!this.popupNote) {
                this.createNote();
            }
        };
        Annotation.prototype.showCommentsPanel = function () {
            if (this.pdfViewer.enableCommentPanel) {
                var commentPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');
                if (commentPanel) {
                    if (commentPanel.style.display === 'none') {
                        commentPanel.style.display = 'block';
                        if (ej2_base_1.Browser.isDevice && !ej2_base_1.isBlazor()) {
                            var viewer = document.getElementById(this.pdfViewer.element.id + '_viewerMainContainer');
                            viewer.insertBefore(this.pdfViewerBase.navigationPane.commentPanelContainer, this.pdfViewer.toolbarModule.toolbarElement);
                        }
                        if (this.pdfViewerBase.navigationPane.commentPanelResizer) {
                            this.pdfViewerBase.navigationPane.commentPanelResizer.style.display = 'block';
                        }
                        this.pdfViewerBase.navigationPane.setCommentPanelResizeIconTop();
                        this.pdfViewer.annotation.stickyNotesAnnotationModule.updateCommentPanelTextTop();
                        var viewerContainer = document.getElementById(this.pdfViewer.element.id + '_viewerContainer');
                        var pageContainer = document.getElementById(this.pdfViewer.element.id + '_pageViewContainer');
                        if (viewerContainer) {
                            if (this.pdfViewer.enableRtl) {
                                viewerContainer.style.left = this.pdfViewerBase.navigationPane.getViewerContainerRight() + 'px';
                            }
                            else {
                                viewerContainer.style.right = this.pdfViewerBase.navigationPane.getViewerContainerRight() + 'px';
                            }
                            viewerContainer.style.width = ((this.pdfViewer.element.clientWidth > 0 ? this.pdfViewer.element.clientWidth : this.pdfViewer.element.offsetWidth) - this.pdfViewerBase.navigationPane.getViewerContainerLeft() - this.pdfViewerBase.navigationPane.getViewerContainerRight()) + 'px';
                            pageContainer.style.width = (viewerContainer.offsetWidth - this.pdfViewerBase.navigationPane.getViewerContainerScrollbarWidth()) + 'px';
                        }
                        this.pdfViewerBase.updateZoomValue();
                        if (this.pdfViewer.annotation && this.pdfViewer.annotation.textMarkupAnnotationModule) {
                            this.pdfViewer.annotation.textMarkupAnnotationModule.showHideDropletDiv(true);
                        }
                        if (ej2_base_1.Browser.isDevice && !this.pdfViewer.enableDesktopMode && !ej2_base_1.isBlazor()) {
                            commentPanel.style.height = this.pdfViewerBase.viewerMainContainer.clientHeight + 'px';
                            if (this.pdfViewer.selectedItems.annotations.length > 0) {
                                var commentDiv = document.getElementById(this.pdfViewer.selectedItems.annotations[0].annotName);
                                if (commentDiv && commentDiv.lastElementChild.children[1] &&
                                    commentDiv.lastElementChild.children[1].ej2_instances) {
                                    commentDiv.lastElementChild.children[1].ej2_instances[0].enableEditMode = true;
                                    commentDiv.lastElementChild.children[1].ej2_instances[0].dataBind();
                                }
                                else if (commentDiv && commentDiv.lastElementChild.ej2_instances) {
                                    commentDiv.lastElementChild.ej2_instances[0].enableEditMode = true;
                                    commentDiv.lastElementChild.ej2_instances[0].dataBind();
                                    commentDiv.lastElementChild.style.display = 'block';
                                    if (commentDiv.lastElementChild.children[1]) {
                                        commentDiv.lastElementChild.children[1].style.display = 'block';
                                    }
                                }
                            }
                            if (this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar) {
                                this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar.element.style.display = 'none';
                                if (this.pdfViewer.toolbarModule.annotationToolbarModule.propertyToolbar) {
                                    this.pdfViewer.toolbarModule.annotationToolbarModule.propertyToolbar.element.style.display = 'none';
                                }
                            }
                            if (this.pdfViewer.toolbarModule.redactionToolbarModule &&
                                this.pdfViewer.toolbarModule.redactionToolbarModule.toolbar) {
                                this.pdfViewer.toolbarModule.redactionToolbarModule.toolbar.element.style.display = 'none';
                            }
                        }
                        if (!ej2_base_1.isNullOrUndefined(this.pdfViewerBase.navigationPane)) {
                            this.pdfViewerBase.navigationPane.calculateCommentPanelWidth();
                        }
                    }
                }
            }
        };
        Annotation.prototype.isRedactionAnnotation = function () {
            return this.pdfViewer.annotationCollection.some(function (annotation) { return annotation.shapeAnnotationType === 'Redaction'; });
        };
        Annotation.prototype.addAction = function (pageNumber, index, annotation, actionString, property, node, redo) {
            var action = {
                pageIndex: pageNumber, index: index, annotation: annotation,
                action: actionString, modifiedProperty: property, undoElement: node, redoElement: redo
            };
            this.actionCollection.push(action);
            this.updateToolbar();
        };
        Annotation.prototype.undo = function () {
            var _this = this;
            var actionObject = this.actionCollection.pop();
            if (actionObject) {
                var shapeType = actionObject.annotation.shapeAnnotationType;
                this.isUndoRedoAction = true;
                this.isUndoAction = true;
                this.isUndoActionImageLoad = true;
                switch (actionObject.action) {
                    case 'Text Markup Added':
                    case 'Text Markup Deleted':
                        if (this.textMarkupAnnotationModule) {
                            this.textMarkupAnnotationModule.undoTextMarkupAction(actionObject.annotation, actionObject.pageIndex, actionObject.index, actionObject.action);
                        }
                        if (!ej2_base_1.isNullOrUndefined(this.textMarkupAnnotationModule) && this.textMarkupAnnotationModule.isTextMarkupAnnotationMode) {
                            this.pdfViewer.toolbar.annotationToolbarModule.enableTextMarkupAnnotationPropertiesTools(true);
                        }
                        else {
                            this.pdfViewer.toolbar.annotationToolbarModule.enableTextMarkupAnnotationPropertiesTools(false);
                        }
                        break;
                    case 'Text Markup Property modified':
                        if (this.textMarkupAnnotationModule) {
                            actionObject.annotation =
                                this.textMarkupAnnotationModule.undoRedoPropertyChange(actionObject.annotation, actionObject.pageIndex, actionObject.index, actionObject.modifiedProperty, true);
                        }
                        break;
                    case 'Drag':
                    case 'Resize':
                        if (drawing_util_1.isLineShapes(actionObject.annotation)) {
                            this.pdfViewer.nodePropertyChange(actionObject.annotation, {
                                bounds: actionObject.undoElement.bounds,
                                vertexPoints: actionObject.undoElement.vertexPoints, leaderHeight: actionObject.undoElement.leaderHeight
                            });
                        }
                        else {
                            this.pdfViewer.nodePropertyChange(actionObject.annotation, { bounds: actionObject.undoElement.bounds });
                        }
                        if (actionObject.annotation.measureType === 'Distance' || actionObject.annotation.measureType === 'Perimeter' || actionObject.annotation.measureType === 'Area' ||
                            actionObject.annotation.measureType === 'Radius' || actionObject.annotation.measureType === 'Volume') {
                            this.pdfViewer.nodePropertyChange(actionObject.annotation, { notes: actionObject.undoElement.notes });
                            this.updateCalibrateValues(actionObject.annotation);
                        }
                        if (actionObject.annotation.formFieldAnnotationType) {
                            this.pdfViewer.formDesigner.updateHTMLElement(actionObject.annotation);
                        }
                        this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);
                        this.pdfViewer.select([actionObject.annotation.id]);
                        if (actionObject.annotation.shapeAnnotationType === 'Line' || actionObject.annotation.shapeAnnotationType === 'Rectangle' || actionObject.annotation.shapeAnnotationType === 'Ellipse' || actionObject.annotation.shapeAnnotationType === 'Polygon' || actionObject.annotation.shapeAnnotationType === 'LineWidthArrowHead' ||
                            actionObject.annotation.shapeAnnotationType === 'Radius' || actionObject.annotation.shapeAnnotationType === 'FreeText' || actionObject.annotation.shapeAnnotationType === 'HandWrittenSignature' || actionObject.annotation.shapeAnnotationType === 'SignatureText' || actionObject.annotation.shapeAnnotationType === 'SignatureImage' || actionObject.annotation.shapeAnnotationType === 'Ink') {
                            this.modifyInCollections(actionObject.annotation, 'bounds');
                        }
                        break;
                    case 'Addition':
                        if (this.pdfViewer.formDesigner && actionObject.annotation.formFieldAnnotationType) {
                            this.pdfViewer.formDesigner.deleteFormField(actionObject.undoElement.id, false);
                        }
                        else {
                            var isAnnotationUpdate = false;
                            if (shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Polygon' ||
                                shapeType === 'Ellipse' || shapeType === 'Rectangle' || shapeType === 'Radius' || shapeType === 'Distance') {
                                if (actionObject.annotation.measureType === '' || ej2_base_1.isNullOrUndefined(actionObject.annotation.measureType)) {
                                    this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, 'shape', null, true);
                                }
                                else {
                                    this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, 'measure', null, true);
                                }
                                isAnnotationUpdate = true;
                                var annotationObject = actionObject.annotation;
                                var wrapper = annotationObject.wrapper ? annotationObject.wrapper : null;
                                if (wrapper && wrapper.bounds) {
                                    actionObject.annotation.bounds = wrapper.bounds;
                                }
                                actionObject.duplicate = this.modifyInCollections(actionObject.annotation, 'delete');
                            }
                            if (shapeType === 'Redaction' || shapeType === 'redaction') {
                                isAnnotationUpdate = true;
                                this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, 'Redaction', 'delete', true);
                                actionObject.duplicate = this.modifyInCollections(actionObject.annotation, 'delete');
                            }
                            if (shapeType === 'Stamp' || shapeType === 'Image') {
                                this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, actionObject.annotation.shapeAnnotationType, 'delete', true);
                                this.stampAnnotationModule.updateSessionStorage(actionObject.annotation, null, 'delete');
                                actionObject.duplicate = this.modifyInCollections(actionObject.annotation, 'delete');
                                isAnnotationUpdate = true;
                            }
                            if (shapeType === 'FreeText' || shapeType === 'HandWrittenSignature' ||
                                shapeType === 'SignatureImage' || shapeType === 'SignatureText' || shapeType === 'Ink') {
                                isAnnotationUpdate = true;
                                this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, actionObject.annotation.shapeAnnotationType, 'delete', true);
                                actionObject.duplicate = this.modifyInCollections(actionObject.annotation, 'delete');
                            }
                            if (!isAnnotationUpdate) {
                                this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, actionObject.annotation.shapeAnnotationType, 'delete', true);
                            }
                            this.pdfViewer.clearSelection((!ej2_base_1.isNullOrUndefined(this.pdfViewerBase.activeElements.activePageID) &&
                                !isNaN(this.pdfViewerBase.activeElements.activePageID)) ?
                                this.pdfViewerBase.activeElements.activePageID : actionObject.annotation.pageIndex);
                            this.pdfViewer.remove(actionObject.annotation);
                            var filteredAnnotations = this.pdfViewer.annotationCollection.filter(function (annotation) {
                                var excludeAnnotation = annotation.annotationId !== actionObject.annotation.annotName;
                                if (excludeAnnotation) {
                                    var removeDiv_1 = document.getElementById(annotation.annotName);
                                    if (removeDiv_1) {
                                        if (removeDiv_1.parentElement.childElementCount === 1) {
                                            _this.stickyNotesAnnotationModule.updateAccordionContainer(removeDiv_1);
                                        }
                                        else {
                                            removeDiv_1.parentElement.removeChild(removeDiv_1);
                                        }
                                    }
                                }
                                return !excludeAnnotation;
                            });
                            this.pdfViewer.renderDrawing(null, actionObject.annotation.pageIndex);
                            this.hideAnnotationPropertiesToolbar();
                            this.showOrHideRedactionIcon();
                            var removeDiv = document.getElementById(actionObject.annotation.annotName);
                            if (removeDiv) {
                                if (removeDiv.parentElement.childElementCount === 1) {
                                    this.stickyNotesAnnotationModule.updateAccordionContainer(removeDiv);
                                }
                                else {
                                    removeDiv.parentElement.removeChild(removeDiv);
                                }
                            }
                            if (ej2_base_1.Browser.isDevice && !this.pdfViewer.enableDesktopMode) {
                                var mobileAnnotationToolbar = document.getElementById(this.pdfViewer.element.id + '_propertyToolbar');
                                if (mobileAnnotationToolbar && mobileAnnotationToolbar.children.length > 0) {
                                    this.pdfViewer.toolbarModule.annotationToolbarModule.toolbarCreated = false;
                                    this.pdfViewer.toolbarModule.annotationToolbarModule.createAnnotationToolbarForMobile();
                                }
                            }
                        }
                        break;
                    case 'Delete':
                        if (this.pdfViewer.formDesigner && actionObject.annotation.formFieldAnnotationType) {
                            actionObject.undoElement.bounds.x = actionObject.undoElement.wrapper.bounds.x;
                            actionObject.undoElement.bounds.y = actionObject.undoElement.wrapper.bounds.y;
                            this.pdfViewer.formDesigner.drawFormField(actionObject.undoElement);
                        }
                        else {
                            if (shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Polygon' || shapeType === 'Ellipse' || shapeType === 'Rectangle' || shapeType === 'Radius' || shapeType === 'Distance') {
                                if (actionObject.annotation.measureType === '' || ej2_base_1.isNullOrUndefined(actionObject.annotation.measureType)) {
                                    shapeType = 'shape';
                                    this.shapeAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.undoElement);
                                }
                                else {
                                    shapeType = 'shape_measure';
                                    this.measureAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.undoElement);
                                }
                            }
                            if (shapeType === 'Redaction' || shapeType === 'redaction') {
                                this.redactionAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.undoElement);
                            }
                            if (shapeType === 'Stamp' || shapeType === 'Image') {
                                this.stampAnnotationModule.updateDeleteItems(actionObject.annotation.pageIndex, actionObject.annotation);
                            }
                            else if (shapeType === 'FreeText') {
                                this.freeTextAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.undoElement);
                            }
                            else if (shapeType === 'Ink') {
                                this.inkAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.undoElement);
                            }
                            else if (shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText' || shapeType === 'SignatureImage') {
                                this.pdfViewerBase.signatureModule.addInCollection(actionObject.annotation.pageIndex, actionObject.undoElement);
                            }
                            if (!actionObject.annotation.annotationId) {
                                var addedAnnot = this.pdfViewer.add(actionObject.annotation);
                                if ((shapeType === 'FreeText' || addedAnnot.enableShapeLabel) && addedAnnot) {
                                    this.pdfViewer.nodePropertyChange(addedAnnot, {});
                                }
                            }
                            var formFieldObj = void 0;
                            if (actionObject.annotation.id) {
                                formFieldObj = this.pdfViewer.nameTable[actionObject.annotation.id.split('_')[0]];
                            }
                            if (formFieldObj != null && (formFieldObj.formFieldAnnotationType === 'SignatureField' || formFieldObj.formFieldAnnotationType === 'InitialField')) {
                                formFieldObj.wrapper.children.push(actionObject.annotation.wrapper.children[0]);
                                if (actionObject.annotation.shapeAnnotationType === 'SignatureText') {
                                    formFieldObj.wrapper.children.push(actionObject.annotation.wrapper.children[1]);
                                }
                                var key = actionObject.annotation.id.split('_')[0] + '_content';
                                var data = null;
                                if (this.pdfViewer.formDesignerModule) {
                                    data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');
                                }
                                if (data) {
                                    var formFieldsData = JSON.parse(data);
                                    for (var i = 0; i < formFieldsData.length; i++) {
                                        if (formFieldsData[parseInt(i.toString(), 10)].Key === key) {
                                            if (actionObject.annotation.shapeAnnotationType === 'SignatureText') {
                                                formFieldsData[parseInt(i.toString(), 10)].FormField.signatureType = 'Text';
                                                formFieldsData[parseInt(i.toString(), 10)].FormField.value = actionObject.annotation.data;
                                                this.pdfViewerBase.formFieldCollection[parseInt(i.toString(), 10)].FormField.value =
                                                    actionObject.annotation.data;
                                                this.pdfViewerBase.formFieldCollection[parseInt(i.toString(), 10)].FormField.signatureType = 'Text';
                                            }
                                            else if (actionObject.annotation.shapeAnnotationType === 'SignatureImage') {
                                                formFieldsData[parseInt(i.toString(), 10)].FormField.signatureType = 'Image';
                                                formFieldsData[parseInt(i.toString(), 10)].FormField.value = actionObject.annotation.data;
                                                this.pdfViewerBase.formFieldCollection[parseInt(i.toString(), 10)].FormField.value =
                                                    actionObject.annotation.data;
                                                this.pdfViewerBase.formFieldCollection[parseInt(i.toString(), 10)].FormField.signatureType = 'Image';
                                            }
                                            else {
                                                formFieldsData[parseInt(i.toString(), 10)].FormField.signatureType = 'Path';
                                                this.pdfViewerBase.formFieldCollection[parseInt(i.toString(), 10)].FormField.signatureType = 'Path';
                                                var collectionData = ej2_drawings_1.processPathData(actionObject.annotation.data);
                                                var csData = ej2_drawings_1.splitArrayCollection(collectionData);
                                                formFieldsData[parseInt(i.toString(), 10)].FormField.value = JSON.stringify(csData);
                                                this.pdfViewerBase.formFieldCollection[parseInt(i.toString(), 10)].FormField.value =
                                                    JSON.stringify(csData);
                                            }
                                        }
                                    }
                                    this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');
                                }
                            }
                            this.pdfViewer.renderDrawing(null, actionObject.annotation.pageIndex);
                            this.hideAnnotationPropertiesToolbar();
                            this.showOrHideRedactionIcon();
                            this.pdfViewer.annotationModule.stickyNotesAnnotationModule.
                                addAnnotationComments(actionObject.annotation.pageIndex, shapeType, true);
                            if (actionObject.annotation.annotationId) {
                                var removedAnnotationCollection = this.removedAnnotationCollection[this.removedAnnotationCollection.length - 1];
                                var annotationType = this.getTypeOfAnnotation(removedAnnotationCollection);
                                this.pdfViewer.annotationCollection.push(removedAnnotationCollection);
                                this.removedAnnotationCollection.splice(this.removedAnnotationCollection.length - 1);
                                var pageNumber = actionObject.annotation.pageNumber >= 0 ? actionObject.annotation.pageNumber :
                                    actionObject.annotation.pageIndex;
                                this.pdfViewerBase.documentAnnotationCollections[parseInt(pageNumber.toString(), 10)]["" + annotationType].
                                    push(this.removedDocumentAnnotationCollection[this.removedDocumentAnnotationCollection.length - 1]);
                                this.removedDocumentAnnotationCollection.splice(this.removedDocumentAnnotationCollection.length - 1);
                            }
                        }
                        break;
                    case 'RedactionPropertyChange':
                        if (actionObject.undoElement && actionObject.undoElement.shapeAnnotationType === 'Redaction') {
                            if (this.pdfViewer.annotationModule) {
                                this.pdfViewer.annotationModule.editAnnotation(actionObject.undoElement);
                            }
                        }
                        break;
                    case 'AddRedactPages':
                        {
                            this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);
                            var duplicateAnotations = [];
                            for (var i = actionObject.annotation.length - 1; i >= 0; i--) {
                                this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation[i], 'Redaction', 'delete', true);
                            }
                            for (var i = 0; i < actionObject.annotation.length; i++) {
                                var newAnnotationObject = actionObject.annotation[i];
                                var pageIndex = newAnnotationObject.pageIndex !== undefined ?
                                    newAnnotationObject.pageIndex : 0;
                                duplicateAnotations.push(this.modifyInCollections(newAnnotationObject, 'delete'));
                                this.pdfViewer.remove(newAnnotationObject);
                                this.showOrHideRedactionIcon();
                                this.pdfViewer.renderDrawing(null, pageIndex);
                            }
                            actionObject.duplicate = duplicateAnotations;
                            for (var i = actionObject.annotation.length - 1; i >= 0; i--) {
                                var removeDiv = document.getElementById(actionObject.annotation[i].annotName);
                                if (removeDiv) {
                                    if (removeDiv.parentElement.childElementCount === 1) {
                                        this.stickyNotesAnnotationModule.updateAccordionContainer(removeDiv);
                                    }
                                    else {
                                        removeDiv.parentElement.removeChild(removeDiv);
                                    }
                                }
                            }
                            break;
                        }
                    case 'stampOpacity':
                        this.pdfViewer.nodePropertyChange(actionObject.annotation, { opacity: actionObject.undoElement.opacity });
                        this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);
                        actionObject.annotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();
                        break;
                    case 'Shape Stroke':
                        this.pdfViewer.nodePropertyChange(actionObject.annotation, { strokeColor: actionObject.undoElement.strokeColor });
                        this.modifyInCollections(actionObject.annotation, 'stroke');
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'Shape Fill':
                        this.pdfViewer.nodePropertyChange(actionObject.annotation, { fillColor: actionObject.undoElement.fillColor });
                        this.modifyInCollections(actionObject.annotation, 'fill');
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'Shape Opacity':
                        this.pdfViewer.nodePropertyChange(actionObject.annotation, { opacity: actionObject.undoElement.opacity });
                        if (actionObject.annotation.shapeAnnotationType === 'StickyNotes') {
                            this.stickyNotesAnnotationModule.updateOpacityValue(actionObject.annotation);
                            this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);
                            actionObject.annotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();
                        }
                        else {
                            this.modifyInCollections(actionObject.annotation, 'opacity');
                        }
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'Shape Thickness':
                        this.pdfViewer.nodePropertyChange(actionObject.annotation, { thickness: actionObject.undoElement.thickness });
                        this.modifyInCollections(actionObject.annotation, 'thickness');
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'Line properties change':
                        this.pdfViewer.nodePropertyChange(actionObject.annotation, {
                            fillColor: actionObject.undoElement.fillColor, borderDashArray: actionObject.undoElement.borderDashArray,
                            borderStyle: actionObject.undoElement.borderStyle,
                            strokeColor: actionObject.undoElement.strokeColor, opacity: actionObject.undoElement.opacity,
                            thickness: actionObject.undoElement.thickness,
                            sourceDecoraterShapes: this.getArrowType(actionObject.undoElement.lineHeadStart),
                            taregetDecoraterShapes: this.getArrowType(actionObject.undoElement.lineHeadEnd)
                        });
                        this.updateCollectionForLineProperty(actionObject.annotation);
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'Text Property Added':
                        actionObject.annotation = this.pdfViewer.annotationModule.
                            stickyNotesAnnotationModule.undoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);
                        this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);
                        actionObject.annotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();
                        break;
                    case 'Comments Property Added':
                        actionObject.annotation = this.pdfViewer.annotationModule.
                            stickyNotesAnnotationModule.undoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);
                        break;
                    case 'Status Property Added':
                        actionObject.annotation = this.pdfViewer.annotationModule.
                            stickyNotesAnnotationModule.undoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);
                        break;
                    case 'Comments Reply Deleted':
                        actionObject.annotation = this.pdfViewer.annotationModule.
                            stickyNotesAnnotationModule.undoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);
                        break;
                    case 'dynamicText Change':
                        this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = true;
                        actionObject.annotation.dynamicText = actionObject.undoElement.dynamicText;
                        if (this.pdfViewer.selectedItems.annotations[0]) {
                            this.pdfViewer.selectedItems.annotations[0].dynamicText = actionObject.undoElement.dynamicText;
                        }
                        this.pdfViewer.annotationModule.
                            stickyNotesAnnotationModule.undoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);
                        this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);
                        this.modifyInCollections(actionObject.annotation, 'dynamicText');
                        if (this.pdfViewer.selectedItems.annotations[0]) {
                            this.pdfViewer.nodePropertyChange(this.pdfViewer.selectedItems.annotations[0], {});
                        }
                        else {
                            this.pdfViewer.nodePropertyChange(actionObject.annotation, {});
                        }
                        this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = false;
                        this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);
                        break;
                    case 'fontColor':
                        this.pdfViewer.nodePropertyChange(actionObject.annotation, { fontColor: actionObject.undoElement.fontColor });
                        this.modifyInCollections(actionObject.annotation, 'fontColor');
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'fontSize':
                        this.isFreeTextFontsizeChanged = true;
                        this.modifyFontSize(actionObject.undoElement.fontSize, false, actionObject.annotation);
                        break;
                    case 'fontFamily':
                        this.pdfViewer.nodePropertyChange(actionObject.annotation, { fontFamily: actionObject.undoElement.fontFamily });
                        this.modifyInCollections(actionObject.annotation, 'fontFamily');
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'textAlign':
                        this.pdfViewer.nodePropertyChange(actionObject.annotation, { textAlign: actionObject.undoElement.textAlign });
                        this.modifyInCollections(actionObject.annotation, 'textAlign');
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'textPropertiesChange':
                        this.pdfViewer.nodePropertyChange(actionObject.annotation, { font: actionObject.undoElement.font });
                        this.modifyInCollections(actionObject.annotation, 'textPropertiesChange');
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'Rotate':
                        this.pdfViewer.nodePropertyChange(actionObject.annotation.annotations[0], {
                            bounds: actionObject.undoElement.bounds,
                            rotateAngle: actionObject.undoElement.rotateAngle
                        });
                        this.modifyInCollections(actionObject.annotation.annotations[0], 'bounds');
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'FormDesigner Properties Change':
                        if (actionObject.undoElement && actionObject.undoElement.isMultiline !== actionObject.redoElement.isMultiline) {
                            this.undoRedoMultiline(actionObject.undoElement);
                        }
                        this.updateFormFieldPropertiesChanges(actionObject.undoElement.formFieldAnnotationType, actionObject.undoElement);
                        break;
                    case 'FormField Value Change':
                        if (actionObject.annotation.formFieldAnnotationType) {
                            if (actionObject.annotation.formFieldAnnotationType === 'RadioButton') {
                                this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.undoElement, false);
                                this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.redoElement, true);
                            }
                            else {
                                this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.annotation, actionObject.undoElement);
                            }
                        }
                        else {
                            var spanElement = document.getElementById(actionObject.annotation.id + '_html_element').children[0].children[0];
                            spanElement.className = 'e-pdfviewer-signatureformfields';
                            var formFieldObj = this.pdfViewer.nameTable[actionObject.annotation.id.split('_')[0]];
                            var annotationObj = this.pdfViewer.nameTable[actionObject.annotation.id];
                            if (actionObject.annotation.annotName === 'SignatureField' || actionObject.annotation.annotName === 'SignatureText') {
                                actionObject.annotation.bounds = annotationObj.wrapper.bounds;
                            }
                            formFieldObj.wrapper.children.splice(formFieldObj.wrapper.children.indexOf(annotationObj.wrapper.children[0]), 1);
                            if (actionObject.annotation.shapeAnnotationType === 'SignatureText') {
                                formFieldObj.wrapper.children.splice(formFieldObj.wrapper.children.indexOf(annotationObj.wrapper.children[1]), 1);
                            }
                            var key = actionObject.annotation.id.split('_')[0] + '_content';
                            var data = null;
                            if (this.pdfViewer.formDesignerModule) {
                                data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');
                            }
                            if (data) {
                                var formFieldsData = JSON.parse(data);
                                for (var i = 0; i < formFieldsData.length; i++) {
                                    if (formFieldsData[parseInt(i.toString(), 10)].Key === key) {
                                        formFieldsData[parseInt(i.toString(), 10)].FormField.value = '';
                                        formFieldsData[parseInt(i.toString(), 10)].FormField.signatureType = '';
                                        this.pdfViewerBase.formFieldCollection[parseInt(i.toString(), 10)].FormField.value = '';
                                        this.pdfViewerBase.formFieldCollection[parseInt(i.toString(), 10)].FormField.signatureType = '';
                                    }
                                }
                                this.pdfViewer.remove(actionObject.annotation);
                                this.pdfViewer.renderDrawing();
                                this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');
                            }
                        }
                }
                this.redoCollection.push(actionObject);
                this.updateToolbar();
                this.isUndoRedoAction = false;
                this.isUndoAction = false;
            }
        };
        Annotation.prototype.redo = function () {
            var actionObject = this.redoCollection.pop();
            var annotationObject = this.pdfViewer.nameTable[actionObject.annotation.id];
            if (actionObject) {
                var shapeType = actionObject.annotation.shapeAnnotationType;
                this.isUndoRedoAction = true;
                switch (actionObject.action) {
                    case 'Text Markup Property modified':
                        if (this.textMarkupAnnotationModule) {
                            actionObject.annotation = this.textMarkupAnnotationModule.
                                undoRedoPropertyChange(actionObject.annotation, actionObject.pageIndex, actionObject.index, actionObject.modifiedProperty);
                        }
                        break;
                    case 'Text Markup Added':
                    case 'Text Markup Deleted':
                        if (this.textMarkupAnnotationModule) {
                            this.textMarkupAnnotationModule.
                                redoTextMarkupAction(actionObject.annotation, actionObject.pageIndex, actionObject.index, actionObject.action);
                        }
                        if (actionObject.action === 'Text Markup Deleted') {
                            this.modifyInCollections(actionObject.annotation, 'delete');
                        }
                        this.pdfViewer.toolbar.annotationToolbarModule.enableTextMarkupAnnotationPropertiesTools(false);
                        break;
                    case 'Drag':
                    case 'Resize':
                        if (drawing_util_1.isLineShapes(actionObject.annotation)) {
                            this.pdfViewer.nodePropertyChange(annotationObject, { bounds: actionObject.redoElement.bounds, vertexPoints: actionObject.redoElement.vertexPoints, leaderHeight: actionObject.redoElement.leaderHeight });
                        }
                        else {
                            this.pdfViewer.nodePropertyChange(annotationObject, { bounds: actionObject.redoElement.bounds });
                        }
                        if (annotationObject && ((annotationObject.type === 'Redaction') || (annotationObject.shapeAnnotationType === 'Redaction'))) {
                            this.pdfViewer.annotationModule.redactionOverlayTextModule.removeRedactionOverlayText(annotationObject);
                        }
                        if (actionObject.annotation.measureType === 'Distance' || actionObject.annotation.measureType === 'Perimeter' || actionObject.annotation.measureType === 'Area' ||
                            actionObject.annotation.measureType === 'Radius' || actionObject.annotation.measureType === 'Volume') {
                            this.pdfViewer.nodePropertyChange(annotationObject, { notes: actionObject.redoElement.notes });
                            this.updateCalibrateValues(annotationObject);
                        }
                        if (actionObject.annotation.formFieldAnnotationType) {
                            this.pdfViewer.formDesigner.updateHTMLElement(actionObject.annotation);
                        }
                        this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);
                        this.pdfViewer.select([annotationObject.id]);
                        if (actionObject.annotation.shapeAnnotationType === 'Line' || actionObject.annotation.shapeAnnotationType === 'Rectangle' || actionObject.annotation.shapeAnnotationType === 'Ellipse' || actionObject.annotation.shapeAnnotationType === 'Polygon' || actionObject.annotation.shapeAnnotationType === 'LineWidthArrowHead'
                            || actionObject.annotation.shapeAnnotationType === 'Radius' || actionObject.annotation.shapeAnnotationType === 'FreeText' || actionObject.annotation.shapeAnnotationType === 'HandWrittenSignature' || actionObject.annotation.shapeAnnotationType === 'SignatureText' || actionObject.annotation.shapeAnnotationType === 'SignatureImage' || actionObject.annotation.shapeAnnotationType === 'Ink') {
                            this.modifyInCollections(annotationObject, 'bounds');
                        }
                        break;
                    case 'Addition':
                        if (this.pdfViewer.formDesigner && actionObject.annotation.formFieldAnnotationType) {
                            actionObject.redoElement.bounds.x = actionObject.redoElement.wrapper.bounds.x;
                            actionObject.redoElement.bounds.y = actionObject.redoElement.wrapper.bounds.y;
                            this.pdfViewer.formDesigner.drawFormField(actionObject.redoElement, null, 'Addition');
                        }
                        else {
                            if (shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Polygon' || shapeType === 'Ellipse' || shapeType === 'Rectangle' || shapeType === 'Radius' || shapeType === 'Distance') {
                                if (actionObject.annotation.measureType === '' || ej2_base_1.isNullOrUndefined(actionObject.annotation.measureType)) {
                                    shapeType = 'shape';
                                    this.shapeAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.duplicate);
                                }
                                else {
                                    shapeType = 'shape_measure';
                                    this.measureAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.duplicate);
                                }
                            }
                            if (shapeType === 'Redaction' || shapeType === 'redaction') {
                                this.redactionAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.duplicate);
                            }
                            if (shapeType === 'FreeText') {
                                this.freeTextAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.duplicate);
                            }
                            if (shapeType === 'Stamp' || shapeType === 'Image') {
                                this.stampAnnotationModule.updateDeleteItems(actionObject.annotation.pageIndex, actionObject.redoElement);
                            }
                            if (shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText' || shapeType === 'SignatureImage') {
                                this.pdfViewerBase.signatureModule.addInCollection(actionObject.annotation.pageIndex, actionObject.duplicate);
                            }
                            if (shapeType === 'Ink') {
                                this.inkAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.duplicate);
                            }
                            var addedAnnot = this.pdfViewer.add(actionObject.annotation);
                            this.pdfViewer.select([actionObject.annotation.id]);
                            if ((shapeType === 'FreeText' || addedAnnot.enableShapeLabel) && addedAnnot) {
                                this.pdfViewer.nodePropertyChange(addedAnnot, {});
                            }
                            this.pdfViewer.renderDrawing(null, actionObject.annotation.pageIndex);
                            if (this.pdfViewer.selectedItems.annotations.length > 0) {
                                this.pdfViewer.viewerBase.showAnnotationPropertiesToolbar(true);
                            }
                            else {
                                this.hideAnnotationPropertiesToolbar();
                            }
                            this.showOrHideRedactionIcon();
                            this.pdfViewer.annotationModule.stickyNotesAnnotationModule.
                                addAnnotationComments(actionObject.annotation.pageIndex, shapeType, false);
                            if (ej2_base_1.Browser.isDevice && !this.pdfViewer.enableDesktopMode) {
                                var mobileAnnotationToolbar = document.getElementById(this.pdfViewer.element.id + '_propertyToolbar');
                                if (mobileAnnotationToolbar && mobileAnnotationToolbar.children.length > 0) {
                                    this.pdfViewer.toolbarModule.annotationToolbarModule.toolbarCreated = false;
                                    this.pdfViewer.toolbarModule.annotationToolbarModule.createAnnotationToolbarForMobile();
                                }
                            }
                        }
                        break;
                    case 'Delete':
                        if (this.pdfViewer.formDesigner && actionObject.annotation.formFieldAnnotationType) {
                            this.pdfViewer.formDesigner.deleteFormField(actionObject.redoElement.id, false);
                        }
                        else {
                            var isUpdate = false;
                            var sType = actionObject.annotation.shapeAnnotationType;
                            if (shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Polygon' || shapeType === 'Ellipse' || shapeType === 'Rectangle' || shapeType === 'Radius' || shapeType === 'Distance') {
                                if (actionObject.annotation.measureType === '' || ej2_base_1.isNullOrUndefined(actionObject.annotation.measureType)) {
                                    sType = 'shape';
                                }
                                else {
                                    sType = 'measure';
                                }
                                this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, sType, 'delete');
                                this.modifyInCollections(actionObject.annotation, 'delete');
                                isUpdate = true;
                            }
                            if (shapeType === 'Redaction' || shapeType === 'redaction') {
                                this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, shapeType, 'delete');
                                this.modifyInCollections(actionObject.annotation, 'delete');
                                isUpdate = true;
                            }
                            if (shapeType === 'Stamp' || shapeType === 'Image') {
                                this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, sType, 'delete');
                                this.stampAnnotationModule.updateSessionStorage(actionObject.annotation, null, 'delete');
                                this.modifyInCollections(actionObject.annotation, 'delete');
                                isUpdate = true;
                            }
                            if (shapeType === 'FreeText' || shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText' || shapeType === 'SignatureImage') {
                                this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, sType, 'delete');
                                this.modifyInCollections(actionObject.annotation, 'delete');
                            }
                            if (shapeType === 'Ink') {
                                this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, sType, 'delete');
                                this.modifyInCollections(actionObject.annotation, 'delete');
                            }
                            if (!isUpdate) {
                                this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, sType, 'delete');
                            }
                            var formFieldObj = void 0;
                            if (actionObject.annotation.id) {
                                formFieldObj = this.pdfViewer.nameTable[actionObject.annotation.id.split('_')[0]];
                            }
                            if (formFieldObj != null && (formFieldObj.formFieldAnnotationType === 'SignatureField' || formFieldObj.formFieldAnnotationType === 'InitialField')) {
                                formFieldObj.wrapper.children.splice(formFieldObj.wrapper.children.
                                    indexOf(actionObject.annotation.wrapper.children[0]), 1);
                                if (actionObject.annotation.shapeAnnotationType === 'SignatureText') {
                                    formFieldObj.wrapper.children.splice(formFieldObj.wrapper.children.
                                        indexOf(actionObject.annotation.wrapper.children[1]), 1);
                                }
                                var key = actionObject.annotation.id.split('_')[0] + '_content';
                                var data = null;
                                if (this.pdfViewer.formDesignerModule) {
                                    data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');
                                }
                                if (data) {
                                    var formFieldsData = JSON.parse(data);
                                    for (var i = 0; i < formFieldsData.length; i++) {
                                        if (formFieldsData[parseInt(i.toString(), 10)].Key === key) {
                                            formFieldsData[parseInt(i.toString(), 10)].FormField.value = '';
                                            formFieldsData[parseInt(i.toString(), 10)].FormField.signatureType = '';
                                            this.pdfViewerBase.formFieldCollection[parseInt(i.toString(), 10)].FormField.value = '';
                                            this.pdfViewerBase.formFieldCollection[parseInt(i.toString(), 10)].FormField.signatureType = '';
                                        }
                                    }
                                    this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');
                                }
                            }
                            this.pdfViewer.clearSelection(actionObject.annotation.pageIndex);
                            this.pdfViewer.remove(actionObject.annotation);
                            this.pdfViewer.renderDrawing(null, actionObject.annotation.pageIndex);
                            if (this.pdfViewer.selectedItems.annotations.length > 0) {
                                this.pdfViewer.viewerBase.showAnnotationPropertiesToolbar(true);
                            }
                            else {
                                this.hideAnnotationPropertiesToolbar();
                            }
                            this.showOrHideRedactionIcon();
                            var id = actionObject.annotation.annotName ? actionObject.annotation.
                                annotName : actionObject.annotation.annotationId;
                            var removeDiv = document.getElementById(id);
                            this.removeCommentPanelDiv(removeDiv);
                            if (actionObject.annotation.annotationId) {
                                var collections = this.
                                    updateCollectionForNonRenderedPages(actionObject.annotation, id, actionObject.annotation.pageIndex);
                                this.undoCommentsElement.push(collections);
                            }
                        }
                        break;
                    case 'RedactionPropertyChange':
                        if (actionObject.redoElement && actionObject.redoElement.shapeAnnotationType === 'Redaction') {
                            if (this.pdfViewer.annotationModule) {
                                this.pdfViewer.annotationModule.editAnnotation(actionObject.redoElement);
                            }
                        }
                        break;
                    case 'AddRedactPages':
                        for (var i = 0; i < actionObject.annotation.length; i++) {
                            var pageIndex = actionObject.annotation[i].pageIndex !== undefined ?
                                actionObject.annotation[i].pageIndex : actionObject.annotation[i].pageNumber;
                            var newAnnotationObject = actionObject.annotation[i];
                            this.redactionAnnotationModule.addInCollection(pageIndex, actionObject.duplicate[i]);
                            var addedAnnot = this.pdfViewer.add(newAnnotationObject);
                            this.pdfViewer.select([newAnnotationObject.id]);
                            this.showOrHideRedactionIcon(true);
                            this.pdfViewer.renderDrawing(null, pageIndex);
                            this.pdfViewer.annotationModule.stickyNotesAnnotationModule.
                                addAnnotationComments(pageIndex, shapeType, false);
                        }
                        break;
                    case 'stampOpacity':
                        this.pdfViewer.nodePropertyChange(annotationObject, { opacity: actionObject.redoElement.opacity });
                        this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotationObject, null, true);
                        break;
                    case 'Shape Stroke':
                        this.pdfViewer.nodePropertyChange(annotationObject, { strokeColor: actionObject.redoElement.strokeColor });
                        this.modifyInCollections(annotationObject, 'stroke');
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'Shape Fill':
                        this.pdfViewer.nodePropertyChange(annotationObject, { fillColor: actionObject.redoElement.fillColor });
                        this.modifyInCollections(annotationObject, 'fill');
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'Shape Opacity':
                        this.pdfViewer.nodePropertyChange(annotationObject, { opacity: actionObject.redoElement.opacity });
                        if (actionObject.annotation.shapeAnnotationType === 'StickyNotes') {
                            this.stickyNotesAnnotationModule.updateOpacityValue(annotationObject);
                            this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotationObject, null, true);
                        }
                        else {
                            this.modifyInCollections(annotationObject, 'opacity');
                        }
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'Shape Thickness':
                        this.pdfViewer.nodePropertyChange(annotationObject, { thickness: actionObject.redoElement.thickness });
                        this.modifyInCollections(annotationObject, 'thickness');
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'Line properties change':
                        this.pdfViewer.nodePropertyChange(annotationObject, {
                            fillColor: actionObject.redoElement.fillColor, strokeColor: actionObject.redoElement.strokeColor,
                            opacity: actionObject.redoElement.opacity, thickness: actionObject.redoElement.thickness,
                            sourceDecoraterShapes: this.getArrowType(actionObject.redoElement.lineHeadStart),
                            taregetDecoraterShapes: this.getArrowType(actionObject.redoElement.lineHeadEnd),
                            borderDashArray: actionObject.redoElement.borderDashArray, borderStyle: actionObject.redoElement.borderStyle
                        });
                        this.updateCollectionForLineProperty(annotationObject);
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'Text Property Added':
                        actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.
                            redoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);
                        this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);
                        break;
                    case 'Comments Property Added':
                        actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.
                            redoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);
                        break;
                    case 'Status Property Added':
                        actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.
                            redoAction(actionObject.annotation, actionObject.action);
                        break;
                    case 'Comments Reply Deleted':
                        actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.
                            redoAction(actionObject.annotation, actionObject.action);
                        break;
                    case 'dynamicText Change': {
                        this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = true;
                        annotationObject.dynamicText = actionObject.redoElement.dynamicText;
                        var annotation = this.pdfViewer.selectedItems.annotations[0];
                        if (annotation) {
                            annotation.dynamicText = actionObject.redoElement.dynamicText;
                            annotation.bounds.height = actionObject.redoElement.bounds.height;
                        }
                        this.pdfViewer.annotationModule.stickyNotesAnnotationModule.
                            redoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);
                        this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotationObject, null, true);
                        this.modifyInCollections(annotationObject, 'dynamicText');
                        if (annotation) {
                            this.pdfViewer.nodePropertyChange(annotation, {});
                        }
                        else {
                            this.pdfViewer.nodePropertyChange(annotationObject, {});
                        }
                        this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = false;
                        this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);
                        this.pdfViewer.select([annotationObject.id]);
                        break;
                    }
                    case 'fontColor':
                        this.pdfViewer.nodePropertyChange(annotationObject, { fontColor: actionObject.redoElement.fontColor });
                        this.modifyInCollections(annotationObject, 'fontColor');
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'fontSize':
                        this.isFreeTextFontsizeChanged = true;
                        this.modifyFontSize(actionObject.redoElement.fontSize, false, annotationObject);
                        break;
                    case 'textAlign':
                        this.pdfViewer.nodePropertyChange(annotationObject, { textAlign: actionObject.redoElement.textAlign });
                        this.modifyInCollections(annotationObject, 'textAlign');
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'textPropertiesChange':
                        this.pdfViewer.nodePropertyChange(annotationObject, { font: actionObject.redoElement.font });
                        this.modifyInCollections(annotationObject, 'textPropertiesChange');
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'Rotate':
                        this.pdfViewer.nodePropertyChange(actionObject.annotation.annotations[0], { bounds: actionObject.redoElement.bounds,
                            rotateAngle: actionObject.redoElement.rotateAngle });
                        this.modifyInCollections(actionObject.annotation.annotations[0], 'bounds');
                        this.pdfViewer.renderDrawing();
                        break;
                    case 'FormDesigner Properties Change':
                        if (actionObject.redoElement && actionObject.undoElement.isMultiline !== actionObject.redoElement.isMultiline) {
                            this.undoRedoMultiline(actionObject.redoElement);
                        }
                        this.updateFormFieldPropertiesChanges(actionObject.redoElement.formFieldAnnotationType, actionObject.redoElement);
                        break;
                    case 'FormField Value Change':
                        if (actionObject.annotation.formFieldAnnotationType) {
                            if (actionObject.annotation.formFieldAnnotationType === 'RadioButton') {
                                this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.undoElement, true);
                                this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.redoElement, false);
                            }
                            else {
                                this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.annotation, actionObject.redoElement);
                            }
                        }
                        else {
                            var spanElement = document.getElementById(actionObject.annotation.id + '_html_element').children[0].children[0];
                            spanElement.className = 'e-pdfviewer-signatureformfields-signature';
                            var formFieldObj = this.pdfViewer.nameTable[actionObject.annotation.id.split('_')[0]];
                            var annotationObj = this.pdfViewer.nameTable[actionObject.annotation.id];
                            formFieldObj.wrapper.children.push(annotationObj.wrapper.children[0]);
                            if (actionObject.annotation.shapeAnnotationType === 'SignatureText') {
                                formFieldObj.wrapper.children.push(annotationObj.wrapper.children[1]);
                            }
                            var key = actionObject.annotation.id.split('_')[0] + '_content';
                            var data = null;
                            if (this.pdfViewer.formDesignerModule) {
                                data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');
                            }
                            if (data) {
                                var formFieldsData = JSON.parse(data);
                                for (var i = 0; i < formFieldsData.length; i++) {
                                    if (formFieldsData[parseInt(i.toString(), 10)].Key === key) {
                                        if (actionObject.annotation.shapeAnnotationType === 'SignatureText') {
                                            formFieldsData[parseInt(i.toString(), 10)].FormField.signatureType = 'Text';
                                            formFieldsData[parseInt(i.toString(), 10)].FormField.value = actionObject.annotation.data;
                                            this.pdfViewerBase.formFieldCollection[parseInt(i.toString(), 10)].
                                                FormField.value = actionObject.annotation.data;
                                            this.pdfViewerBase.formFieldCollection[parseInt(i.toString(), 10)].FormField.signatureType = 'Text';
                                        }
                                        else if (actionObject.annotation.shapeAnnotationType === 'SignatureImage') {
                                            formFieldsData[parseInt(i.toString(), 10)].FormField.signatureType = 'Image';
                                            formFieldsData[parseInt(i.toString(), 10)].FormField.value = actionObject.annotation.data;
                                            this.pdfViewerBase.formFieldCollection[parseInt(i.toString(), 10)].
                                                FormField.value = actionObject.annotation.data;
                                            this.pdfViewerBase.formFieldCollection[parseInt(i.toString(), 10)].FormField.signatureType = 'Image';
                                        }
                                        else {
                                            formFieldsData[parseInt(i.toString(), 10)].FormField.signatureType = 'Path';
                                            this.pdfViewerBase.formFieldCollection[parseInt(i.toString(), 10)].FormField.signatureType = 'Path';
                                            var collectionData = ej2_drawings_1.processPathData(actionObject.annotation.data);
                                            var csData = ej2_drawings_1.splitArrayCollection(collectionData);
                                            formFieldsData[parseInt(i.toString(), 10)].FormField.value = JSON.stringify(csData);
                                            this.pdfViewerBase.formFieldCollection[parseInt(i.toString(), 10)].
                                                FormField.value = JSON.stringify(csData);
                                        }
                                    }
                                }
                                this.pdfViewer.add(actionObject.annotation);
                                var canvass = this.pdfViewerBase.getAnnotationCanvas('_annotationCanvas_', actionObject.pageIndex);
                                this.pdfViewer.renderDrawing(canvass, actionObject.pageIndex);
                                this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');
                            }
                        }
                }
                if (actionObject.redoElement && actionObject.redoElement.modifiedDate !== undefined) {
                    actionObject.annotation.modifiedDate = actionObject.redoElement.modifiedDate;
                }
                this.actionCollection.push(actionObject);
                this.updateToolbar();
                this.isUndoRedoAction = false;
            }
        };
        Annotation.prototype.showOrHideRedactionIcon = function (isDisable) {
            if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.redactionToolbarModule) {
                if (this.pdfViewer.selectedItems.annotations.length === 0) {
                    this.pdfViewer.toolbarModule.redactionToolbarModule.showHideDeleteIcon(isDisable ? isDisable : false);
                }
                if (this.isRedactionAnnotation() || (this.pdfViewer.selectedItems && this.pdfViewer.selectedItems.annotations &&
                    this.pdfViewer.selectedItems.annotations.length > 0 &&
                    this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Redaction')) {
                    this.pdfViewer.toolbarModule.redactionToolbarModule.showHideRedactIcon(true);
                }
                else {
                    this.pdfViewer.toolbarModule.redactionToolbarModule.showHideRedactIcon(false);
                }
            }
        };
        Annotation.prototype.hideAnnotationPropertiesToolbar = function () {
            if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {
                this.pdfViewer.toolbar.annotationToolbarModule.enableAnnotationPropertiesTools(false);
                this.pdfViewer.toolbar.annotationToolbarModule.enableTextMarkupAnnotationPropertiesTools(false);
                this.pdfViewer.toolbar.annotationToolbarModule.enableSignaturePropertiesTools(false);
                this.pdfViewer.toolbar.annotationToolbarModule.enableStampAnnotationPropertiesTools(false);
                this.pdfViewer.toolbar.annotationToolbarModule.enableFreeTextAnnotationPropertiesTools(false);
            }
        };
        Annotation.prototype.undoRedoMultiline = function (element) {
            if (element.isMultiline && element.formFieldAnnotationType === 'Textbox') {
                this.pdfViewer.formDesignerModule.renderMultilineText(element, true);
            }
            else if (element.formFieldAnnotationType === 'Textbox') {
                this.pdfViewer.formDesignerModule.renderTextbox(element, true);
            }
        };
        Annotation.prototype.updateFormFieldValueChange = function (formFieldAnnotationType, annotation, value) {
            var _this = this;
            if (Array.isArray(annotation)) {
                annotation.forEach(function (item) {
                    _this.updateFormFieldValueChange(formFieldAnnotationType, item, value);
                });
                return;
            }
            if (annotation) {
                var formFieldModel = this.pdfViewer.formDesigner.getFormField(annotation.id.split('_')[0]);
                var data = null;
                if (this.pdfViewer.formDesignerModule) {
                    data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');
                }
                if (data) {
                    var formFieldsData = JSON.parse(data);
                    var index = this.pdfViewer.formDesigner.getFormFiledIndex(annotation.id.split('_')[0]);
                    switch (formFieldAnnotationType) {
                        case 'Textbox':
                        case 'PasswordField':
                        case 'RadioButton':
                        case 'DropdownList':
                        case 'ListBox': {
                            var inputElement = null;
                            if (document.getElementById(annotation.id.split('_')[0] + '_content_html_element')) {
                                inputElement = document.getElementById(annotation.id.split('_')[0] + '_content_html_element').firstElementChild.firstElementChild;
                            }
                            if (formFieldAnnotationType === 'Textbox' || formFieldAnnotationType === 'PasswordField') {
                                formFieldModel.value = value;
                                this.pdfViewer.formDesigner.updateValuePropertyChange(formFieldModel, inputElement, true, index, formFieldsData);
                            }
                            else if (formFieldAnnotationType === 'RadioButton') {
                                formFieldModel.isSelected = value;
                                if (inputElement) {
                                    this.pdfViewer.formDesigner.updateIsSelectedPropertyChange(formFieldModel, inputElement.firstElementChild, true, index, formFieldsData);
                                }
                            }
                            else if (formFieldAnnotationType === 'DropdownList' || formFieldAnnotationType === 'ListBox') {
                                formFieldModel.selectedIndex = value;
                                formFieldsData[parseInt(index.toString(), 10)].FormField.selectedIndex = value;
                                this.pdfViewerBase.formFieldCollection[parseInt(index.toString(), 10)].FormField.selectedIndex = value;
                                this.pdfViewer.nameTable[formFieldsData[parseInt(index.toString(), 10)].Key.split('_')[0]].selectedIndex = value;
                                if (formFieldAnnotationType === 'ListBox') {
                                    for (var k = 0; k < inputElement.options.length; k++) {
                                        inputElement.options[parseInt(k.toString(), 10)].selected = value.includes(k) ? true : false;
                                    }
                                }
                                else {
                                    inputElement.selectedIndex = value;
                                }
                            }
                            break;
                        }
                        case 'Checkbox': {
                            var checkboxDivElement = document.getElementById(annotation.id.split('_')[0] + '_content_html_element').firstElementChild.firstElementChild.lastElementChild;
                            formFieldModel.isChecked = value;
                            this.pdfViewer.formDesigner.updateIsCheckedPropertyChange(formFieldModel, checkboxDivElement, true, index, formFieldsData);
                            break;
                        }
                    }
                    this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');
                    if (this.pdfViewer.formDesignerModule) {
                        this.pdfViewer.formDesignerModule.radioButtonState(formFieldModel, value, JSON.parse(data));
                    }
                }
            }
        };
        Annotation.prototype.updateFormFieldPropertiesChanges = function (formFieldAnnotationType, element) {
            switch (formFieldAnnotationType) {
                case 'Textbox':
                case 'PasswordField':
                    this.pdfViewer.formDesigner.updateTextboxFormDesignerProperties(element, true);
                    break;
                case 'Checkbox':
                    this.pdfViewer.formDesigner.updateCheckboxFormDesignerProperties(element, true, true);
                    break;
                case 'RadioButton':
                    this.pdfViewer.formDesigner.updateRadioButtonDesignerProperties(element, true, true);
                    break;
                case 'DropdownList':
                    this.pdfViewer.formDesigner.updateDropdownFormDesignerProperties(element, true);
                    break;
                case 'ListBox':
                    this.pdfViewer.formDesigner.updateListBoxFormDesignerProperties(element, true);
                    break;
                case 'SignatureField':
                case 'InitialField':
                    this.pdfViewer.formDesigner.updateSignatureTextboxProperties(element, true);
            }
        };
        Annotation.prototype.updateCollectionForLineProperty = function (pdfAnnotationBase) {
            this.modifyInCollections(pdfAnnotationBase, 'fill');
            this.modifyInCollections(pdfAnnotationBase, 'stroke');
            this.modifyInCollections(pdfAnnotationBase, 'opacity');
            this.modifyInCollections(pdfAnnotationBase, 'thickness');
            this.modifyInCollections(pdfAnnotationBase, 'dashArray');
            this.modifyInCollections(pdfAnnotationBase, 'startArrow');
            this.modifyInCollections(pdfAnnotationBase, 'endArrow');
        };
        Annotation.prototype.updateToolbar = function (isAnnotationDelete) {
            if (this.pdfViewer.toolbarModule) {
                this.pdfViewer.toolbarModule.updateUndoRedoButtons();
            }
            if (this.actionCollection && this.actionCollection.length === 0) {
                this.pdfViewerBase.updateDocumentEditedProperty(false);
            }
            else {
                this.pdfViewerBase.updateDocumentEditedProperty(true);
            }
            if (isAnnotationDelete) {
                this.pdfViewerBase.updateDocumentEditedProperty(true);
            }
        };
        Annotation.prototype.createNote = function () {
            this.popupNote = ej2_base_1.createElement('div', { id: this.pdfViewer.element.id + '_annotation_note', className: 'e-pv-annotation-note', styles: 'display:none' });
            this.popupNoteAuthor = ej2_base_1.createElement('div', { id: this.pdfViewer.element.id + '_annotation_note_author', className: 'e-pv-annotation-note-author' });
            this.popupNote.appendChild(this.popupNoteAuthor);
            this.popupNoteContent = ej2_base_1.createElement('div', { id: this.pdfViewer.element.id + '_annotation_note_content', className: 'e-pv-annotation-note-content' });
            this.popupNote.appendChild(this.popupNoteContent);
            if (this.pdfViewerBase.mainContainer) {
                this.pdfViewerBase.mainContainer.appendChild(this.popupNote);
            }
        };
        Annotation.prototype.showPopupNote = function (event, color, author, note, type) {
            var mainContainerPosition = this.pdfViewerBase.mainContainer.getBoundingClientRect();
            var popupNoteClientRect = this.popupNote.getBoundingClientRect();
            if (author) {
                this.popupNoteAuthor.textContent = author;
            }
            this.popupNoteContent.textContent = note;
            if (type === 'Highlight') {
                this.popupNote.style.backgroundColor = 'rgb(237, 232, 177)';
            }
            else if (type === 'Underline') {
                this.popupNote.style.backgroundColor = 'rgb(187, 241, 191)';
            }
            else if (type === 'Strikethrough') {
                this.popupNote.style.backgroundColor = 'rgb(242, 188, 207)';
            }
            else if (type === 'Squiggly') {
                this.popupNote.style.backgroundColor = 'rgb(242, 188, 207)';
            }
            this.popupNote.style.display = 'block';
            var topPosition = (event.pageY - mainContainerPosition.top + 5);
            var leftPosition = (event.pageX - mainContainerPosition.left + 5);
            if (leftPosition + popupNoteClientRect.width > mainContainerPosition.width) {
                leftPosition = leftPosition - popupNoteClientRect.width;
            }
            if (topPosition + popupNoteClientRect.height > mainContainerPosition.height) {
                topPosition = topPosition - popupNoteClientRect.height;
            }
            this.popupNote.style.top = topPosition + 'px';
            this.popupNote.style.left = leftPosition + 'px';
        };
        Annotation.prototype.hidePopupNote = function () {
            if (this.popupNote) {
                this.popupNote.style.display = 'none';
            }
        };
        Annotation.prototype.createTextMarkupPopup = function () {
            var _this = this;
            var elementId = this.pdfViewer.element.id;
            this.popupElement = ej2_base_1.createElement('div', { id: elementId + '_popup_annotation_note', className: 'e-pv-annotation-popup-menu', styles: 'display:none' });
            var headerElement = ej2_base_1.createElement('div', { id: elementId + '_popup_header', className: 'e-pv-annotation-popup-header' });
            this.authorPopupElement = ej2_base_1.createElement('div', { id: elementId + '_popup_author', className: 'e-pv-annotation-popup-author' });
            headerElement.appendChild(this.authorPopupElement);
            var closeBtn = ej2_base_1.createElement('span', { id: elementId + '_popup_close', className: 'e-pv-annotation-popup-close e-pv-icon' });
            headerElement.appendChild(closeBtn);
            this.popupElement.appendChild(headerElement);
            this.modifiedDateElement = ej2_base_1.createElement('div', { id: elementId + '_popup_modified_time', className: 'e-pv-annotation-modified-time' });
            this.popupElement.appendChild(this.modifiedDateElement);
            var contentContainer = ej2_base_1.createElement('div', { id: elementId + '_popup_content_container', className: 'e-pv-annotation-popup-note-container' });
            this.noteContentElement = ej2_base_1.createElement('div', { id: elementId + '_popup_content', className: 'e-pv-annotation-popup-content' });
            this.noteContentElement.contentEditable = 'true';
            contentContainer.appendChild(this.noteContentElement);
            this.popupElement.appendChild(contentContainer);
            this.pdfViewerBase.viewerContainer.appendChild(this.popupElement);
            closeBtn.addEventListener('click', this.saveClosePopupMenu.bind(this));
            closeBtn.addEventListener('touchend', this.saveClosePopupMenu.bind(this));
            this.popupElement.addEventListener('mousedown', this.onPopupElementMoveStart.bind(this));
            this.popupElement.addEventListener('mousemove', this.onPopupElementMove.bind(this));
            window.addEventListener('mouseup', this.onPopupElementMoveEnd.bind(this));
            this.popupElement.addEventListener('touchstart', this.onPopupElementMoveStart.bind(this));
            this.popupElement.addEventListener('touchmove', this.onPopupElementMove.bind(this));
            window.addEventListener('touchend', this.onPopupElementMoveEnd.bind(this));
            this.noteContentElement.addEventListener('mousedown', function () {
                _this.noteContentElement.focus();
            });
        };
        Annotation.prototype.onPopupElementMoveStart = function (event) {
            if (event.type === 'touchstart') {
                event = event.changedTouches[0];
            }
            if ((event.target.id !== (this.noteContentElement.id) || !(event.target.contains(this.noteContentElement.childNodes[0])))) {
                this.isPopupMenuMoved = true;
                var popupElementClientRect = this.popupElement.getBoundingClientRect();
                this.clientX = event.clientX - popupElementClientRect.left;
                this.clientY = (event.clientY - popupElementClientRect.top) +
                    (this.pdfViewerBase.pageSize[this.currentAnnotPageNumber].top * this.pdfViewerBase.getZoomFactor());
            }
        };
        Annotation.prototype.onPopupElementMove = function (event) {
            if (event.type === 'touchmove') {
                event = event.changedTouches[0];
            }
            if (this.isPopupMenuMoved && (event.target.id !== (this.noteContentElement.id) ||
                !(event.target.contains(this.noteContentElement.childNodes[0])))) {
                var left = (event.clientX - this.clientX) + parseFloat(this.popupElement.style.left);
                var top_2 = ((event.clientY - this.clientY) + parseFloat(this.popupElement.style.top));
                this.clientX = event.clientX;
                this.clientY = event.clientY;
                var clientPosition = this.popupElement.getBoundingClientRect();
                var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + this.currentAnnotPageNumber);
                if (left > parseFloat(pageDiv.style.left) && (left + clientPosition.width) <
                    (parseFloat(pageDiv.style.left) + parseFloat(pageDiv.style.width))) {
                    this.popupElement.style.left = (left) + 'px';
                }
                else {
                    this.popupElement.style.left = parseFloat(this.popupElement.style.left) + 'px';
                }
                if (top_2 > parseFloat(pageDiv.style.top) && (top_2 + clientPosition.height) <
                    (parseFloat(pageDiv.style.top) + parseFloat(pageDiv.style.height))) {
                    this.popupElement.style.top = (top_2) + 'px';
                }
                else {
                    this.popupElement.style.top = parseFloat(this.popupElement.style.top) + 'px';
                }
            }
        };
        Annotation.prototype.onPopupElementMoveEnd = function () {
            this.isPopupMenuMoved = false;
        };
        Annotation.prototype.saveClosePopupMenu = function () {
            if (this.textMarkupAnnotationModule) {
                this.textMarkupAnnotationModule.saveNoteContent(this.currentAnnotPageNumber, this.noteContentElement.innerText);
            }
            this.closePopupMenu();
        };
        Annotation.prototype.closePopupMenu = function () {
            if (this.popupElement) {
                this.popupElement.parentElement.removeChild(this.popupElement);
                this.popupElement = null;
                this.isPopupNoteVisible = false;
            }
        };
        Annotation.prototype.showAnnotationPopup = function (event) {
            if (this.textMarkupAnnotationModule) {
                this.currentAnnotPageNumber = this.getEventPageNumber(event);
                if (this.textMarkupAnnotationModule && (event.target !== (this.noteContentElement) ||
                    (event.target.contains(this.noteContentElement.childNodes[0])))) {
                    this.hidePopupNote();
                    if (!this.popupElement) {
                        this.createTextMarkupPopup();
                        this.popupElement.style.display = 'block';
                        this.authorPopupElement.textContent = this.textMarkupAnnotationModule.currentTextMarkupAnnotation.author;
                        this.modifiedDateElement.textContent = this.getProperDate(this.textMarkupAnnotationModule.currentTextMarkupAnnotation.
                            modifiedDate);
                        this.noteContentElement.textContent = this.textMarkupAnnotationModule.currentTextMarkupAnnotation.note;
                        var clientPosition = this.popupElement.getBoundingClientRect();
                        var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + this.currentAnnotPageNumber);
                        var canvasPosition = pageDiv.getBoundingClientRect();
                        var topPosition = ((event.clientY) - canvasPosition.top) + parseFloat(pageDiv.style.top);
                        var leftPosition = (event.clientX);
                        if ((leftPosition + clientPosition.width) > (parseFloat(pageDiv.style.left) + parseFloat(pageDiv.style.width))) {
                            this.popupElement.style.left = (leftPosition - clientPosition.width) + 'px';
                        }
                        else {
                            this.popupElement.style.left = leftPosition + 'px';
                        }
                        if ((topPosition + clientPosition.height) > (parseFloat(pageDiv.style.top) + parseFloat(pageDiv.style.height))) {
                            this.popupElement.style.top = (topPosition - clientPosition.height) + 'px';
                        }
                        else {
                            this.popupElement.style.top = topPosition + 'px';
                        }
                        this.isPopupNoteVisible = true;
                    }
                }
            }
        };
        Annotation.prototype.modifyOpacity = function (args, isOpacity) {
            var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];
            var clonedObject = drawing_util_1.cloneObject(currentAnnotation);
            var redoClonedObject = drawing_util_1.cloneObject(currentAnnotation);
            var opacityValue = 1;
            if (isOpacity) {
                opacityValue = args / 100;
            }
            else {
                opacityValue = args.value / 100;
            }
            if (currentAnnotation.opacity !== opacityValue) {
                redoClonedObject.opacity = opacityValue;
                this.pdfViewer.nodePropertyChange(currentAnnotation, { opacity: opacityValue });
                if (currentAnnotation.shapeAnnotationType === 'StickyNotes') {
                    this.stickyNotesAnnotationModule.updateOpacityValue(currentAnnotation);
                }
                else {
                    this.modifyInCollections(currentAnnotation, 'opacity');
                }
                if (currentAnnotation.shapeAnnotationType === 'HandWrittenSignature' || currentAnnotation.shapeAnnotationType === 'SignatureImage' || currentAnnotation.shapeAnnotationType === 'SignatureText') {
                    this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, false, true, false, clonedObject.opacity, redoClonedObject.opacity);
                }
                else {
                    this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);
                }
                this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Opacity', '', clonedObject, redoClonedObject);
                this.pdfViewer.renderDrawing();
            }
        };
        Annotation.prototype.modifyFontColor = function (currentColor) {
            var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];
            var clonedObject = drawing_util_1.cloneObject(currentAnnotation);
            var redoClonedObject = drawing_util_1.cloneObject(currentAnnotation);
            redoClonedObject.fontColor = currentColor;
            this.pdfViewer.nodePropertyChange(currentAnnotation, { fontColor: currentColor });
            this.modifyInCollections(currentAnnotation, 'fontColor');
            this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);
            this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'fontColor', '', clonedObject, redoClonedObject);
            this.pdfViewer.renderDrawing();
        };
        Annotation.prototype.modifyFontFamily = function (currentValue) {
            var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];
            var clonedObject = drawing_util_1.cloneObject(currentAnnotation);
            var redoClonedObject = drawing_util_1.cloneObject(currentAnnotation);
            redoClonedObject.fontFamily = currentValue;
            if (this.pdfViewer.freeTextSettings.enableAutoFit) {
                this.updateFontFamilyRenderSize(currentAnnotation, currentValue);
            }
            else {
                this.pdfViewer.nodePropertyChange(currentAnnotation, { fontFamily: currentValue });
            }
            this.modifyInCollections(currentAnnotation, 'fontFamily');
            this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);
            this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'fontFamily', '', clonedObject, redoClonedObject);
            this.pdfViewer.renderDrawing();
        };
        Annotation.prototype.modifyFontSize = function (currentValue, isInteracted, annotation) {
            var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];
            if (ej2_base_1.isNullOrUndefined(currentAnnotation) && !ej2_base_1.isNullOrUndefined(annotation)) {
                currentAnnotation = annotation;
            }
            var clonedObject = drawing_util_1.cloneObject(currentAnnotation);
            var redoClonedObject = drawing_util_1.cloneObject(currentAnnotation);
            redoClonedObject.fontSize = currentValue;
            var freeTextAnnotation = this.freeTextAnnotationModule;
            var x = currentAnnotation.bounds.x;
            var y = currentAnnotation.bounds.y;
            currentAnnotation.fontSize = currentValue;
            var previousText = currentAnnotation.dynamicText;
            if (freeTextAnnotation && !freeTextAnnotation.isNewFreeTextAnnot && currentAnnotation.dynamicText !== '' && !this.isFreeTextFontsizeChanged) {
                freeTextAnnotation.addInuptElemet({ x: x, y: y }, currentAnnotation);
                if (currentAnnotation) {
                    var zoomFactor = this.pdfViewerBase.getZoomFactor();
                    if (currentAnnotation.previousFontSize !== currentValue) {
                        var previousHeight = freeTextAnnotation.inputBoxElement.getBoundingClientRect().height;
                        if (!freeTextAnnotation.inputBoxElement.readOnly) {
                            freeTextAnnotation.inputBoxElement.style.height = freeTextAnnotation.defaultHeight + 'px';
                        }
                        var currentHeight = freeTextAnnotation.inputBoxElement.getBoundingClientRect().height;
                        var difference = currentHeight - previousHeight;
                        var fontSize = parseFloat(freeTextAnnotation.inputBoxElement.style.fontSize);
                        if (((freeTextAnnotation.defaultHeight * zoomFactor) < freeTextAnnotation.inputBoxElement.scrollHeight) &&
                            (Math.ceil(freeTextAnnotation.inputBoxElement.clientHeight) < freeTextAnnotation.inputBoxElement.scrollHeight)) {
                            freeTextAnnotation.inputBoxElement.style.height = freeTextAnnotation.inputBoxElement.readOnly ? freeTextAnnotation.inputBoxElement.style.height : freeTextAnnotation.inputBoxElement.scrollHeight + (fontSize / 2) + 'px';
                            if (parseFloat(freeTextAnnotation.inputBoxElement.style.borderWidth) >= 1) {
                                freeTextAnnotation.inputBoxElement.style.height = parseFloat(freeTextAnnotation.inputBoxElement.style.height) + (parseFloat(freeTextAnnotation.inputBoxElement.style.borderWidth) * 2) + 'px';
                            }
                        }
                    }
                    else {
                        freeTextAnnotation.inputBoxElement.style.height = currentAnnotation.bounds.height + 'px';
                    }
                    var inputEleHeight = parseFloat(freeTextAnnotation.inputBoxElement.style.height);
                    var inputEleWidth = parseFloat(freeTextAnnotation.inputBoxElement.style.width);
                    inputEleWidth = ((inputEleWidth) / zoomFactor);
                    inputEleHeight = ((inputEleHeight) / zoomFactor);
                    var heightDiff = (inputEleHeight - currentAnnotation.bounds.height);
                    var y_1 = undefined;
                    if (heightDiff > 0) {
                        y_1 = currentAnnotation.wrapper.offsetY + (heightDiff / 2);
                        y_1 = y_1 > 0 ? y_1 : undefined;
                    }
                    else {
                        heightDiff = Math.abs(heightDiff);
                        y_1 = currentAnnotation.wrapper.offsetY - (heightDiff / 2);
                        y_1 = y_1 > 0 ? y_1 : undefined;
                    }
                    var widthDiff = (inputEleWidth - currentAnnotation.bounds.width);
                    var x_1 = undefined;
                    if (widthDiff > 0) {
                        x_1 = currentAnnotation.wrapper.offsetX + (widthDiff / 2);
                        x_1 = x_1 > 0 ? x_1 : undefined;
                    }
                    else {
                        widthDiff = Math.abs(widthDiff);
                        x_1 = currentAnnotation.wrapper.offsetX - (widthDiff / 2);
                    }
                    currentAnnotation.bounds.width = inputEleWidth;
                    currentAnnotation.bounds.height = inputEleHeight;
                    currentAnnotation.dynamicText = previousText;
                    this.pdfViewer.nodePropertyChange(currentAnnotation, { fontSize: currentValue, bounds: { width: currentAnnotation.bounds.width, height: currentAnnotation.bounds.height, y: y_1, x: x_1 } });
                    this.pdfViewer.renderSelector(currentAnnotation.pageIndex, this.pdfViewer.annotationSelectorSettings);
                    currentAnnotation.previousFontSize = currentValue;
                }
                this.modifyInCollections(currentAnnotation, 'fontSize');
                this.modifyInCollections(currentAnnotation, 'bounds');
                this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);
                if (isInteracted) {
                    this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'fontSize', '', clonedObject, redoClonedObject);
                }
                freeTextAnnotation.inputBoxElement.blur();
            }
            var canvas = this.pdfViewerBase.getAnnotationCanvas('_annotationCanvas_', currentAnnotation.pageIndex);
            this.pdfViewer.renderDrawing(canvas, currentAnnotation.pageIndex);
        };
        Annotation.prototype.handleFontSizeUpdate = function (fontSize) {
            if (this.pdfViewer.selectedItems.annotations.length === 1 && fontSize) {
                if (this.isUndoRedoAction) {
                    this.modifyFontSize(fontSize, false);
                }
                else {
                    this.modifyFontSize(fontSize, true);
                }
            }
            else if (this.freeTextAnnotationModule) {
                this.pdfViewer.freeTextSettings.fontSize = fontSize;
                this.freeTextAnnotationModule.updateTextProperties();
            }
        };
        Annotation.prototype.modifyTextAlignment = function (currentValue) {
            var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];
            this.pdfViewer.nodePropertyChange(currentAnnotation, { textAlign: currentValue });
            this.modifyInCollections(currentAnnotation, 'textAlign');
            this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);
            this.pdfViewer.renderDrawing();
        };
        Annotation.prototype.modifyTextProperties = function (fontInfo, action) {
            var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];
            var clonedObject = drawing_util_1.cloneObject(currentAnnotation);
            var redoClonedObject = drawing_util_1.cloneObject(currentAnnotation);
            if (action === 'bold') {
                redoClonedObject.font.isBold = fontInfo.isBold;
            }
            else if (action === 'italic') {
                redoClonedObject.font.isItalic = fontInfo.isItalic;
            }
            else if (action === 'underline') {
                redoClonedObject.font.isUnderline = fontInfo.isUnderline;
                if (redoClonedObject.font.isUnderline && redoClonedObject.font.isStrikeout) {
                    redoClonedObject.font.isStrikeout = false;
                }
            }
            else if (action === 'strikeout') {
                redoClonedObject.font.isStrikeout = fontInfo.isStrikeout;
                if (redoClonedObject.font.isUnderline && redoClonedObject.font.isStrikeout) {
                    redoClonedObject.font.isUnderline = false;
                }
            }
            this.pdfViewer.nodePropertyChange(currentAnnotation, { font: fontInfo });
            this.modifyInCollections(currentAnnotation, 'textPropertiesChange');
            this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);
            this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'textPropertiesChange', '', clonedObject, redoClonedObject);
            this.pdfViewer.renderDrawing();
        };
        Annotation.prototype.modifyThickness = function (thicknessValue) {
            var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];
            if (currentAnnotation.thickness !== thicknessValue) {
                var clonedObject = drawing_util_1.cloneObject(currentAnnotation);
                var redoClonedObject = drawing_util_1.cloneObject(currentAnnotation);
                redoClonedObject.thickness = thicknessValue;
                this.pdfViewer.nodePropertyChange(currentAnnotation, { thickness: thicknessValue });
                this.modifyInCollections(currentAnnotation, 'thickness');
                if (currentAnnotation.shapeAnnotationType === 'HandWrittenSignature' || currentAnnotation.shapeAnnotationType === 'SignatureText' || currentAnnotation.shapeAnnotationType === 'SignatureImage') {
                    this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, false, false, true, clonedObject.thickness, redoClonedObject.thickness);
                }
                else {
                    this.triggerAnnotationPropChange(currentAnnotation, false, false, true, false);
                }
                this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Thickness', '', clonedObject, redoClonedObject);
                this.pdfViewer.renderDrawing();
            }
        };
        Annotation.prototype.modifyStrokeColor = function (color) {
            var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];
            var clonedObject = drawing_util_1.cloneObject(currentAnnotation);
            var redoClonedObject = drawing_util_1.cloneObject(currentAnnotation);
            redoClonedObject.strokeColor = color;
            this.pdfViewer.nodePropertyChange(currentAnnotation, { strokeColor: color });
            this.modifyInCollections(currentAnnotation, 'stroke');
            if (currentAnnotation.shapeAnnotationType === 'HandWrittenSignature' || currentAnnotation.shapeAnnotationType === 'SignatureText' || currentAnnotation.shapeAnnotationType === 'SignatureImage') {
                this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, true, false, false, clonedObject.strokeColor, redoClonedObject.strokeColor);
            }
            else {
                this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);
            }
            this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Stroke', '', clonedObject, redoClonedObject);
            this.pdfViewer.renderDrawing();
        };
        Annotation.prototype.modifyFillColor = function (color) {
            var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];
            var clonedObject = drawing_util_1.cloneObject(currentAnnotation);
            var redoClonedObject = drawing_util_1.cloneObject(currentAnnotation);
            redoClonedObject.fillColor = color;
            this.pdfViewer.nodePropertyChange(this.pdfViewer.selectedItems.annotations[0], { fillColor: color });
            this.modifyInCollections(currentAnnotation, 'fill');
            this.triggerAnnotationPropChange(currentAnnotation, true, false, false, false);
            this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Fill', '', clonedObject, redoClonedObject);
            this.pdfViewer.renderDrawing();
        };
        Annotation.prototype.modifyDynamicTextValue = function (dynamicText, annotName, previousValue) {
            var currentAnnotation = null;
            currentAnnotation = this.pdfViewer.annotations.filter(function (s) { return s.annotName === annotName; })[0];
            if (currentAnnotation) {
                var clonedObject = drawing_util_1.cloneObject(currentAnnotation);
                var redoClonedObject = drawing_util_1.cloneObject(currentAnnotation);
                currentAnnotation.dynamicText = dynamicText;
                redoClonedObject.dynamicText = dynamicText;
                if (clonedObject.dynamicText === '') {
                    clonedObject.dynamicText = this.freeTextAnnotationModule.previousText;
                }
                this.pdfViewer.nodePropertyChange(currentAnnotation, { dynamicText: dynamicText });
                this.pdfViewer.renderSelector(currentAnnotation.pageIndex, currentAnnotation.annotationSelectorSettings);
                if (clonedObject.dynamicText !== redoClonedObject.dynamicText) {
                    this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'dynamicText Change', '', clonedObject, redoClonedObject);
                    this.modifyInCollections(currentAnnotation, 'dynamicText');
                }
                var previousText = previousValue ? previousValue : this.freeTextAnnotationModule ?
                    this.freeTextAnnotationModule.previousText : 'Type Here';
                if (previousText !== currentAnnotation.dynamicText) {
                    this.triggerAnnotationPropChange(currentAnnotation, false, false, false, false, false, false, false, true, previousText, currentAnnotation.dynamicText);
                }
                this.pdfViewer.renderDrawing();
            }
        };
        Annotation.prototype.modifyInCollections = function (annotationBase, property) {
            var returnObj;
            if (annotationBase.measureType === '' || ej2_base_1.isNullOrUndefined(annotationBase.measureType)) {
                if (annotationBase.shapeAnnotationType === 'FreeText') {
                    returnObj = this.freeTextAnnotationModule.modifyInCollection(property, annotationBase.pageIndex, annotationBase);
                }
                else if (annotationBase.shapeAnnotationType === 'HandWrittenSignature' || annotationBase.shapeAnnotationType === 'SignatureText' || annotationBase.shapeAnnotationType === 'SignatureImage') {
                    returnObj = this.pdfViewerBase.signatureModule.
                        modifySignatureCollection(property, annotationBase.pageIndex, annotationBase);
                }
                else if (annotationBase.shapeAnnotationType === 'Stamp' || annotationBase.shapeAnnotationType === 'Image') {
                    returnObj = this.stampAnnotationModule.modifyInCollection(property, annotationBase.pageIndex, annotationBase, null);
                }
                else if (annotationBase.shapeAnnotationType === 'Ink') {
                    returnObj = this.inkAnnotationModule.modifySignatureInkCollection(property, annotationBase.pageIndex, annotationBase);
                }
                else if (annotationBase.shapeAnnotationType === 'Redaction') {
                    returnObj = this.redactionAnnotationModule.modifyInCollection(property, annotationBase.pageIndex, annotationBase);
                }
                else {
                    returnObj = this.shapeAnnotationModule.modifyInCollection(property, annotationBase.pageIndex, annotationBase, null);
                }
            }
            else if (annotationBase.measureType === 'Distance' || annotationBase.measureType === 'Perimeter' ||
                annotationBase.measureType === 'Radius' || annotationBase.measureType === 'Area' || annotationBase.measureType === 'Volume') {
                returnObj = this.measureAnnotationModule.modifyInCollection(property, annotationBase.pageIndex, annotationBase);
            }
            if (this.isUndoRedoAction) {
                this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotationBase, null, true);
                if (this.isUndoAction) {
                    annotationBase.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();
                }
            }
            else {
                if (property !== 'bounds') {
                    this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotationBase);
                }
            }
            if (this.isUndoRedoAction && property === 'delete') {
                this.updateAnnotationCollection(annotationBase);
            }
            return returnObj;
        };
        Annotation.prototype.createPropertiesWindow = function () {
            var _this = this;
            if (!ej2_base_1.isBlazor()) {
                var elementID = this.pdfViewer.element.id;
                var dialogDiv = ej2_base_1.createElement('div', { id: elementID + '_properties_window', className: 'e-pv-properties-window' });
                var appearanceTab = this.createAppearanceTab();
                this.pdfViewerBase.pageContainer.appendChild(dialogDiv);
                this.propertiesDialog = new ej2_popups_1.Dialog({
                    showCloseIcon: true, closeOnEscape: false, isModal: true, header: this.pdfViewer.localeObj.getConstant('Line Properties'),
                    target: this.pdfViewer.element, content: appearanceTab, close: function () {
                        _this.destroyPropertiesWindow();
                    }
                });
                if (!ej2_base_1.Browser.isDevice || this.pdfViewer.enableDesktopMode) {
                    this.propertiesDialog.buttons = [
                        { buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true }, click: this.onOkClicked.bind(this) },
                        { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.onCancelClicked.bind(this) }
                    ];
                }
                else {
                    this.propertiesDialog.buttons = [
                        { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.onCancelClicked.bind(this) },
                        { buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true }, click: this.onOkClicked.bind(this) }
                    ];
                }
                if (this.pdfViewer.enableRtl) {
                    this.propertiesDialog.enableRtl = true;
                }
                this.propertiesDialog.appendTo(dialogDiv);
                if (this.pdfViewer.selectedItems.annotations[0] && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'LineWidthArrowHead' ||
                    this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance')) {
                    var fillColor = document.getElementById(this.pdfViewer.element.id + '_properties_fill_color');
                    var enableFillColor = this.isLineAnnotationFillColorEnabled();
                    fillColor.disabled = !enableFillColor;
                }
                this.startArrowDropDown.content = this.
                    createContent(this.getArrowString(this.pdfViewer.selectedItems.annotations[0].sourceDecoraterShapes)).outerHTML;
                this.endArrowDropDown.content = this.
                    createContent(this.getArrowString(this.pdfViewer.selectedItems.annotations[0].taregetDecoraterShapes)).outerHTML;
                this.thicknessBox.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeWidth;
                this.fillColorPicker.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill;
                this.refreshColorPicker(this.fillColorPicker);
                this.strokeColorPicker.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor;
                this.refreshColorPicker(this.strokeColorPicker);
                this.updateColorInIcon(this.fillDropDown.element, this.fillColorPicker.value);
                this.updateColorInIcon(this.strokeDropDown.element, this.strokeColorPicker.value);
                this.opacitySlider.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.opacity * 100;
                this.updateOpacityIndicator();
                if (parseInt(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray, 10) >= 3) {
                    this.lineStyleDropDown.content = this.createDropDownContent('dashed').outerHTML;
                }
                else if (this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray === '2') {
                    this.lineStyleDropDown.content = this.createDropDownContent('dotted').outerHTML;
                }
                else if (this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray === '0') {
                    this.lineStyleDropDown.content = this.createDropDownContent('solid').outerHTML;
                }
                this.selectedLineStyle = this.pdfViewer.selectedItems.annotations[0].borderStyle;
                this.selectedLineDashArray = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray;
                if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance') {
                    this.leaderLengthBox.value = this.pdfViewer.selectedItems.annotations[0].leaderHeight;
                }
            }
            else {
                var opacityValue = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.opacity * 100;
                var lineStartElement = this.getArrowString(this.pdfViewer.selectedItems.annotations[0].sourceDecoraterShapes);
                var lineEndElement = this.getArrowString(this.pdfViewer.selectedItems.annotations[0].taregetDecoraterShapes);
                var lineStyleElement = void 0;
                if (parseInt(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray, 10) >= 3) {
                    lineStyleElement = 'Dashed';
                }
                else if (this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray === '2') {
                    lineStyleElement = 'Dotted';
                }
                else if (this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray === '0') {
                    lineStyleElement = 'Solid';
                }
                this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenPropertiesDialog', opacityValue, lineStartElement, lineEndElement, lineStyleElement);
            }
        };
        Annotation.prototype.destroyPropertiesWindow = function () {
            if (this.strokeColorPicker) {
                this.strokeColorPicker.destroy();
                this.strokeColorPicker = null;
            }
            if (this.fillColorPicker) {
                this.fillColorPicker.destroy();
                this.fillColorPicker = null;
            }
            if (this.endArrowDropDown) {
                this.endArrowDropDown.destroy();
                this.endArrowDropDown = null;
            }
            if (this.startArrowDropDown) {
                this.startArrowDropDown.destroy();
                this.startArrowDropDown = null;
            }
            if (this.opacitySlider) {
                this.opacitySlider.destroy();
                this.opacitySlider = null;
            }
            if (this.thicknessBox) {
                this.thicknessBox.destroy();
                this.thicknessBox = null;
            }
            if (this.lineStyleDropDown) {
                this.lineStyleDropDown.destroy();
                this.lineStyleDropDown = null;
            }
            if (this.leaderLengthBox) {
                this.leaderLengthBox.destroy();
                this.leaderLengthBox = null;
            }
            if (this.propertiesDialog) {
                this.propertiesDialog.destroy();
                this.propertiesDialog = null;
            }
            var dialogElement = this.pdfViewerBase.getElement('_properties_window');
            if (dialogElement) {
                dialogElement.parentElement.removeChild(dialogElement);
            }
        };
        Annotation.prototype.refreshColorPicker = function (colorPick) {
            colorPick.setProperties({ 'value': colorPick.value }, true);
            colorPick.refresh();
        };
        Annotation.prototype.createAppearanceTab = function () {
            var _this = this;
            var elementID = this.pdfViewer.element.id;
            var items = [{ text: this.pdfViewer.localeObj.getConstant('None') }, { text: this.pdfViewer.localeObj.getConstant('Open Arrow') }, { text: this.pdfViewer.localeObj.getConstant('Closed Arrow') },
                { text: this.pdfViewer.localeObj.getConstant('Round Arrow') }, { text: this.pdfViewer.localeObj.getConstant('Square Arrow') }, { text: this.pdfViewer.localeObj.getConstant('Diamond Arrow') }];
            var appearanceDiv = ej2_base_1.createElement('div', { id: elementID + '_properties_appearance' });
            var lineStyleContainer = ej2_base_1.createElement('div', { className: 'e-pv-properties-line-style-prop' });
            appearanceDiv.appendChild(lineStyleContainer);
            var lineHeadStartElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Start Arrow'), lineStyleContainer, 'text', 'button', true, 'e-pv-properties-line-start', elementID + '_properties_line_start');
            this.startArrowDropDown = new ej2_splitbuttons_1.DropDownButton({ items: items, cssClass: 'e-pv-properties-line-start', select: this.onStartArrowHeadStyleSelect.bind(this) }, lineHeadStartElement);
            var lineHeadEndElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('End Arrow'), lineStyleContainer, 'text', 'button', true, 'e-pv-properties-line-end', elementID + '_properties_line_end');
            var borderStyleContainer = ej2_base_1.createElement('div', { className: 'e-pv-properties-border-style' });
            appearanceDiv.appendChild(borderStyleContainer);
            this.endArrowDropDown = new ej2_splitbuttons_1.DropDownButton({ items: items, cssClass: 'e-pv-properties-line-end', select: this.onEndArrowHeadStyleSelect.bind(this) }, lineHeadEndElement);
            var lineStyleElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Line Style'), borderStyleContainer, 'text', 'button', true, 'e-pv-properties-line-style', elementID + '_properties_line_style');
            var dropDownTarget = this.createStyleList();
            this.lineStyleDropDown = new ej2_splitbuttons_1.DropDownButton({ cssClass: 'e-pv-properties-line-style', target: dropDownTarget }, lineStyleElement);
            var thicknessElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Line Thickness'), borderStyleContainer, 'text', 'input', true, 'e-pv-properties-line-thickness', elementID + '_properties_thickness');
            this.thicknessBox = new ej2_inputs_1.NumericTextBox({ value: 0, format: '## pt', cssClass: 'e-pv-properties-line-thickness', min: 0, max: 12 }, thicknessElement);
            var colorStyleContainer = ej2_base_1.createElement('div', { className: 'e-pv-properties-color-style' });
            appearanceDiv.appendChild(colorStyleContainer);
            var fillColorElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Fill Color'), colorStyleContainer, 'color', 'button', true, 'e-pv-properties-line-fill-color', elementID + '_properties_fill_color');
            this.fillColorPicker = this.createColorPicker(elementID + '_properties_fill_color', true);
            this.fillColorPicker.change = function (args) {
                var currentColor = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;
                _this.fillDropDown.toggle();
                _this.updateColorInIcon(_this.fillDropDown.element, currentColor);
            };
            this.fillDropDown = this.createDropDownButton(fillColorElement, 'e-pv-properties-fill-color-icon', this.fillColorPicker.element.parentElement);
            this.fillDropDown.beforeOpen = this.onFillDropDownBeforeOpen.bind(this);
            this.fillDropDown.open = function () {
                _this.fillColorPicker.refresh();
            };
            var strokeColorElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Line Color'), colorStyleContainer, 'color', 'button', true, 'e-pv-properties-line-stroke-color', elementID + '_properties_stroke_color');
            this.strokeColorPicker = this.createColorPicker(elementID + '_properties_stroke_color', false);
            this.strokeColorPicker.change = function (args) {
                var currentColor = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;
                _this.strokeDropDown.toggle();
                _this.updateColorInIcon(_this.strokeDropDown.element, currentColor);
            };
            this.strokeDropDown = this.createDropDownButton(strokeColorElement, 'e-pv-properties-stroke-color-icon', this.strokeColorPicker.element.parentElement);
            this.strokeDropDown.beforeOpen = this.onStrokeDropDownBeforeOpen.bind(this);
            this.strokeDropDown.open = function () {
                _this.strokeColorPicker.refresh();
            };
            var opacityContainer = ej2_base_1.createElement('div', { className: 'e-pv-properties-opacity-style' });
            appearanceDiv.appendChild(opacityContainer);
            var opacityElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Opacity'), opacityContainer, '', 'div', true, 'e-pv-properties-line-opacity', elementID + '_properties_opacity');
            this.opacitySlider = new ej2_inputs_1.Slider({
                type: 'MinRange', max: 100, min: 0, cssClass: 'e-pv-properties-line-opacity', change: function () {
                    _this.updateOpacityIndicator();
                }
            }, opacityElement);
            if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance') {
                var lineLengthElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Leader Length'), opacityContainer, 'text', 'input', true, 'e-pv-properties-line-leader-length', elementID + '_properties_leader_length');
                this.leaderLengthBox = new ej2_inputs_1.NumericTextBox({ value: 0, format: '## pt', cssClass: 'e-pv-properties-line-leader-length', min: 0, max: 100 }, lineLengthElement);
            }
            return appearanceDiv;
        };
        Annotation.prototype.createContent = function (text) {
            var divElement = ej2_base_1.createElement('div', { className: 'e-pv-properties-line-style-content' });
            divElement.textContent = text;
            return divElement;
        };
        Annotation.prototype.onStrokeDropDownBeforeOpen = function () {
            if (this.pdfViewer.selectedItems.annotations.length === 1) {
                this.strokeColorPicker.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor;
            }
            this.strokeColorPicker.refresh();
        };
        Annotation.prototype.onFillDropDownBeforeOpen = function () {
            if (this.pdfViewer.selectedItems.annotations.length === 1) {
                this.fillColorPicker.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor;
            }
            this.fillColorPicker.refresh();
        };
        Annotation.prototype.createStyleList = function () {
            var _this = this;
            var ulElement = ej2_base_1.createElement('ul');
            document.body.appendChild(ulElement);
            var solidLi = this.createListForStyle('solid');
            solidLi.addEventListener('click', function () {
                _this.setThickness('0', 'solid');
            });
            ulElement.appendChild(solidLi);
            var dottedLi = this.createListForStyle('dotted');
            dottedLi.addEventListener('click', function () {
                _this.setThickness('2', 'dotted');
            });
            ulElement.appendChild(dottedLi);
            var dashedLi = this.createListForStyle('dashed');
            dashedLi.addEventListener('click', function () {
                _this.setThickness('3', 'dashed');
            });
            ulElement.appendChild(dashedLi);
            return ulElement;
        };
        Annotation.prototype.createColorPicker = function (idString, isNoColor) {
            var inputElement = ej2_base_1.createElement('input', { id: idString + '_target' });
            document.body.appendChild(inputElement);
            var colorPicker = new ej2_inputs_1.ColorPicker({
                inline: true, mode: 'Palette', enableOpacity: false, value: '#000000', showButtons: false, modeSwitcher: false,
                noColor: isNoColor
            });
            if (this.pdfViewer.enableRtl) {
                colorPicker.enableRtl = true;
            }
            colorPicker.appendTo(inputElement);
            return colorPicker;
        };
        Annotation.prototype.createDropDownButton = function (element, iconClass, target) {
            var dropDownButton = new ej2_splitbuttons_1.DropDownButton({ iconCss: iconClass + ' e-pv-icon', target: target });
            if (this.pdfViewer.enableRtl) {
                dropDownButton.enableRtl = true;
            }
            dropDownButton.appendTo(element);
            return dropDownButton;
        };
        Annotation.prototype.updateColorInIcon = function (element, color) {
            element.childNodes[0].style.borderBottomColor = color;
        };
        Annotation.prototype.isLineAnnotationFillColorEnabled = function () {
            var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];
            if (selectedAnnotation) {
                if (selectedAnnotation.measureType === 'Perimeter') {
                    return false;
                }
                if (selectedAnnotation.shapeAnnotationType === 'Line' || selectedAnnotation.shapeAnnotationType === 'LineWidthArrowHead' || selectedAnnotation.measureType === 'Distance') {
                    if ((selectedAnnotation.sourceDecoraterShapes === 'None' || selectedAnnotation.sourceDecoraterShapes === 'OpenArrow') && (selectedAnnotation.taregetDecoraterShapes === 'None' || selectedAnnotation.taregetDecoraterShapes === 'OpenArrow')) {
                        return false;
                    }
                    return true;
                }
                else if (selectedAnnotation.shapeAnnotationType === 'Rectangle' || selectedAnnotation.shapeAnnotationType === 'Ellipse' || selectedAnnotation.shapeAnnotationType === 'Radius' || selectedAnnotation.shapeAnnotationType === 'Polygon') {
                    return true;
                }
                else {
                    return false;
                }
            }
            else {
                return false;
            }
        };
        Annotation.prototype.onFillColorChange = function (color) {
            var colorElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_fill_color_button');
            if (color !== 'transparent') {
                colorElement.children[0].style.borderBottomColor = color;
            }
        };
        Annotation.prototype.onStrokeColorChange = function (color) {
            var colorElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_stroke_color_button');
            if (color !== 'transparent') {
                colorElement.children[0].style.borderBottomColor = color;
            }
        };
        Annotation.prototype.setThickness = function (value, style, isBlazor) {
            if (!isBlazor) {
                this.lineStyleDropDown.content = this.createDropDownContent(style).outerHTML;
            }
            this.selectedLineDashArray = value;
            if (value === '0') {
                this.selectedLineStyle = 'Solid';
            }
            else if (value === '2' || value === '3') {
                this.selectedLineStyle = 'Dashed';
            }
        };
        Annotation.prototype.createDropDownContent = function (style) {
            var divElement = ej2_base_1.createElement('div', { className: 'e-pv-line-styles-content-container' });
            var spanElement = ej2_base_1.createElement('span', { className: 'e-pv-line-styles-content', styles: 'border-bottom-style:' + style });
            divElement.appendChild(spanElement);
            return divElement;
        };
        Annotation.prototype.createListForStyle = function (style) {
            var liElement = ej2_base_1.createElement('li', { className: 'e-menu-item' });
            var divElement = ej2_base_1.createElement('div', { className: 'e-pv-line-styles-container' });
            var spanElement = ej2_base_1.createElement('span', { className: 'e-pv-line-styles-item', styles: 'border-bottom-style:' + style });
            divElement.appendChild(spanElement);
            liElement.appendChild(divElement);
            return liElement;
        };
        Annotation.prototype.onStartArrowHeadStyleSelect = function (args) {
            this.startArrowDropDown.content = this.createContent(args.item.text).outerHTML;
            this.updateFillColor();
        };
        Annotation.prototype.onEndArrowHeadStyleSelect = function (args) {
            this.endArrowDropDown.content = this.createContent(args.item.text).outerHTML;
            this.updateFillColor();
        };
        Annotation.prototype.createInputElement = function (labelText, parentElement, inputType, input, isLabelNeeded, className, idString) {
            var container = ej2_base_1.createElement('div', { id: idString + '_container', className: className + '-container' });
            if (isLabelNeeded) {
                var label = ej2_base_1.createElement('div', { id: idString + '_label', className: className + '-label' });
                label.textContent = labelText;
                container.appendChild(label);
            }
            if (this.pdfViewer.localeObj.getConstant('Opacity') === labelText) {
                this.opacityIndicator = ej2_base_1.createElement('div', { className: 'e-pv-properties-opacity-indicator' });
                container.appendChild(this.opacityIndicator);
            }
            var textBoxInput = ej2_base_1.createElement(input, { id: idString });
            if (input === 'input') {
                textBoxInput.type = inputType;
            }
            container.appendChild(textBoxInput);
            parentElement.appendChild(container);
            return textBoxInput;
        };
        Annotation.prototype.updateOpacityIndicator = function () {
            this.opacityIndicator.textContent = this.opacitySlider.value + '%';
        };
        Annotation.prototype.updateFillColor = function () {
            var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];
            var fillColorButton = document.getElementById(this.pdfViewer.element.id + '_properties_fill_color');
            var startArrow = this.getArrowTypeFromDropDown(this.startArrowDropDown.content);
            var endArrow = this.getArrowTypeFromDropDown(this.endArrowDropDown.content);
            if (selectedAnnotation.measureType === 'Perimeter') {
                fillColorButton.disabled = true;
            }
            else if ((startArrow === 'None' || startArrow === 'OpenArrow') && (endArrow === 'None' || endArrow === 'OpenArrow')) {
                fillColorButton.disabled = true;
            }
            else if (fillColorButton.disabled) {
                fillColorButton.disabled = false;
            }
        };
        Annotation.prototype.onOkClicked = function (opacityValue) {
            var startArrow;
            var endArrow;
            var thickness;
            var strokeColor;
            var fillColor;
            var opacity;
            if (!ej2_base_1.isBlazor()) {
                startArrow = this.getArrowTypeFromDropDown(this.startArrowDropDown.content);
                endArrow = this.getArrowTypeFromDropDown(this.endArrowDropDown.content);
                thickness = this.thicknessBox.value;
                strokeColor = this.strokeColorPicker.getValue(this.strokeColorPicker.value, 'hex');
                strokeColor = (strokeColor === '') ? '#ffffff00' : strokeColor;
                fillColor = this.fillColorPicker.getValue(this.fillColorPicker.value, 'hex');
                fillColor = (fillColor === '' || fillColor === '#transp' || this.fillColorPicker.value === '#ffffff00') ? '#ffffff00' : fillColor;
                opacity = this.opacitySlider.value / 100;
            }
            else {
                var lineStartElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_line_start');
                var lineEndElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_line_end');
                var thicknessElement = document.querySelector('#' + this.pdfViewer.element.id + '_line_thickness');
                var lineStyleElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_style');
                var fillColorElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_fill_color_button');
                var strokeColorElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_stroke_color_button');
                var opacityElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_opacity');
                startArrow = this.getArrowTypeFromDropDown(lineStartElement.value, true);
                endArrow = this.getArrowTypeFromDropDown(lineEndElement.value, true);
                thickness = parseInt(thicknessElement.value, 10);
                strokeColor = this.getValue(strokeColorElement.children[0].style.borderBottomColor, 'hex');
                strokeColor = (strokeColor === '') ? '#ffffff00' : strokeColor;
                fillColor = this.getValue(fillColorElement.children[0].style.borderBottomColor, 'hex');
                fillColor = (fillColor === '') ? '#ffffff00' : fillColor;
                if (opacityValue) {
                    opacity = (opacityValue) / 100;
                }
                else {
                    opacity = opacityElement.value / 100;
                }
                if (lineStyleElement.value) {
                    if (lineStyleElement.value === 'Solid') {
                        this.setThickness('0', 'solid', true);
                    }
                    else if (lineStyleElement.value === 'Dotted') {
                        this.setThickness('2', 'dotted', true);
                    }
                    else if (lineStyleElement.value === 'Dashed') {
                        this.setThickness('3', 'dashed', true);
                    }
                }
            }
            var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];
            var clonedObject = drawing_util_1.cloneObject(currentAnnotation);
            var redoClonedObject = drawing_util_1.cloneObject(currentAnnotation);
            var newNode = {};
            var isColorChanged = false;
            var isStrokeColorChanged = false;
            var isThicknessChanged = false;
            var isOpacityChanged = false;
            var isLineHeadStartStyleChanged = false;
            var isLineHeadEndStyleChanged = false;
            var isBorderDashArrayChanged = false;
            if (startArrow !== currentAnnotation.sourceDecoraterShapes) {
                newNode.sourceDecoraterShapes = startArrow;
                redoClonedObject.lineHeadStart = this.getArrowString(startArrow);
                isLineHeadStartStyleChanged = true;
            }
            if (endArrow !== currentAnnotation.taregetDecoraterShapes) {
                newNode.taregetDecoraterShapes = endArrow;
                redoClonedObject.lineHeadEnd = this.getArrowString(endArrow);
                isLineHeadEndStyleChanged = true;
            }
            if (thickness !== currentAnnotation.wrapper.children[0].style.strokeWidth) {
                newNode.thickness = thickness;
                redoClonedObject.thickness = thickness;
                isThicknessChanged = true;
            }
            if (strokeColor !== currentAnnotation.wrapper.children[0].style.strokeColor) {
                newNode.strokeColor = strokeColor;
                redoClonedObject.strokeColor = strokeColor;
                isStrokeColorChanged = true;
            }
            if (fillColor !== currentAnnotation.wrapper.children[0].style.fill) {
                newNode.fillColor = fillColor;
                redoClonedObject.fillColor = fillColor;
                isColorChanged = true;
            }
            if (opacity !== currentAnnotation.wrapper.children[0].style.opacity) {
                newNode.opacity = opacity;
                redoClonedObject.opacity = opacity;
                isOpacityChanged = true;
            }
            if (this.selectedLineDashArray !== currentAnnotation.wrapper.children[0].style.strokeDashArray) {
                newNode.borderDashArray = this.selectedLineDashArray;
                newNode.borderStyle = this.selectedLineStyle;
                redoClonedObject.borderDashArray = newNode.borderDashArray;
                redoClonedObject.borderStyle = newNode.borderStyle;
                isBorderDashArrayChanged = true;
            }
            if (!ej2_base_1.isBlazor()) {
                if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance' && this.leaderLengthBox.value !== this.pdfViewer.selectedItems.annotations[0].leaderHeight) {
                    newNode.leaderHeight = this.leaderLengthBox.value;
                }
            }
            else {
                var leaderLengthElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_leader_length');
                if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance' && parseInt(leaderLengthElement.value, 10) !== this.pdfViewer.selectedItems.annotations[0].leaderHeight) {
                    newNode.leaderHeight = parseInt(leaderLengthElement.value, 10);
                }
            }
            this.pdfViewer.nodePropertyChange(this.pdfViewer.selectedItems.annotations[0], newNode);
            this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill = fillColor;
            this.triggerAnnotationPropChange(this.pdfViewer.selectedItems.annotations[0], isColorChanged, isStrokeColorChanged, isThicknessChanged, isOpacityChanged, isLineHeadStartStyleChanged, isLineHeadEndStyleChanged, isBorderDashArrayChanged);
            this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'thickness');
            this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'stroke');
            this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'fill');
            this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'opacity');
            this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'dashArray');
            this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'startArrow');
            this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'endArrow');
            if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance') {
                this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'leaderLength');
            }
            if (!ej2_base_1.Browser.isDevice || this.pdfViewer.enableDesktopMode) {
                if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule && this.pdfViewer.selectedItems.annotations[0]
                    && (isLineHeadStartStyleChanged || isLineHeadEndStyleChanged)) {
                    this.pdfViewer.toolbar.annotationToolbarModule.enableAnnotationPropertiesTools(true);
                }
            }
            this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Line properties change', '', clonedObject, redoClonedObject);
            this.renderAnnotations(currentAnnotation.pageIndex, null, null, null);
            if (!ej2_base_1.isBlazor()) {
                this.propertiesDialog.hide();
            }
        };
        Annotation.prototype.onCancelClicked = function () {
            this.propertiesDialog.hide();
        };
        Annotation.prototype.getArrowTypeFromDropDown = function (arrowType, isBlazor) {
            if (!isBlazor) {
                arrowType = arrowType.split('</div>')[0].split('">')[1];
            }
            var arrow = 'None';
            switch (arrowType) {
                case this.pdfViewer.localeObj.getConstant('None'):
                    arrow = 'None';
                    break;
                case this.pdfViewer.localeObj.getConstant('Open Arrow'):
                    arrow = 'OpenArrow';
                    break;
                case this.pdfViewer.localeObj.getConstant('Closed Arrow'):
                    arrow = 'Arrow';
                    break;
                case this.pdfViewer.localeObj.getConstant('Round Arrow'):
                    arrow = 'Circle';
                    break;
                case this.pdfViewer.localeObj.getConstant('Square Arrow'):
                    arrow = 'Square';
                    break;
                case this.pdfViewer.localeObj.getConstant('Diamond Arrow'):
                    arrow = 'Diamond';
                    break;
                case this.pdfViewer.localeObj.getConstant('Butt'):
                    arrow = 'Butt';
                    break;
            }
            return arrow;
        };
        Annotation.prototype.getArrowString = function (arrow) {
            var arrowType = this.pdfViewer.localeObj.getConstant('None');
            switch (arrow) {
                case 'Arrow':
                    arrowType = this.pdfViewer.localeObj.getConstant('Closed');
                    break;
                case 'OpenArrow':
                    arrowType = this.pdfViewer.localeObj.getConstant('Open Arrow');
                    break;
                case 'Circle':
                    arrowType = this.pdfViewer.localeObj.getConstant('Round');
                    break;
                case 'None':
                case 'Square':
                case 'Diamond':
                    arrowType = this.pdfViewer.localeObj.getConstant(arrow);
                    break;
                case 'Butt':
                    arrowType = this.pdfViewer.localeObj.getConstant('Butt');
                    break;
            }
            return arrowType;
        };
        Annotation.prototype.onAnnotationMouseUp = function () {
            if (this.pdfViewer.selectedItems.annotations.length !== 0 && this.pdfViewer.selectedItems.annotations[0] &&
                this.pdfViewer.selectedItems.annotations[0].annotationSettings &&
                (!(this.pdfViewer.selectedItems.annotations[0].annotationSettings.isLock) ||
                    this.checkAllowedInteractions('Delete', this.pdfViewer.selectedItems.annotations[0]) ||
                    this.checkAllowedInteractions('PropertyChange', this.pdfViewer.selectedItems.annotations[0]))) {
                if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {
                    this.enableBasedOnType();
                    this.pdfViewer.toolbar.annotationToolbarModule.selectAnnotationDeleteItem(true);
                    if (!ej2_base_1.Browser.isDevice) {
                        this.pdfViewer.toolbar.annotationToolbarModule.updateAnnnotationPropertyItems();
                    }
                }
                if (this.pdfViewer.textSelectionModule && !this.pdfViewer.textSelectionModule.isTextSelection) {
                    this.pdfViewerBase.disableTextSelectionMode();
                }
            }
            else {
                if (this.pdfViewer.textSelectionModule && !this.pdfViewerBase.isPanMode && !this.pdfViewer.designerMode) {
                    this.pdfViewer.textSelectionModule.enableTextSelectionMode();
                }
                if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule &&
                    (!ej2_base_1.Browser.isDevice || this.pdfViewer.enableDesktopMode)) {
                    var isSkip = this.pdfViewer.toolbar.annotationToolbarModule.inkAnnotationSelected;
                    if (this.pdfViewer.annotation.freeTextAnnotationModule &&
                        !this.pdfViewer.annotation.freeTextAnnotationModule.isInuptBoxInFocus && !isSkip) {
                        var tmModule = this.pdfViewer.annotationModule ?
                            this.pdfViewer.annotationModule.textMarkupAnnotationModule : null;
                        var isTextMarkupContext = !!(tmModule && (tmModule.currentTextMarkupAnnotation ||
                            tmModule.isTextMarkupAnnotationMode));
                        var skipClearing = ej2_base_1.Browser.isDevice && this.pdfViewer.enableDesktopMode;
                        if (!(this.pdfViewerBase.tool instanceof tools_1.PolygonDrawingTool) && !(isTextMarkupContext && skipClearing)) {
                            this.pdfViewer.toolbar.annotationToolbarModule.enableAnnotationPropertiesTools(false);
                            this.pdfViewer.toolbar.annotationToolbarModule.enableFreeTextAnnotationPropertiesTools(false);
                        }
                    }
                    this.pdfViewer.toolbar.annotationToolbarModule.updateAnnnotationPropertyItems();
                    this.pdfViewer.toolbar.annotationToolbarModule.selectAnnotationDeleteItem(false);
                }
            }
        };
        Annotation.prototype.onShapesMouseup = function (pdfAnnotationBase, event) {
            pdfAnnotationBase = !ej2_base_1.isNullOrUndefined(this.pdfViewer.selectedItems.annotations[0]) ?
                this.pdfViewer.selectedItems.annotations[0] : pdfAnnotationBase;
            var isToolMoved = false;
            if (this.pdfViewerBase.prevPosition.x !== this.pdfViewerBase.currentPosition.x ||
                this.pdfViewerBase.prevPosition.y !== this.pdfViewerBase.currentPosition.y) {
                isToolMoved = true;
            }
            if (pdfAnnotationBase) {
                if (this.textMarkupAnnotationModule && this.textMarkupAnnotationModule.currentTextMarkupAnnotation) {
                    this.textMarkupAnnotationModule.currentTextMarkupAnnotation = null;
                    this.textMarkupAnnotationModule.selectTextMarkupCurrentPage = null;
                }
                if ((this.pdfViewerBase.tool instanceof tools_1.NodeDrawingTool ||
                    this.pdfViewerBase.tool instanceof tools_1.LineTool) && !this.pdfViewerBase.tool.dragging) {
                    var setting = {
                        opacity: pdfAnnotationBase.opacity, fillColor: pdfAnnotationBase.fillColor, strokeColor: pdfAnnotationBase.strokeColor,
                        thickness: pdfAnnotationBase.thickness, author: pdfAnnotationBase.author, subject: pdfAnnotationBase.subject,
                        modifiedDate: pdfAnnotationBase.modifiedDate
                    };
                    var index = this.getAnnotationIndex(pdfAnnotationBase.pageIndex, pdfAnnotationBase.id);
                    if (this.pdfViewerBase.tool instanceof tools_1.LineTool) {
                        setting.lineHeadStartStyle = this.getArrowString(pdfAnnotationBase.sourceDecoraterShapes);
                        setting.lineHeadEndStyle = this.getArrowString(pdfAnnotationBase.taregetDecoraterShapes);
                        setting.borderDashArray = pdfAnnotationBase.borderDashArray;
                    }
                    if (!this.pdfViewerBase.isAnnotationAdded || pdfAnnotationBase.measureType === 'Distance') {
                        if (pdfAnnotationBase.measureType === '' || ej2_base_1.isNullOrUndefined(pdfAnnotationBase.measureType)) {
                            if (pdfAnnotationBase.shapeAnnotationType === 'Redaction') {
                                this.redactionAnnotationModule.renderRedactionAnnotations(pdfAnnotationBase, pdfAnnotationBase.pageIndex);
                                if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {
                                    this.pdfViewer.toolbarModule.annotationToolbarModule.isnewlyAddedAnnot = true;
                                }
                            }
                            else {
                                this.shapeAnnotationModule.renderShapeAnnotations(pdfAnnotationBase, pdfAnnotationBase.pageIndex);
                            }
                        }
                        else if (pdfAnnotationBase.measureType === 'Distance' || pdfAnnotationBase.measureType === 'Perimeter' ||
                            pdfAnnotationBase.measureType === 'Radius') {
                            this.measureAnnotationModule.
                                renderMeasureShapeAnnotations(pdfAnnotationBase, pdfAnnotationBase.pageIndex);
                        }
                    }
                    this.pdfViewerBase.updateDocumentEditedProperty(true);
                }
                else if (this.pdfViewerBase.tool instanceof tools_1.MoveTool || this.pdfViewerBase.tool instanceof tools_1.ResizeTool) {
                    if (isToolMoved) {
                        this.pdfViewerBase.updateDocumentEditedProperty(true);
                    }
                    if (pdfAnnotationBase.measureType === '' || ej2_base_1.isNullOrUndefined(pdfAnnotationBase.measureType)) {
                        if (pdfAnnotationBase.shapeAnnotationType === 'FreeText') {
                            this.pdfViewer.annotation.freeTextAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);
                        }
                        else if (pdfAnnotationBase.shapeAnnotationType === 'HandWrittenSignature' || pdfAnnotationBase.shapeAnnotationType === 'SignatureImage' || pdfAnnotationBase.shapeAnnotationType === 'SignatureText') {
                            this.pdfViewerBase.signatureModule.modifySignatureCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);
                        }
                        else if (pdfAnnotationBase.shapeAnnotationType === 'Ink') {
                            this.inkAnnotationModule.modifySignatureInkCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);
                        }
                        else if (pdfAnnotationBase.shapeAnnotationType === 'Stamp' || pdfAnnotationBase.shapeAnnotationType === 'Image') {
                            this.stampAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase, isToolMoved);
                        }
                        else if (pdfAnnotationBase.shapeAnnotationType === 'Redaction') {
                            this.redactionAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);
                        }
                        else {
                            this.pdfViewer.annotation.shapeAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase, isToolMoved);
                        }
                    }
                    else if (pdfAnnotationBase.measureType === 'Distance' || pdfAnnotationBase.measureType === 'Perimeter' || pdfAnnotationBase.measureType === 'Radius' || pdfAnnotationBase.measureType === 'Area' || pdfAnnotationBase.measureType === 'Volume') {
                        this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);
                    }
                    if (this.pdfViewerBase.tool instanceof tools_1.ResizeTool) {
                        if (!pdfAnnotationBase.formFieldAnnotationType) {
                            this.triggerAnnotationResize(pdfAnnotationBase);
                        }
                    }
                    if (this.pdfViewerBase.tool instanceof tools_1.MoveTool) {
                        if (this.pdfViewerBase.action !== 'Select') {
                            if (!pdfAnnotationBase.formFieldAnnotationType) {
                                this.triggerAnnotationMove(pdfAnnotationBase);
                            }
                        }
                    }
                }
                else if (this.pdfViewerBase.tool instanceof tools_1.ConnectTool) {
                    if (isToolMoved) {
                        this.pdfViewerBase.updateDocumentEditedProperty(true);
                    }
                    if (pdfAnnotationBase.measureType === '' || ej2_base_1.isNullOrUndefined(pdfAnnotationBase.measureType)) {
                        if ((pdfAnnotationBase.shapeAnnotationType === 'Line' || pdfAnnotationBase.shapeAnnotationType === 'LineWidthArrowHead' || pdfAnnotationBase.shapeAnnotationType === 'Polygon')) {
                            this.pdfViewer.annotation.shapeAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase, isToolMoved);
                        }
                    }
                    else if (pdfAnnotationBase.measureType === 'Distance' || pdfAnnotationBase.measureType === 'Perimeter' || pdfAnnotationBase.measureType === 'Area' || pdfAnnotationBase.measureType === 'Volume') {
                        if (pdfAnnotationBase.measureType === 'Distance') {
                            this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('leaderLength', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);
                        }
                        this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);
                    }
                    this.triggerAnnotationResize(pdfAnnotationBase);
                }
                if (this.pdfViewerBase.navigationPane && this.pdfViewerBase.navigationPane.annotationMenuObj && this.pdfViewer.isSignatureEditable && (pdfAnnotationBase.shapeAnnotationType === 'HandWrittenSignature' || pdfAnnotationBase.shapeAnnotationType === 'SignatureText' || pdfAnnotationBase.shapeAnnotationType === 'SignatureImage')) {
                    this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export Annotations')], true);
                    this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export XFDF')], true);
                }
                if (this.pdfViewer.toolbarModule) {
                    if (this.pdfViewer.toolbarModule.annotationToolbarModule && this.pdfViewer.enableAnnotationToolbar) {
                        this.pdfViewer.toolbarModule.annotationToolbarModule.clearTextMarkupMode();
                        if (pdfAnnotationBase.measureType === '' || ej2_base_1.isNullOrUndefined(pdfAnnotationBase.measureType)) {
                            this.pdfViewer.toolbarModule.annotationToolbarModule.clearMeasureMode();
                        }
                        else if (pdfAnnotationBase.measureType === 'Distance' || pdfAnnotationBase.measureType === 'Perimeter' || pdfAnnotationBase.measureType === 'Area' || pdfAnnotationBase.measureType === 'Volume' || pdfAnnotationBase.measureType === 'Radius') {
                            this.pdfViewer.toolbarModule.annotationToolbarModule.clearShapeMode();
                        }
                        if (this.pdfViewer.selectedItems.annotations.length === 1 &&
                            this.pdfViewer.selectedItems.annotations[0].formFieldAnnotationType === null) {
                            this.pdfViewer.toolbarModule.annotationToolbarModule.enableAnnotationPropertiesTools(true);
                        }
                        if (!ej2_base_1.isBlazor()) {
                            if (this.pdfViewer.selectedItems.annotations.length === 1 && !this.pdfViewer.designerMode) {
                                this.pdfViewer.toolbarModule.annotationToolbarModule.selectAnnotationDeleteItem(true);
                                this.pdfViewer.toolbarModule.annotationToolbarModule.setCurrentColorInPicker();
                                this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden = true;
                                this.pdfViewer.toolbarModule.redactionToolbarModule.isToolbarHidden = true;
                                if (!this.pdfViewer.formDesignerModule && pdfAnnotationBase.id != '' && pdfAnnotationBase.id != null && pdfAnnotationBase.id.slice(0, 4) != 'sign') {
                                    var id = document.getElementById(pdfAnnotationBase.id);
                                    var isFieldReadOnly = id && id.disabled;
                                    if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Redaction' &&
                                        (!ej2_base_1.Browser.isDevice || this.pdfViewer.enableDesktopMode)) {
                                        this.pdfViewer.toolbarModule.annotationToolbarModule.manageRedcationToolbarShow(true);
                                    }
                                    else {
                                        if (!isFieldReadOnly) {
                                            if (this.pdfViewer.isRedactionToolbarVisible) {
                                                this.pdfViewer.toolbarModule.redactionToolbarModule.isToolbarHidden = false;
                                                if (!ej2_base_1.Browser.isDevice || this.pdfViewer.enableDesktopMode) {
                                                    this.pdfViewer.toolbarModule.redactionToolbarModule.showRedactionToolbar(this.pdfViewer.toolbarModule.redactionItem);
                                                }
                                            }
                                            this.pdfViewer.toolbarModule.annotationToolbarModule.
                                                showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);
                                        }
                                        else if (this.pdfViewer.annotation && isFieldReadOnly) {
                                            this.pdfViewer.annotation.clearSelection();
                                        }
                                    }
                                }
                                else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Redaction') {
                                    if (!ej2_base_1.Browser.isDevice || this.pdfViewer.enableDesktopMode) {
                                        this.pdfViewer.toolbarModule.annotationToolbarModule.manageRedcationToolbarShow(true);
                                    }
                                    else {
                                        this.pdfViewer.toolbarModule.redactionToolbarModule.
                                            showRedactionToolbar(this.pdfViewer.toolbarModule.redactionItem, null, true);
                                    }
                                }
                                else {
                                    if (this.pdfViewer.isRedactionToolbarVisible) {
                                        this.pdfViewer.toolbarModule.redactionToolbarModule.isToolbarHidden = false;
                                        this.pdfViewer.toolbarModule.redactionToolbarModule.showRedactionToolbar(this.pdfViewer.toolbarModule.redactionItem);
                                    }
                                    this.pdfViewer.toolbarModule.annotationToolbarModule.
                                        showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);
                                }
                                if (this.pdfViewer.isAnnotationToolbarVisible && this.pdfViewer.isFormDesignerToolbarVisible) {
                                    var formDesignerMainDiv = document.getElementById(this.pdfViewer.element.id + '_formdesigner_toolbar');
                                    formDesignerMainDiv.style.display = 'none';
                                    if (this.pdfViewer.toolbarModule) {
                                        this.pdfViewer.toolbarModule.formDesignerToolbarModule.isToolbarHidden = false;
                                        this.pdfViewer.toolbarModule.formDesignerToolbarModule.
                                            showFormDesignerToolbar(this.pdfViewer.toolbarModule.formDesignerItem);
                                        this.pdfViewer.toolbarModule.annotationToolbarModule.adjustViewer(true);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        };
        Annotation.prototype.updateCalibrateValues = function (pdfAnnotationBase, isNewlyAdded) {
            if (pdfAnnotationBase.measureType === 'Distance') {
                pdfAnnotationBase.notes = connector_util_1.updateDistanceLabel(pdfAnnotationBase, pdfAnnotationBase.vertexPoints, this.measureAnnotationModule);
                if (pdfAnnotationBase.enableShapeLabel === true) {
                    pdfAnnotationBase.labelContent = pdfAnnotationBase.notes;
                }
                this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('notes', pdfAnnotationBase.pageIndex, pdfAnnotationBase, isNewlyAdded);
                this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(pdfAnnotationBase.annotName, pdfAnnotationBase.notes);
                this.renderAnnotations(pdfAnnotationBase.pageIndex, null, null, null, null);
            }
            else if (pdfAnnotationBase.measureType === 'Radius') {
                pdfAnnotationBase.notes = connector_util_1.updateRadiusLabel(pdfAnnotationBase, this.measureAnnotationModule);
                if (pdfAnnotationBase.enableShapeLabel === true) {
                    pdfAnnotationBase.labelContent = pdfAnnotationBase.notes;
                }
                this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('notes', pdfAnnotationBase.pageIndex, pdfAnnotationBase, isNewlyAdded);
                this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(pdfAnnotationBase.annotName, pdfAnnotationBase.notes);
                this.renderAnnotations(pdfAnnotationBase.pageIndex, null, null, null, null);
            }
            else if (pdfAnnotationBase.measureType === 'Perimeter') {
                pdfAnnotationBase.notes = connector_util_1.updatePerimeterLabel(pdfAnnotationBase, pdfAnnotationBase.vertexPoints, this.measureAnnotationModule);
                if (pdfAnnotationBase.enableShapeLabel === true) {
                    pdfAnnotationBase.labelContent = pdfAnnotationBase.notes;
                }
                this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('notes', pdfAnnotationBase.pageIndex, pdfAnnotationBase, isNewlyAdded);
                this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(pdfAnnotationBase.annotName, pdfAnnotationBase.notes);
                this.renderAnnotations(pdfAnnotationBase.pageIndex, null, null, null, null);
            }
            else if (pdfAnnotationBase.measureType === 'Area') {
                pdfAnnotationBase.notes = this.measureAnnotationModule.
                    calculateArea(pdfAnnotationBase.vertexPoints, pdfAnnotationBase.id, pdfAnnotationBase.pageIndex);
                if (pdfAnnotationBase.enableShapeLabel === true) {
                    pdfAnnotationBase.labelContent = pdfAnnotationBase.notes;
                    connector_util_1.updateCalibrateLabel(pdfAnnotationBase);
                }
                this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('notes', pdfAnnotationBase.pageIndex, pdfAnnotationBase, isNewlyAdded);
                this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(pdfAnnotationBase.annotName, pdfAnnotationBase.notes);
                this.renderAnnotations(pdfAnnotationBase.pageIndex, null, null, null, null);
            }
            else if (pdfAnnotationBase.measureType === 'Volume') {
                pdfAnnotationBase.notes = this.measureAnnotationModule.
                    calculateVolume(pdfAnnotationBase.vertexPoints, pdfAnnotationBase.id, pdfAnnotationBase.pageIndex);
                if (pdfAnnotationBase.enableShapeLabel === true) {
                    pdfAnnotationBase.labelContent = pdfAnnotationBase.notes;
                    connector_util_1.updateCalibrateLabel(pdfAnnotationBase);
                }
                this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('notes', pdfAnnotationBase.pageIndex, pdfAnnotationBase, isNewlyAdded);
                this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(pdfAnnotationBase.annotName, pdfAnnotationBase.notes);
                this.renderAnnotations(pdfAnnotationBase.pageIndex, null, null, null, null);
            }
        };
        Annotation.prototype.rgbaToHex = function (str) {
            if (str.includes('rgba')) {
                var match = str.replace(/\s/g, '').match(/^rgba?\((\d+),(\d+),(\d+),?([^,\s)]+)?/i);
                if (!match) {
                    return str;
                }
                var r = parseInt(match[1], 10);
                var g = parseInt(match[2], 10);
                var b = parseInt(match[3], 10);
                var a = match[4] !== undefined ? parseFloat(match[4]) : 1;
                if (a > 1) {
                    a = Math.min(a / 255, 1);
                }
                var toHex = function (num) {
                    var hex = num.toString(16);
                    return hex.length === 1 ? '0' + hex : hex;
                };
                var rHex = toHex(r);
                var gHex = toHex(g);
                var bHex = toHex(b);
                var aHex = toHex(Math.round(a * 255));
                return "#" + rHex + gHex + bHex + aHex;
            }
            return str;
        };
        Annotation.prototype.getRedactionSettings = function () {
            if (this.pdfViewer.selectedItems &&
                this.pdfViewer.selectedItems.annotations &&
                this.pdfViewer.selectedItems.annotations.length > 0) {
                var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];
                if (selectedAnnotation && selectedAnnotation.shapeAnnotationType === 'Redaction') {
                    return {
                        fillColor: this.rgbaToHex(selectedAnnotation.fillColor) || 'rgba(0, 0, 0, 1)',
                        markerBorderColor: this.rgbaToHex(selectedAnnotation.markerBorderColor) || 'rgba(255, 0, 0, 1)',
                        markerFillColor: this.rgbaToHex(selectedAnnotation.markerFillColor) || 'rgba(255, 255, 255, 1)',
                        markerOpacity: selectedAnnotation.markerOpacity || 1,
                        fontFamily: selectedAnnotation.fontFamily || 'Helvetica',
                        fontSize: selectedAnnotation.fontSize || 14,
                        fontColor: this.rgbaToHex(selectedAnnotation.fontColor) || 'rgba(255, 0, 0, 1)',
                        textAlign: selectedAnnotation.textAlign || 'Center',
                        isRepeat: selectedAnnotation.isRepeat || false,
                        overlayText: selectedAnnotation.overlayText || ''
                    };
                }
            }
            return null;
        };
        Annotation.prototype.onAnnotationMouseDown = function () {
            if (this.pdfViewer.selectedItems.annotations.length === 1 &&
                this.pdfViewer.selectedItems.annotations[0].formFieldAnnotationType === null &&
                this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType !== 'Redaction' &&
                this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].annotationSettings &&
                (!this.pdfViewer.selectedItems.annotations[0].annotationSettings.isLock ||
                    this.checkAllowedInteractions('Delete', this.pdfViewer.selectedItems.annotations[0]) ||
                    this.checkAllowedInteractions('PropertyChange', this.pdfViewer.selectedItems.annotations[0]))) {
                if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {
                    if (!ej2_base_1.isBlazor() && ej2_base_1.Browser.isDevice && !this.pdfViewer.enableDesktopMode) {
                        var commentPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');
                        if (commentPanel.style.display === 'none') {
                            if (this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar &&
                                (!ej2_base_1.isNullOrUndefined(this.pdfViewer.annotationModule.textMarkupAnnotationModule) &&
                                    this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation)) {
                                this.pdfViewer.toolbarModule.annotationToolbarModule.createPropertyTools('');
                            }
                            else {
                                if (this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar &&
                                    !this.pdfViewerBase.isAddComment) {
                                    this.pdfViewer.toolbarModule.annotationToolbarModule.createAnnotationToolbarForMobile();
                                    this.pdfViewer.toolbarModule.annotationToolbarModule.
                                        createPropertyTools(this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType);
                                    var editIcon = document.getElementById(this.pdfViewer.element.id + '_annotationIcon');
                                    if (editIcon && !editIcon.parentElement.classList.contains('e-pv-select')) {
                                        editIcon.parentElement.classList.add('e-pv-select');
                                    }
                                }
                            }
                        }
                    }
                    if (!this.pdfViewerBase.isDeviceiOS) {
                        this.enableBasedOnType();
                        this.pdfViewer.toolbar.annotationToolbarModule.selectAnnotationDeleteItem(true);
                    }
                }
            }
            else if (this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar && this.pdfViewer.annotationModule &&
                (!ej2_base_1.isNullOrUndefined(this.pdfViewer.annotationModule.textMarkupAnnotationModule) &&
                    this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation)) {
                this.enableBasedOnType();
                this.pdfViewer.toolbar.annotationToolbarModule.selectAnnotationDeleteItem(true);
            }
            else {
                if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule &&
                    this.pdfViewer.toolbarModule.annotationToolbarModule.propertyToolbar &&
                    this.pdfViewer.toolbarModule.annotationToolbarModule.propertyToolbar.element.style.display !== 'none') {
                    if (ej2_base_1.Browser.isDevice && !this.pdfViewer.enableDesktopMode) {
                        this.pdfViewer.toolbarModule.annotationToolbarModule.propertyToolbar.element.style.display = 'none';
                        var editIcon = document.getElementById(this.pdfViewer.element.id + '_annotationIcon');
                        if (editIcon && editIcon.parentElement.classList.contains('e-pv-select')) {
                            this.pdfViewer.toolbarModule.annotationToolbarModule.createAnnotationToolbarForMobile();
                        }
                    }
                }
            }
        };
        Annotation.prototype.hexToRgba = function (hex) {
            try {
                var _a = this.parseHexToRgbaValues(hex), r = _a[0], g = _a[1], b = _a[2], a = _a[3];
                var alpha = (a / 255).toFixed(2);
                return "rgba(" + r + ", " + g + ", " + b + ", " + alpha + ")";
            }
            catch (_b) {
                return hex;
            }
        };
        Annotation.prototype.parseHexToRgbaValues = function (hex) {
            if (!hex || !hex.startsWith('#')) {
                throw new Error('Invalid hex color');
            }
            hex = hex.replace('#', '').trim();
            if (hex.length === 3 || hex.length === 4) {
                hex = hex.split('').map(function (c) { return c + c; }).join('');
            }
            if (hex.length !== 6 && hex.length !== 8) {
                throw new Error('Invalid hex length');
            }
            var r = parseInt(hex.slice(0, 2), 16);
            var g = parseInt(hex.slice(2, 4), 16);
            var b = parseInt(hex.slice(4, 6), 16);
            var a = hex.length === 8 ? parseInt(hex.slice(6, 8), 16) : 255;
            return [r, g, b, a];
        };
        Annotation.prototype.enableBasedOnType = function () {
            var isLock = false;
            var annotation = this.pdfViewer.selectedItems.annotations[0];
            if (annotation && annotation.annotationSettings) {
                isLock = annotation.annotationSettings.isLock;
                if (isLock && this.checkAllowedInteractions('PropertyChange', annotation)) {
                    isLock = false;
                }
            }
            if (!ej2_base_1.Browser.isDevice || this.pdfViewer.enableDesktopMode) {
                if (!isLock && this.pdfViewer.selectedItems.annotations[0]) {
                    if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Stamp' ||
                        this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Image') {
                        this.pdfViewer.toolbar.annotationToolbarModule.enableStampAnnotationPropertiesTools(true);
                    }
                    else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'StickyNotes') {
                        this.pdfViewer.toolbar.annotationToolbarModule.enableStampAnnotationPropertiesTools(true);
                    }
                    else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Path' ||
                        this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage' ||
                        this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText') {
                        this.pdfViewer.toolbar.annotationToolbarModule.enableAnnotationPropertiesTools(false);
                    }
                    else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {
                        this.pdfViewer.toolbar.annotationToolbarModule.enableFreeTextAnnotationPropertiesTools(true);
                    }
                    else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature') {
                        this.pdfViewer.toolbar.annotationToolbarModule.enableSignaturePropertiesTools(true);
                    }
                    else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ink') {
                        this.pdfViewer.toolbar.annotationToolbarModule.enableSignaturePropertiesTools(true);
                    }
                    else {
                        if (this.pdfViewer.selectedItems.annotations.length === 1 &&
                            this.pdfViewer.selectedItems.annotations[0].formFieldAnnotationType === null &&
                            this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType !== 'Redaction') {
                            this.pdfViewer.toolbar.annotationToolbarModule.enableAnnotationPropertiesTools(true);
                        }
                    }
                }
                else if (this.pdfViewer.annotationModule && (!ej2_base_1.isNullOrUndefined(this.pdfViewer.annotationModule.textMarkupAnnotationModule)
                    && this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation)
                    && (ej2_base_1.Browser.isDevice && this.pdfViewer.enableDesktopMode)) {
                    this.pdfViewer.toolbarModule.annotationToolbarModule.enableTextMarkupAnnotationPropertiesTools(true);
                }
            }
        };
        Annotation.prototype.getProperDate = function (date) {
            var dateObject = new Date(date.toString());
            if (isNaN(dateObject.getFullYear())) {
                var dateString = date.slice(2, 16);
                dateString = dateString.slice(0, 4) + '/' + dateString.slice(4, 6) + '/' + dateString.slice(6, 8) + ' ' + dateString.slice(8, 10) + ':' + dateString.slice(10, 12) + ':' + dateString.slice(12, 14);
                dateObject = new Date(dateString);
            }
            return (dateObject.getMonth() + 1) + '/' + dateObject.getDate() + '/' + dateObject.getFullYear() + ' ' + dateObject.getHours() + ':' + dateObject.getMinutes() + ':' + dateObject.getSeconds();
        };
        Annotation.prototype.getPageCollection = function (pageAnnotations, pageNumber) {
            var index = null;
            for (var i = 0; i < pageAnnotations.length; i++) {
                if (pageAnnotations[parseInt(i.toString(), 10)].pageIndex === pageNumber) {
                    index = i;
                    break;
                }
            }
            return index;
        };
        Annotation.prototype.getAnnotationWithId = function (annotations, id) {
            var annotation;
            for (var i = 0; i < annotations.length; i++) {
                if (id === annotations[parseInt(i.toString(), 10)].id) {
                    annotation = annotations[parseInt(i.toString(), 10)];
                }
            }
            return annotation;
        };
        Annotation.prototype.getEventPageNumber = function (event) {
            var eventTarget = event.target;
            var eventParentElement = event.target.parentElement;
            if (eventTarget.classList.contains('e-pv-hyperlink')) {
                eventTarget = eventParentElement;
            }
            else if (eventParentElement && eventParentElement.classList.contains('foreign-object') && eventParentElement.parentElement && eventParentElement.parentElement.parentElement && eventParentElement.parentElement.parentElement.parentElement) {
                eventTarget = eventParentElement.parentElement.parentElement.parentElement;
            }
            else if (eventTarget.classList.contains('e-pdfviewer-formFields')) {
                eventTarget = eventParentElement;
            }
            var pageString;
            if (eventTarget) {
                pageString = eventTarget.id.split('_text_')[1] || eventTarget.id.split('_textLayer_')[1] || eventTarget.id.split('_annotationCanvas_')[1] || eventTarget.id.split('_pageDiv_')[1];
            }
            if (isNaN(parseInt(pageString, 10))) {
                event = this.pdfViewerBase.annotationEvent && this.pdfViewerBase.annotationEvent.target.id === eventTarget.id ?
                    this.pdfViewerBase.annotationEvent : event;
                eventTarget = event.target;
                if (eventTarget && eventTarget.id) {
                    pageString = eventTarget.id.split('_text_')[1] || eventTarget.id.split('_textLayer_')[1] || eventTarget.id.split('_annotationCanvas_')[1] || eventTarget.id.split('_pageDiv_')[1];
                }
                if (!ej2_base_1.isNullOrUndefined(this.pdfViewerBase.annotationEvent) &&
                    (!ej2_base_1.isNullOrUndefined(this.pdfViewerBase.annotationEvent.target)) && (ej2_base_1.isNullOrUndefined(pageString))) {
                    pageString = this.pdfViewerBase.annotationEvent.target.id.split('_textLayer_')[1];
                }
            }
            return parseInt(pageString, 10);
        };
        Annotation.prototype.getAnnotationComments = function (commentsAnnotations, parentAnnotation, author) {
            var newArray = [];
            var annotationObject = null;
            if (commentsAnnotations) {
                if (commentsAnnotations.length > 0) {
                    for (var i = 0; i < commentsAnnotations.length; i++) {
                        var annotation = commentsAnnotations[parseInt(i.toString(), 10)];
                        annotationObject = {
                            shapeAnnotationType: 'sticky', author: annotation.Author, modifiedDate: annotation.ModifiedDate, note: annotation.Note, state: annotation.state, stateModel: annotation.stateModel,
                            comments: [], review: { state: annotation.State, stateModel: annotation.StateModel,
                                modifiedDate: annotation.ModifiedDate, author: annotation.Author },
                            annotName: annotation.AnnotName, parentId: parentAnnotation.AnnotName, subject: annotation.Subject,
                            isLock: annotation.IsLock
                        };
                        newArray[newArray.length] = annotationObject;
                    }
                }
            }
            return newArray;
        };
        Annotation.prototype.getRandomNumber = function () {
            return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
                var random = Math.random() * 16 | 0;
                var v = c === 'x' ? random : (random & 0x3 | 0x8);
                return random.toString(16);
            });
        };
        Annotation.prototype.createGUID = function () {
            return this.getRandomNumber();
        };
        Annotation.prototype.createBlendAnnotationsIntoCanvas = function (pageDiv, pageWidth, pageHeight, pageNumber, displayMode) {
            var canvas = this.pdfViewerBase.getElement('_blendAnnotationsIntoCanvas_' + pageNumber);
            if (canvas) {
                this.pdfViewerBase.updateCanvas(canvas, pageWidth, pageHeight, pageNumber);
                return canvas;
            }
            else {
                var annotationCanvas = ej2_base_1.createElement('canvas', { id: this.pdfViewer.element.id + '_blendAnnotationsIntoCanvas_' + pageNumber, className: 'e-pv-annotation-canvas' });
                this.pdfViewerBase.updateCanvas(annotationCanvas, pageWidth, pageHeight, pageNumber);
                annotationCanvas.style['mixBlendMode'] = 'multiply';
                pageDiv.appendChild(annotationCanvas);
                return annotationCanvas;
            }
        };
        Annotation.prototype.resizeAnnotations = function (width, height, pageNumber) {
            var _this = this;
            ['_annotationCanvas_', '_blendAnnotationsIntoCanvas_'].forEach(function (id) {
                var canvas = _this.pdfViewerBase.getElement(id + pageNumber);
                if (canvas) {
                    canvas.style.width = width + 'px';
                    canvas.style.height = height + 'px';
                    _this.pdfViewerBase.applyElementStyles(canvas, pageNumber);
                }
            });
        };
        Annotation.prototype.clearAnnotationCanvas = function (pageNumber) {
            var _this = this;
            var zoom = this.pdfViewerBase.getZoomFactor();
            var ratio = this.pdfViewerBase.getZoomRatio(zoom);
            var canvasIds = ['_annotationCanvas_', '_blendAnnotationsIntoCanvas_'];
            canvasIds.forEach(function (id) {
                var canvas = _this.pdfViewerBase.getElement(id + pageNumber);
                if (canvas) {
                    var width = _this.pdfViewerBase.pageSize[parseInt(pageNumber.toString(), 10)].width;
                    var height = _this.pdfViewerBase.pageSize[parseInt(pageNumber.toString(), 10)].height;
                    canvas.width = width * ratio;
                    canvas.height = height * ratio;
                    canvas.style.width = width * zoom + 'px';
                    canvas.style.height = height * zoom + 'px';
                }
            });
        };
        Annotation.prototype.renderAnnotations = function (pageNumber, shapeAnnotation, measureShapeAnnotation, textMarkupAnnotation, canvas, isImportAnnotations, isAnnotOrderAction, freeTextAnnotation, inkAnnotation, isLastAnnot, redactionAnnotation) {
            if (ej2_base_1.isNullOrUndefined(isLastAnnot) || isLastAnnot) {
                this.clearAnnotationCanvas(pageNumber);
            }
            if (this.shapeAnnotationModule && shapeAnnotation) {
                if (isImportAnnotations) {
                    this.shapeAnnotationModule.renderShapeAnnotations(shapeAnnotation, pageNumber, true);
                }
                else {
                    this.shapeAnnotationModule.renderShapeAnnotations(shapeAnnotation, pageNumber, null, isAnnotOrderAction);
                }
            }
            if (this.measureAnnotationModule && measureShapeAnnotation) {
                if (isImportAnnotations) {
                    this.measureAnnotationModule.renderMeasureShapeAnnotations(measureShapeAnnotation, pageNumber, true);
                }
                else {
                    this.measureAnnotationModule.renderMeasureShapeAnnotations(measureShapeAnnotation, pageNumber, null, isAnnotOrderAction);
                }
            }
            if (this.redactionAnnotationModule) {
                if (ej2_base_1.isNullOrUndefined(redactionAnnotation) || (redactionAnnotation[0] && redactionAnnotation[0].RedactionType !== 'textRedact')) {
                    if (isImportAnnotations) {
                        this.redactionAnnotationModule.renderRedactionAnnotations(redactionAnnotation, pageNumber, true);
                    }
                    else {
                        this.redactionAnnotationModule.renderRedactionAnnotations(redactionAnnotation, pageNumber, null, isAnnotOrderAction);
                    }
                }
            }
            if (this.freeTextAnnotationModule && freeTextAnnotation) {
                if (isImportAnnotations) {
                    this.freeTextAnnotationModule.renderFreeTextAnnotations(freeTextAnnotation, pageNumber, true, null, true);
                }
                else {
                    this.freeTextAnnotationModule.renderFreeTextAnnotations(freeTextAnnotation, pageNumber, null, isAnnotOrderAction);
                }
            }
            if (this.inkAnnotationModule && inkAnnotation) {
                if (isImportAnnotations) {
                    this.inkAnnotationModule.renderExistingInkSignature(inkAnnotation, pageNumber, true, null, true);
                }
                else {
                    this.inkAnnotationModule.renderExistingInkSignature(inkAnnotation, pageNumber, null, isAnnotOrderAction);
                }
            }
            if (ej2_base_1.isNullOrUndefined(isLastAnnot) || isLastAnnot) {
                this.pdfViewer.drawing.refreshCanvasDiagramLayer(canvas, pageNumber);
            }
            var highlighCanvas = this.pdfViewerBase.getElement('_blendAnnotationsIntoCanvas_' + pageNumber);
            if (highlighCanvas && (ej2_base_1.isNullOrUndefined(isLastAnnot) || isLastAnnot)) {
                this.pdfViewer.drawing.refreshCanvasDiagramLayer(canvas, pageNumber);
            }
            if (!this.pdfViewerBase.isInkAdded && this.pdfViewer.tool === 'Ink' && this.pdfViewer.currentPageNumber - 1 === pageNumber) {
                var currentcanvas = this.pdfViewerBase.getAnnotationCanvas('_annotationCanvas_', (this.pdfViewer.currentPageNumber - 1));
                var zoom = this.pdfViewerBase.getZoomFactor();
                var ratio = this.pdfViewerBase.getWindowDevicePixelRatio();
                var context = currentcanvas.getContext('2d');
                var thickness = this.pdfViewer.inkAnnotationSettings.thickness ? this.pdfViewer.inkAnnotationSettings.thickness : 1;
                var opacity = this.pdfViewer.inkAnnotationSettings.opacity ? this.pdfViewer.inkAnnotationSettings.opacity : 1;
                var strokeColor = this.pdfViewer.inkAnnotationSettings.strokeColor ? this.pdfViewer.inkAnnotationSettings.strokeColor : '#ff0000';
                if (!ej2_base_1.Browser.isDevice || (ej2_base_1.Browser.isDevice && zoom <= 0.7)) {
                    context.setTransform(ratio, 0, 0, ratio, 0, 0);
                }
                context.beginPath();
                context.lineJoin = 'round';
                context.lineCap = 'round';
                context.lineWidth = thickness * zoom > 1 ? thickness * zoom : thickness;
                context.strokeStyle = strokeColor;
                context.globalAlpha = opacity;
                var collectionData = ej2_drawings_1.processPathData(this.pdfViewer.annotationModule.inkAnnotationModule.updateInkDataWithZoom());
                var csData = ej2_drawings_1.splitArrayCollection(collectionData);
                for (var j = 0; j < csData.length; j++) {
                    var pathValue = csData[parseInt(j.toString(), 10)];
                    switch (pathValue.command) {
                        case 'M':
                            context.moveTo(pathValue.x, pathValue.y);
                            break;
                        case 'L':
                            context.lineTo(pathValue.x, pathValue.y);
                            break;
                        default:
                            break;
                    }
                }
                context.stroke();
                context.closePath();
                if (!ej2_base_1.isNullOrUndefined(this.pdfViewer.toolbarModule) &&
                    !ej2_base_1.isNullOrUndefined(this.pdfViewer.toolbarModule.annotationToolbarModule)) {
                    this.pdfViewer.toolbar.annotationToolbarModule.inkAnnotationSelected = true;
                }
            }
            if (this.textMarkupAnnotationModule && (ej2_base_1.isNullOrUndefined(isLastAnnot) || isLastAnnot ||
                (isImportAnnotations && textMarkupAnnotation))) {
                if (isImportAnnotations) {
                    this.textMarkupAnnotationModule.renderTextMarkupAnnotationsInPage(textMarkupAnnotation, pageNumber, true);
                }
                else {
                    this.textMarkupAnnotationModule.renderTextMarkupAnnotationsInPage(textMarkupAnnotation, pageNumber);
                }
            }
            if (this.redactionAnnotationModule && (ej2_base_1.isNullOrUndefined(isLastAnnot) || isLastAnnot ||
                (isImportAnnotations && redactionAnnotation))) {
                if (isImportAnnotations) {
                    this.redactionAnnotationModule.renderTextRedactAnnotationsInPage(redactionAnnotation, pageNumber, true);
                }
                else {
                    this.redactionAnnotationModule.renderTextRedactAnnotationsInPage(redactionAnnotation, pageNumber);
                }
            }
        };
        Annotation.prototype.storeAnnotations = function (pageNumber, annotation, annotationId) {
            var sessionSize = this.pdfViewerBase.sessionStorageManager.getWindowSessionStorageSize();
            if (sessionSize > 4500) {
                this.pdfViewerBase.isStorageExceed = true;
                if (!(this.pdfViewerBase.isFormStorageExceed)) {
                    if (this.pdfViewer.formFieldsModule) {
                        this.pdfViewer.formFieldsModule.clearFormFieldStorage();
                    }
                }
            }
            var storeObject = this.pdfViewer.annotationsCollection.get(this.pdfViewerBase.documentId + annotationId);
            var index = 0;
            if (!storeObject) {
                this.storeAnnotationCollections(annotation, pageNumber);
                var pageAnnotation = { pageIndex: pageNumber, annotations: [] };
                pageAnnotation.annotations.push(annotation);
                index = pageAnnotation.annotations.indexOf(annotation);
                var annotationCollection = [];
                annotationCollection.push(pageAnnotation);
                this.pdfViewer.annotationsCollection.set(this.pdfViewerBase.documentId + annotationId, annotationCollection);
            }
            else {
                this.storeAnnotationCollections(annotation, pageNumber);
                this.pdfViewer.annotationsCollection.delete(this.pdfViewerBase.documentId + annotationId);
                var pageIndex_1 = this.pdfViewer.annotationModule.getPageCollection(storeObject, pageNumber);
                if (pageIndex_1 != null && storeObject[parseInt(pageIndex_1.toString(), 10)]) {
                    storeObject[parseInt(pageIndex_1.toString(), 10)].
                        annotations.filter(function (item, index) {
                        if (item.annotName === annotation.annotName) {
                            storeObject[parseInt(pageIndex_1.toString(), 10)].annotations.splice(index, 1);
                        }
                    });
                    storeObject[parseInt(pageIndex_1.toString(), 10)].annotations.push(annotation);
                    index = storeObject[parseInt(pageIndex_1.toString(), 10)].annotations.indexOf(annotation);
                }
                else {
                    var markupAnnotation = { pageIndex: pageNumber, annotations: [] };
                    markupAnnotation.annotations.push(annotation);
                    index = markupAnnotation.annotations.indexOf(annotation);
                    storeObject.push(markupAnnotation);
                }
                this.pdfViewer.annotationsCollection.set(this.pdfViewerBase.documentId + annotationId, storeObject);
            }
            return index;
        };
        Annotation.prototype.getArrowType = function (type) {
            var decoratorShapes = 'None';
            switch (type) {
                case 'ClosedArrow':
                case 'Closed':
                    decoratorShapes = 'Arrow';
                    break;
                case 'OpenArrow':
                case 'Open':
                    decoratorShapes = 'OpenArrow';
                    break;
                case 'Square':
                    decoratorShapes = 'Square';
                    break;
                case 'Circle':
                case 'Round':
                    decoratorShapes = 'Circle';
                    break;
                case 'Diamond':
                    decoratorShapes = 'Diamond';
                    break;
                case 'Butt':
                    decoratorShapes = 'Butt';
                    break;
                case 'Slash':
                    break;
            }
            return decoratorShapes;
        };
        Annotation.prototype.getArrowTypeForCollection = function (arrow) {
            var arrowType;
            switch (arrow) {
                case 'Arrow':
                    arrowType = 'ClosedArrow';
                    break;
                case 'OpenArrow':
                case 'Square':
                case 'Circle':
                case 'Diamond':
                case 'None':
                    arrowType = arrow.toString();
                    break;
                case 'Butt':
                    arrowType = 'Butt';
                    break;
            }
            return arrowType;
        };
        Annotation.prototype.getBounds = function (bound, pageIndex) {
            var pageDetails = this.pdfViewerBase.pageSize[parseInt(pageIndex.toString(), 10)];
            bound.top = bound.top ? bound.top : 0;
            bound.left = bound.left ? bound.left : 0;
            if (pageDetails) {
                if (pageDetails.rotation === 1) {
                    return { left: bound.top, top: pageDetails.width - (bound.left + bound.width), width: bound.height, height: bound.width };
                }
                else if (pageDetails.rotation === 2) {
                    return { left: pageDetails.width - bound.left - bound.width, top: pageDetails.height - bound.top - bound.height,
                        width: bound.width, height: bound.height };
                }
                else if (pageDetails.rotation === 3) {
                    return { left: pageDetails.height - bound.top - bound.height, top: bound.left, width: bound.height, height: bound.width };
                }
                else {
                    return bound;
                }
            }
            else {
                return bound;
            }
        };
        Annotation.prototype.getInkBounds = function (bound, pageIndex) {
            var pageDetails = this.pdfViewerBase.pageSize[parseInt(pageIndex.toString(), 10)];
            if (pageDetails) {
                if (pageDetails.rotation === 1) {
                    return { x: bound.y, y: pageDetails.width - (bound.x + bound.width), width: bound.height, height: bound.width };
                }
                else if (pageDetails.rotation === 2) {
                    return { x: pageDetails.width - bound.x - bound.width, y: pageDetails.height - bound.y - bound.height,
                        width: bound.width, height: bound.height };
                }
                else if (pageDetails.rotation === 3) {
                    return { x: pageDetails.height - bound.y - bound.height, y: bound.x, width: bound.height, height: bound.width };
                }
                else {
                    return bound;
                }
            }
            else {
                return bound;
            }
        };
        Annotation.prototype.getVertexPoints = function (points, pageIndex) {
            if (points) {
                var pageDetails = this.pdfViewerBase.pageSize[parseInt(pageIndex.toString(), 10)];
                if (pageDetails.rotation === 1) {
                    var points1 = [];
                    for (var i = 0; i < points.length; i++) {
                        var point = { x: points[parseInt(i.toString(), 10)].y,
                            y: pageDetails.width - points[parseInt(i.toString(), 10)].x };
                        points1.push(point);
                    }
                    return points1;
                }
                else if (pageDetails.rotation === 2) {
                    var points2 = [];
                    for (var i = 0; i < points.length; i++) {
                        var point = { x: pageDetails.width - points[parseInt(i.toString(), 10)].x,
                            y: pageDetails.height - points[parseInt(i.toString(), 10)].y };
                        points2.push(point);
                    }
                    return points2;
                }
                else if (pageDetails.rotation === 3) {
                    var points3 = [];
                    for (var i = 0; i < points.length; i++) {
                        var point = { x: pageDetails.height - points[parseInt(i.toString(), 10)].y,
                            y: points[parseInt(i.toString(), 10)].x };
                        points3.push(point);
                    }
                    return points3;
                }
                else {
                    return points;
                }
            }
        };
        Annotation.prototype.getStoredAnnotations = function (pageIndex, shapeAnnotations, idString) {
            var annotationCollection;
            var storeObject = this.pdfViewer.annotationsCollection.get(this.pdfViewerBase.documentId + idString);
            if (storeObject) {
                var index = this.pdfViewer.annotationModule.getPageCollection(storeObject, pageIndex);
                if (index != null && storeObject[parseInt(index.toString(), 10)]) {
                    annotationCollection = storeObject[parseInt(index.toString(), 10)].annotations;
                }
                else {
                    annotationCollection = null;
                }
            }
            else {
                annotationCollection = null;
            }
            return annotationCollection;
        };
        Annotation.prototype.triggerAnnotationPropChange = function (pdfAnnotationBase, isColor, isStroke, isThickness, isOpacity, isLineStart, isLineEnd, isDashArray, isFreeText, previousText, currentText) {
            var index = this.getAnnotationIndex(pdfAnnotationBase.pageIndex, pdfAnnotationBase.id);
            var type = this.getAnnotationType(pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.measureType);
            var eventArgs = { name: 'annotationPropertiesChange', pageIndex: pdfAnnotationBase.pageIndex, annotationId: pdfAnnotationBase.annotName, annotationType: type, isColorChanged: isColor, isOpacityChanged: isOpacity, isThicknessChanged: isThickness, isStrokeColorChanged: isStroke };
            if (isFreeText) {
                eventArgs.isFreeTextChanged = isFreeText;
                eventArgs.previousText = previousText;
                eventArgs.currentText = currentText;
            }
            if (isLineStart) {
                eventArgs.isLineHeadStartStyleChanged = isLineStart;
            }
            if (isLineEnd) {
                eventArgs.isLineHeadEndStyleChanged = isLineEnd;
            }
            if (isDashArray) {
                eventArgs.isBorderDashArrayChanged = isDashArray;
            }
            this.pdfViewer.trigger('annotationPropertiesChange', eventArgs);
        };
        Annotation.prototype.triggerAnnotationAdd = function (pdfAnnotationBase) {
            var setting = {
                fillColor: pdfAnnotationBase.fillColor, thickness: pdfAnnotationBase.thickness,
                author: pdfAnnotationBase.author, subject: pdfAnnotationBase.subject,
                modifiedDate: pdfAnnotationBase.modifiedDate
            };
            var bounds = { left: pdfAnnotationBase.wrapper.bounds.x, top: pdfAnnotationBase.wrapper.bounds.y,
                width: pdfAnnotationBase.wrapper.bounds.width, height: pdfAnnotationBase.wrapper.bounds.height };
            var type = this.getAnnotationType(pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.measureType);
            if (type === 'Line' || type === 'Arrow' || type === 'Distance' || type === 'Perimeter') {
                setting.lineHeadStartStyle = this.getArrowString(pdfAnnotationBase.sourceDecoraterShapes);
                setting.lineHeadEndStyle = this.getArrowString(pdfAnnotationBase.taregetDecoraterShapes);
                setting.borderDashArray = pdfAnnotationBase.borderDashArray;
            }
            if (type === 'Redaction') {
                setting.markerBorderColor = pdfAnnotationBase.markerBorderColor;
                setting.markerFillColor = pdfAnnotationBase.markerFillColor;
                setting.markerOpacity = pdfAnnotationBase.markerOpacity;
                setting.overlayText = pdfAnnotationBase.overlayText;
                setting.textAlignment = pdfAnnotationBase.textAlign;
                setting.isRepeat = pdfAnnotationBase.isRepeat;
                setting.fontColor = pdfAnnotationBase.fontColor;
                setting.fontFamily = pdfAnnotationBase.fontFamily;
                setting.fontSize = pdfAnnotationBase.fontSize;
            }
            else {
                setting.opacity = pdfAnnotationBase.opacity;
                setting.strokeColor = pdfAnnotationBase.strokeColor;
            }
            var labelSettings;
            if (this.pdfViewer.enableShapeLabel) {
                labelSettings = {
                    fontColor: pdfAnnotationBase.fontColor, fontSize: pdfAnnotationBase.fontSize, fontFamily: pdfAnnotationBase.fontFamily,
                    opacity: pdfAnnotationBase.labelOpacity, labelContent: pdfAnnotationBase.labelContent,
                    fillColor: pdfAnnotationBase.labelFillColor
                };
                this.pdfViewer.fireAnnotationAdd(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, bounds, setting, null, null, null, labelSettings);
            }
            else {
                this.pdfViewer.fireAnnotationAdd(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, bounds, setting);
            }
        };
        Annotation.prototype.triggerAnnotationResize = function (pdfAnnotationBase) {
            var setting = {
                opacity: pdfAnnotationBase.opacity, fillColor: pdfAnnotationBase.fillColor, strokeColor: pdfAnnotationBase.strokeColor,
                thickness: pdfAnnotationBase.thickness, author: pdfAnnotationBase.author, subject: pdfAnnotationBase.subject,
                modifiedDate: pdfAnnotationBase.modifiedDate
            };
            var annotationBounds = pdfAnnotationBase.bounds;
            var currentPosition = { left: annotationBounds.x, top: annotationBounds.y, x: annotationBounds.x,
                y: annotationBounds.y, width: annotationBounds.width, height: annotationBounds.height };
            var previousPosition = { left: annotationBounds.oldProperties.x, top: annotationBounds.oldProperties.y,
                width: annotationBounds.oldProperties.width, height: annotationBounds.oldProperties.height };
            var type = this.getAnnotationType(pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.measureType);
            if (type === 'Line' || type === 'Arrow' || type === 'Distance' || type === 'Perimeter') {
                setting.lineHeadStartStyle = this.getArrowString(pdfAnnotationBase.sourceDecoraterShapes);
                setting.lineHeadEndStyle = this.getArrowString(pdfAnnotationBase.taregetDecoraterShapes);
                setting.borderDashArray = pdfAnnotationBase.borderDashArray;
            }
            var labelSettings;
            if (this.pdfViewer.enableShapeLabel && (pdfAnnotationBase.shapeAnnotationType !== 'HandWrittenSignature')) {
                labelSettings = {
                    fontColor: pdfAnnotationBase.fontColor, fontSize: pdfAnnotationBase.fontSize, fontFamily: pdfAnnotationBase.fontFamily,
                    opacity: pdfAnnotationBase.labelOpacity, labelContent: pdfAnnotationBase.labelContent,
                    fillColor: pdfAnnotationBase.labelFillColor, notes: pdfAnnotationBase.notes
                };
                this.pdfViewer.fireAnnotationResize(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, currentPosition, setting, null, null, null, labelSettings);
            }
            else {
                if (pdfAnnotationBase.shapeAnnotationType === 'HandWrittenSignature' || pdfAnnotationBase.shapeAnnotationType === 'SignatureText' || pdfAnnotationBase.shapeAnnotationType === 'SignatureImage') {
                    this.pdfViewer.fireSignatureResize(pdfAnnotationBase.pageIndex, pdfAnnotationBase.signatureName, pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.opacity, pdfAnnotationBase.strokeColor, pdfAnnotationBase.thickness, currentPosition, previousPosition);
                }
                else {
                    this.pdfViewer.fireAnnotationResize(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, currentPosition, setting);
                }
            }
        };
        Annotation.prototype.triggerAnnotationMove = function (pdfAnnotationBase, isMoving) {
            var setting = {
                opacity: pdfAnnotationBase.opacity, fillColor: pdfAnnotationBase.fillColor, strokeColor: pdfAnnotationBase.strokeColor,
                thickness: pdfAnnotationBase.thickness, author: pdfAnnotationBase.author, subject: pdfAnnotationBase.subject,
                modifiedDate: pdfAnnotationBase.modifiedDate
            };
            var annotationBounds = pdfAnnotationBase.bounds;
            var currentPosition = { left: annotationBounds.x, top: annotationBounds.y,
                x: annotationBounds.x, y: annotationBounds.y, width: annotationBounds.width, height: annotationBounds.height };
            var previousPosition = { left: annotationBounds.oldProperties.x ?
                    annotationBounds.oldProperties.x : annotationBounds.x, top: annotationBounds.oldProperties.y ?
                    annotationBounds.oldProperties.y : annotationBounds.y, width: annotationBounds.width, height: annotationBounds.height };
            var type = this.getAnnotationType(pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.measureType);
            if (type === 'Line' || type === 'Arrow' || type === 'Distance' || type === 'Perimeter') {
                setting.lineHeadStartStyle = this.getArrowString(pdfAnnotationBase.sourceDecoraterShapes);
                setting.lineHeadEndStyle = this.getArrowString(pdfAnnotationBase.taregetDecoraterShapes);
                setting.borderDashArray = pdfAnnotationBase.borderDashArray;
            }
            if (pdfAnnotationBase.shapeAnnotationType === 'HandWrittenSignature' || pdfAnnotationBase.shapeAnnotationType === 'SignatureText' || pdfAnnotationBase.shapeAnnotationType === 'SignatureImage') {
                this.pdfViewer.fireSignatureMove(pdfAnnotationBase.pageIndex, pdfAnnotationBase.signatureName, pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.opacity, pdfAnnotationBase.strokeColor, pdfAnnotationBase.thickness, previousPosition, currentPosition);
            }
            else {
                if (isMoving) {
                    this.pdfViewer.fireAnnotationMoving(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, setting, previousPosition, currentPosition);
                }
                else {
                    this.pdfViewer.fireAnnotationMove(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, setting, previousPosition, currentPosition);
                }
            }
        };
        Annotation.prototype.annotationSelect = function (annotationId, pageNumber, annotation, annotationCollection, isDblClick, isSelected) {
            var annotSettings;
            if (annotation.shapeAnnotationType === 'textMarkup') {
                annotSettings = { type: 'TextMarkup', subType: annotation.subject, opacity: annotation.opacity, color: annotation.color, textMarkupContent: annotation.textMarkupContent, textMarkupStartIndex: annotation.textMarkupStartIndex, textMarkupEndIndex: annotation.textMarkupEndIndex, customData: annotation.customData };
            }
            else if (annotation.shapeAnnotationType === 'StickyNotes') {
                annotSettings = { type: 'StickyNotes', opacity: annotation.opacity, customData: annotation.customData };
            }
            else if (annotation.shapeAnnotationType === 'Stamp' || annotation.shapeAnnotationType === 'Image') {
                annotSettings = { type: 'Stamp', opacity: annotation.opacity, customData: annotation.customData };
            }
            else if (annotation.shapeAnnotationType === 'Ink') {
                annotSettings = {
                    type: 'Ink', opacity: annotation.opacity, strokeColor: annotation.strokeColor, thickness: annotation.thickness, modifiedDate: annotation.modifiedDate,
                    width: annotation.bounds.width, height: annotation.bounds.height, left: annotation.bounds.x,
                    top: annotation.bounds.y, data: annotation.data, customData: annotation.customData
                };
            }
            else if (annotation.shapeAnnotationType === 'FreeText') {
                annotSettings = {
                    type: 'FreeText', opacity: annotation.opacity, fillColor: annotation.fillColor,
                    strokeColor: annotation.strokeColor, thickness: annotation.thickness, content: annotation.dynamicText,
                    fontFamily: annotation.fontFamily, fontSize: annotation.fontSize, fontColor: annotation.fontColor,
                    textAlign: annotation.textAlign, fontStyle: this.updateFreeTextFontStyle(annotation.font),
                    customData: annotation.customData
                };
            }
            else if (annotation.measureType === '') {
                if (annotation.shapeAnnotationType === 'Line') {
                    annotSettings = { type: 'Shape', subType: 'Line', opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor, thickness: annotation.thickness, borderDashArray: annotation.borderDashArray, lineHeadStartStyle: annotation.sourceDecoraterShapes, lineHeadEndStyle: annotation.taregetDecoraterShapes, customData: annotation.customData };
                }
                else if (annotation.shapeAnnotationType === 'Arrow' || annotation.shapeAnnotationType === 'LineWidthArrowHead') {
                    annotSettings = { type: 'Shape', subType: 'Arrow', opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor, thickness: annotation.thickness, borderDashArray: annotation.borderDashArray, lineHeadStartStyle: annotation.sourceDecoraterShapes, lineHeadEndStyle: annotation.taregetDecoraterShapes, customData: annotation.customData };
                }
                else if (annotation.shapeAnnotationType === 'Rectangle') {
                    annotSettings = {
                        type: 'Shape', subType: 'Rectangle', opacity: annotation.opacity, fillColor: annotation.fillColor,
                        strokeColor: annotation.strokeColor, thickness: annotation.thickness, customData: annotation.customData
                    };
                }
                else if (annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Ellipse') {
                    annotSettings = {
                        type: 'Shape', subType: 'Circle', opacity: annotation.opacity, fillColor: annotation.fillColor,
                        strokeColor: annotation.strokeColor, thickness: annotation.thickness, customData: annotation.customData
                    };
                }
                else if (annotation.shapeAnnotationType === 'Polygon') {
                    annotSettings = {
                        type: 'Shape', subType: 'Polygon', opacity: annotation.opacity, fillColor: annotation.fillColor,
                        strokeColor: annotation.strokeColor, thickness: annotation.thickness, customData: annotation.customData
                    };
                }
            }
            else if (annotation.measureType !== '') {
                if (annotation.measureType === 'Distance') {
                    annotSettings = { type: 'Measure', subType: 'Distance', opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor, thickness: annotation.thickness, borderDashArray: annotation.borderDashArray, lineHeadStartStyle: annotation.sourceDecoraterShapes, lineHeadEndStyle: annotation.taregetDecoraterShapes, customData: annotation.customData };
                }
                else if (annotation.measureType === 'Perimeter') {
                    annotSettings = { type: 'Measure', subType: 'Perimeter', opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor, thickness: annotation.thickness, borderDashArray: annotation.borderDashArray, lineHeadStartStyle: annotation.sourceDecoraterShapes, lineHeadEndStyle: annotation.taregetDecoraterShapes, customData: annotation.customData };
                }
                else if (annotation.measureType === 'Area') {
                    annotSettings = {
                        type: 'Measure', subType: 'Area', opacity: annotation.opacity, fillColor: annotation.fillColor,
                        strokeColor: annotation.strokeColor, thickness: annotation.thickness, customData: annotation.customData
                    };
                }
                else if (annotation.measureType === 'Radius') {
                    annotSettings = {
                        type: 'Measure', subType: 'Radius', opacity: annotation.opacity, fillColor: annotation.fillColor,
                        strokeColor: annotation.strokeColor, thickness: annotation.thickness, customData: annotation.customData
                    };
                }
                else if (annotation.measureType === 'Volume') {
                    annotSettings = {
                        type: 'Measure', subType: 'Volume', opacity: annotation.opacity, fillColor: annotation.fillColor,
                        strokeColor: annotation.strokeColor, thickness: annotation.thickness, calibrate: annotation.calibrate,
                        annotationId: annotation.annotName, customData: annotation.customData
                    };
                }
            }
            var overlappedCollection = [];
            var overlappedAnnotations = this.getOverlappedAnnotations(annotation, pageNumber);
            if (overlappedAnnotations && this.overlappedCollections) {
                var overlappedCollections = [];
                for (var i = 0; i < overlappedAnnotations.length; i++) {
                    if ((overlappedAnnotations[parseInt(i.toString(), 10)].shapeAnnotationType !== 'textMarkup' && this.overlappedCollections && this.overlappedCollections.length > 0) || isSelected) {
                        for (var j = 0; j < this.overlappedCollections.length; j++) {
                            if (overlappedAnnotations[parseInt(i.toString(), 10)].annotName ===
                                this.overlappedCollections[parseInt(j.toString(), 10)].annotName) {
                                overlappedCollections.push(overlappedAnnotations[parseInt(i.toString(), 10)]);
                                break;
                            }
                        }
                    }
                    else {
                        overlappedCollections.push(overlappedAnnotations[parseInt(i.toString(), 10)]);
                    }
                }
                overlappedAnnotations = overlappedCollections;
            }
            if (this.pdfViewer.enableMultiLineOverlap) {
                for (var i = 0; i < overlappedAnnotations.length; i++) {
                    if (overlappedAnnotations[parseInt(i.toString(), 10)].shapeAnnotationType === 'textMarkup') {
                        var isOverlapped = false;
                        for (var j = 0; j < overlappedAnnotations[parseInt(i.toString(), 10)].bounds.length; j++) {
                            var bounds = this.orderTextMarkupBounds(overlappedAnnotations[parseInt(i.toString(), 10)].bounds[parseInt(j.toString(), 10)]);
                            var clickedPosition = this.textMarkupAnnotationModule.annotationClickPosition;
                            if (clickedPosition && (clickedPosition.x || clickedPosition.y)) {
                                if (bounds.left <= clickedPosition.x && (bounds.left + bounds.width) >= clickedPosition.x) {
                                    if (bounds.top <= clickedPosition.y && (bounds.top + bounds.height) >= clickedPosition.y) {
                                        isOverlapped = true;
                                    }
                                }
                            }
                            else {
                                isOverlapped = true;
                            }
                        }
                        if (!isOverlapped) {
                            overlappedAnnotations.splice(i, 1);
                        }
                    }
                }
            }
            if (overlappedAnnotations && overlappedAnnotations.length > 0) {
                annotationCollection = overlappedAnnotations;
                for (var i = 0; i < annotationCollection.length; i++) {
                    var overlappedObject = drawing_util_1.cloneObject(annotationCollection[parseInt(i.toString(), 10)]);
                    overlappedObject.annotationId = annotationCollection[parseInt(i.toString(), 10)].annotName;
                    if (annotationId === annotationCollection[parseInt(i.toString(), 10)].annotName && annotation.measureType && annotation.measureType === 'Volume') {
                        annotSettings.calibrate = annotationCollection[parseInt(i.toString(), 10)].calibrate;
                    }
                    delete overlappedObject.annotName;
                    overlappedCollection.push(overlappedObject);
                }
            }
            else {
                overlappedCollection = null;
            }
            this.addFreeTextProperties(annotation, annotSettings);
            var annotationAddMode = annotation.annotationAddMode;
            if (!isDblClick) {
                if (annotation.shapeAnnotationType === 'Stamp' || annotation.shapeAnnotationType === 'Image') {
                    if (!this.pdfViewerBase.isNewStamp && this.annotationSelected) {
                        if (overlappedCollection) {
                            this.pdfViewer.fireAnnotationSelect(annotationId, pageNumber, annotSettings, overlappedCollection, null, null, annotationAddMode);
                        }
                        else {
                            this.pdfViewer.fireAnnotationSelect(annotationId, pageNumber, annotSettings, null, null, null, annotationAddMode);
                        }
                    }
                }
                else {
                    var module = this.textMarkupAnnotationModule;
                    var multiPageCollection = module && module.multiPageCollectionList(annotation);
                    if (multiPageCollection && multiPageCollection.length === 0) {
                        multiPageCollection = null;
                    }
                    if (this.annotationSelected) {
                        if (overlappedCollection) {
                            isSelected = false;
                            this.pdfViewer.fireAnnotationSelect(annotationId, pageNumber, annotSettings, overlappedCollection, multiPageCollection, isSelected, annotationAddMode);
                        }
                        else {
                            isSelected = true;
                            this.pdfViewer.fireAnnotationSelect(annotationId, pageNumber, annotSettings, null, multiPageCollection, isSelected, annotationAddMode);
                        }
                        if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.redactionToolbarModule) {
                            this.pdfViewer.toolbar.redactionToolbarModule.showHideDeleteIcon(true);
                        }
                    }
                }
            }
            else {
                if (annotation.shapeAnnotationType === 'Stamp' || annotation.shapeAnnotationType === 'Image') {
                    if (!this.pdfViewerBase.isNewStamp) {
                        this.pdfViewer.fireAnnotationDoubleClick(annotationId, pageNumber, annotSettings);
                    }
                }
                else {
                    this.pdfViewer.fireAnnotationDoubleClick(annotationId, pageNumber, annotSettings);
                }
            }
            this.annotationSelected = true;
        };
        Annotation.prototype.selectSignature = function (signatureId, pageNumber, signatureModule) {
            var annotBounds = signatureModule.bounds;
            var bounds = { height: annotBounds.height, width: annotBounds.width, x: annotBounds.x, y: annotBounds.y };
            if (!this.pdfViewerBase.signatureAdded && signatureModule.signatureName !== 'ink') {
                var signature = { bounds: bounds, opacity: signatureModule.opacity, thickness: signatureModule.thickness,
                    strokeColor: signatureModule.strokeColor };
                this.pdfViewer.fireSignatureSelect(signatureId, pageNumber, signature);
            }
        };
        Annotation.prototype.unselectSignature = function (signatureId, pageNumber, signatureModule) {
            var annotBounds = signatureModule.bounds;
            var bounds = { height: annotBounds.height, width: annotBounds.width, x: annotBounds.x, y: annotBounds.y };
            if (!this.pdfViewerBase.signatureAdded) {
                var signature = { bounds: bounds, opacity: signatureModule.opacity, thickness: signatureModule.thickness,
                    strokeColor: signatureModule.strokeColor };
                this.pdfViewer.fireSignatureUnselect(signatureId, pageNumber, signature);
            }
        };
        Annotation.prototype.editSignature = function (signature) {
            var currentAnnotation;
            if (signature.uniqueKey) {
                currentAnnotation = this.pdfViewer.nameTable[signature.uniqueKey];
            }
            else {
                currentAnnotation = this.pdfViewer.selectedItems.annotations[0];
            }
            var pageNumber = currentAnnotation.pageIndex;
            if (currentAnnotation.shapeAnnotationType === 'HandWrittenSignature' || currentAnnotation.shapeAnnotationType === 'SignatureText' || currentAnnotation.shapeAnnotationType === 'SignatureImage') {
                var clonedObject = drawing_util_1.cloneObject(currentAnnotation);
                var redoClonedObject = drawing_util_1.cloneObject(currentAnnotation);
                if (!(ej2_base_1.isNullOrUndefined(signature.opacity)) || currentAnnotation.opacity !== signature.opacity) {
                    redoClonedObject.opacity = signature.opacity;
                    this.pdfViewer.nodePropertyChange(currentAnnotation, { opacity: signature.opacity });
                    this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, false, true, false, clonedObject.opacity, redoClonedObject.opacity);
                    this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Opacity', '', clonedObject, redoClonedObject);
                }
                if (currentAnnotation.strokeColor !== signature.strokeColor) {
                    redoClonedObject.strokeColor = signature.strokeColor;
                    this.pdfViewer.nodePropertyChange(currentAnnotation, { strokeColor: signature.strokeColor });
                    this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, true, false, false, clonedObject.strokeColor, redoClonedObject.strokeColor);
                    this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Stroke', '', clonedObject, redoClonedObject);
                }
                if (currentAnnotation.thickness !== signature.thickness) {
                    redoClonedObject.thickness = signature.thickness;
                    this.pdfViewer.nodePropertyChange(currentAnnotation, { thickness: signature.thickness });
                    this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, false, false, true, clonedObject.thickness, redoClonedObject.thickness);
                    this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Thickness', '', clonedObject, redoClonedObject);
                }
                var zoomvalue = this.pdfViewerBase.getZoomFactor();
                if (currentAnnotation.shapeAnnotationType === 'SignatureText' && currentAnnotation.wrapper && currentAnnotation.wrapper.children && currentAnnotation.wrapper.children.length > 1 && currentAnnotation.wrapper.children[1]) {
                    currentAnnotation.wrapper.bounds.x = currentAnnotation.bounds.x + currentAnnotation.wrapper.pivot.x +
                        (this.pdfViewerBase.signatureModule.signatureTextContentLeft - (this.pdfViewerBase.signatureModule.signatureTextContentTop *
                            (zoomvalue - (zoomvalue / this.pdfViewerBase.signatureModule.signatureTextContentLeft))));
                    currentAnnotation.wrapper.bounds.y = currentAnnotation.bounds.y + ((currentAnnotation.wrapper.children[1].bounds.y -
                        currentAnnotation.bounds.y) - (currentAnnotation.wrapper.children[1].bounds.y - currentAnnotation.bounds.y) / 3) +
                        currentAnnotation.wrapper.pivot.y + (this.pdfViewerBase.signatureModule.signatureTextContentTop * zoomvalue);
                }
                this.calculateAnnotationBounds(currentAnnotation, signature);
                if (currentAnnotation.shapeAnnotationType === 'SignatureText') {
                    var oldObjectWidth = (clonedObject.bounds && clonedObject.bounds.width) ?
                        clonedObject.bounds.width : clonedObject.width;
                    var boundsRatio = signature.bounds.width / oldObjectWidth;
                    currentAnnotation.fontSize = signature.fontSize * boundsRatio;
                    this.pdfViewer.nodePropertyChange(currentAnnotation, { fontSize: currentAnnotation.fontSize });
                }
                currentAnnotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();
                this.pdfViewer.renderDrawing();
                this.pdfViewerBase.signatureModule.modifySignatureCollection(null, pageNumber, currentAnnotation, true);
            }
        };
        Annotation.prototype.deletComment = function (commentDiv) {
            if (commentDiv.parentElement.firstChild === commentDiv) {
                this.deleteAnnotation();
            }
            else {
                this.pdfViewer.annotationModule.stickyNotesAnnotationModule.modifyCommentDeleteProperty(commentDiv.parentElement, commentDiv);
            }
        };
        Annotation.prototype.addReplyComments = function (currentAnnotation, replyComment, commentType) {
            if (commentType === 'add') {
                var commentsMainDiv = document.getElementById(currentAnnotation.annotName);
                this.pdfViewer.annotationModule.stickyNotesAnnotationModule.createCommentDiv(commentsMainDiv);
                for (var j = 0; j < replyComment.length; j++) {
                    this.pdfViewer.annotationModule.stickyNotesAnnotationModule.
                        saveCommentDiv(commentsMainDiv, replyComment[parseInt(j.toString(), 10)]);
                }
            }
            else if (commentType === 'next') {
                var commentsMainDiv = document.getElementById(currentAnnotation.annotationId);
                this.selectAnnotation(currentAnnotation);
                this.pdfViewer.annotationModule.stickyNotesAnnotationModule.saveCommentDiv(commentsMainDiv, replyComment);
            }
        };
        Annotation.prototype.editComments = function (commentId, editComment) {
            var commentDiv = document.getElementById(commentId);
            commentDiv.childNodes[1].ej2_instances[0].value = editComment;
        };
        Annotation.prototype.editAnnotation = function (annotation) {
            var currentAnnotation;
            var annotationId;
            var annotationType;
            var pageNumber;
            var isTextMarkupUpdate = false;
            var textMarkupAnnotation;
            if (!ej2_base_1.isNullOrUndefined(this.pdfViewer.annotationModule.textMarkupAnnotationModule) &&
                !ej2_base_1.isNullOrUndefined(this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation)) {
                textMarkupAnnotation = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;
            }
            if ((textMarkupAnnotation && (!annotation.annotationId || !annotation.uniqueKey) &&
                (annotation.annotationId === textMarkupAnnotation.annotName))) {
                currentAnnotation = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;
                annotationId = currentAnnotation.annotName;
                pageNumber = this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage;
            }
            else {
                if (this.pdfViewer.selectedItems.annotations[0]) {
                    currentAnnotation = this.pdfViewer.selectedItems.annotations[0];
                    annotationId = currentAnnotation.annotName;
                    pageNumber = currentAnnotation.pageIndex;
                }
            }
            if (annotation.uniqueKey !== undefined) {
                currentAnnotation = this.pdfViewer.nameTable[annotation.uniqueKey];
                if (currentAnnotation && currentAnnotation.annotationSettings &&
                    !ej2_base_1.isNullOrUndefined(currentAnnotation.annotationSettings.isLock)) {
                    currentAnnotation.annotationSettings.isLock = annotation.annotationSettings.isLock;
                    this.isEdited = true;
                }
                annotationId = currentAnnotation.annotName;
                pageNumber = currentAnnotation.pageIndex;
                if (ej2_base_1.isBlazor()) {
                    if (annotation.allowedInteractions) {
                        var allowedInteractionsCount = annotation.allowedInteractions.length;
                        for (var i = 0; i < allowedInteractionsCount; i++) {
                            if (annotation.allowedInteractions[parseInt(i.toString(), 10)] === 0) {
                                annotation.allowedInteractions[parseInt(i.toString(), 10)] = index_1.AllowedInteraction.Select;
                            }
                            if (annotation.allowedInteractions[parseInt(i.toString(), 10)] === 1) {
                                annotation.allowedInteractions[parseInt(i.toString(), 10)] = index_1.AllowedInteraction.Move;
                            }
                            if (annotation.allowedInteractions[parseInt(i.toString(), 10)] === 2) {
                                annotation.allowedInteractions[parseInt(i.toString(), 10)] = index_1.AllowedInteraction.Resize;
                            }
                            if (annotation.allowedInteractions[parseInt(i.toString(), 10)] === 3) {
                                annotation.allowedInteractions[parseInt(i.toString(), 10)] = index_1.AllowedInteraction.Delete;
                            }
                            if (annotation.allowedInteractions[parseInt(i.toString(), 10)] === 4) {
                                annotation.allowedInteractions[parseInt(i.toString(), 10)] = index_1.AllowedInteraction.PropertyChange;
                            }
                            if (annotation.allowedInteractions[parseInt(i.toString(), 10)] === 5) {
                                annotation.allowedInteractions[parseInt(i.toString(), 10)] = index_1.AllowedInteraction.None;
                            }
                        }
                    }
                }
                if (annotation.allowedInteractions && currentAnnotation.allowedInteractions !== annotation.allowedInteractions) {
                    this.isEdited = true;
                }
                currentAnnotation.allowedInteractions = annotation.allowedInteractions ?
                    annotation.allowedInteractions : this.updateAnnotationAllowedInteractions(annotation);
            }
            if (!currentAnnotation) {
                if (annotation.shapeAnnotationType === 'sticky' && annotation.annotationId !== undefined) {
                    currentAnnotation = this.pdfViewer.nameTable[annotation.annotationId];
                    if (currentAnnotation) {
                        currentAnnotation.annotationSettings.isLock = annotation.annotationSettings.isLock;
                        annotationId = currentAnnotation.annotName;
                        pageNumber = currentAnnotation.pageIndex;
                        this.isEdited = true;
                    }
                }
            }
            if (annotation.shapeAnnotationType === 'textMarkup') {
                currentAnnotation = this.pdfViewer.annotationModule.textMarkupAnnotationModule.
                    getAnnotations(annotation.pageNumber, annotation);
                for (var i = 0; i < currentAnnotation.length; i++) {
                    if (annotation.annotationId === currentAnnotation[parseInt(i.toString(), 10)].annotName) {
                        isTextMarkupUpdate = true;
                        currentAnnotation = currentAnnotation[parseInt(i.toString(), 10)];
                        currentAnnotation.isPrint = annotation.isPrint;
                        this.textMarkupAnnotationModule.currentTextMarkupAnnotation = currentAnnotation;
                        this.textMarkupAnnotationModule.selectTextMarkupCurrentPage = currentAnnotation.pageNumber;
                        currentAnnotation.allowedInteractions = annotation.allowedInteractions;
                        pageNumber = currentAnnotation.pageNumber;
                        annotationId = annotation.annotationId;
                        this.isEdited = true;
                        break;
                    }
                }
            }
            if (annotation.shapeAnnotationType === 'Redaction' && annotation.annotationAddMode === 'TextRedaction') {
                var annotationKeys = Object.keys(this.pdfViewer.nameTable);
                var annotObject = void 0;
                for (var i = 0; i < annotationKeys.length; i++) {
                    annotObject = this.pdfViewer.nameTable[annotationKeys[parseInt(i.toString(), 10)]];
                    if (!ej2_base_1.isNullOrUndefined(annotObject) && annotation.annotName === annotObject.annotName) {
                        currentAnnotation = this.pdfViewer.nameTable[annotationKeys[parseInt(i.toString(), 10)]];
                        annotationId = currentAnnotation.annotName;
                        pageNumber = currentAnnotation.pageIndex;
                        break;
                    }
                }
            }
            if (currentAnnotation) {
                var clonedObject = drawing_util_1.cloneObject(currentAnnotation);
                var redoClonedObject = drawing_util_1.cloneObject(currentAnnotation);
                if (annotation.shapeAnnotationType === 'textMarkup') {
                    annotationType = 'textMarkup';
                }
                if (annotation && annotation.isCommentLock === true) {
                    currentAnnotation.isCommentLock = annotation.isCommentLock;
                    this.isEdited = true;
                }
                if (annotation && JSON.stringify(currentAnnotation.annotationSelectorSettings) !== JSON.stringify(annotation.annotationSelectorSettings) && ((!ej2_base_1.isNullOrUndefined(annotation.type) && annotation.type !== 'TextMarkup') || (!ej2_base_1.isNullOrUndefined(annotation.shapeAnnotationType) && annotation.shapeAnnotationType !== 'textMarkup'))) {
                    currentAnnotation.annotationSelectorSettings = annotation.annotationSelectorSettings;
                    redoClonedObject.annotationSelectorSettings = annotation.annotationSelectorSettings;
                    this.isEdited = true;
                    this.pdfViewer.nodePropertyChange(currentAnnotation, { annotationSelectorSettings: annotation.annotationSelectorSettings });
                    this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);
                }
                if (annotation.comments) {
                    for (var j = 0; j < annotation.comments.length; j++) {
                        if (annotation.comments[parseInt(j.toString(), 10)].isLock === true) {
                            if (annotationType) {
                                currentAnnotation.comments = annotation.comments;
                                currentAnnotation.comments[parseInt(j.toString(), 10)].isLock =
                                    annotation.comments[parseInt(j.toString(), 10)].isLock;
                            }
                            else {
                                currentAnnotation.properties.comments = annotation.comments;
                                currentAnnotation.properties.comments[parseInt(j.toString(), 10)].isLock =
                                    annotation.comments[parseInt(j.toString(), 10)].isLock;
                            }
                            this.isEdited = true;
                        }
                    }
                }
                if (annotation && annotation.note !== '' && annotation.note !== undefined) {
                    if (annotationType) {
                        currentAnnotation.note = annotation.note;
                        this.pdfViewer.annotationModule.stickyNotesAnnotationModule.
                            addTextToComments(currentAnnotation.annotName, currentAnnotation.note);
                    }
                    else {
                        currentAnnotation.notes = annotation.note;
                        this.pdfViewer.annotationModule.stickyNotesAnnotationModule.
                            addTextToComments(currentAnnotation.annotName, currentAnnotation.notes);
                    }
                    this.isEdited = true;
                }
                else {
                    if (annotation && annotation.isCommentLock && ((annotation.type && annotation.type !== 'FreeText') || annotation.shapeAnnotationType !== 'FreeText')) {
                        this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addTextToComments(currentAnnotation.annotName, '  ');
                        this.isEdited = true;
                    }
                }
                if (annotation.commentId && annotation.editComment && annotation.commentType === 'edit') {
                    this.editComments(annotation.commentId, annotation.editComment);
                    this.isEdited = true;
                }
                if (annotation.replyComment && annotation.commentType === 'add') {
                    this.addReplyComments(currentAnnotation, annotation.replyComment, annotation.commentType);
                    this.pdfViewer.annotationCollection[0].note = annotation.note;
                    this.isEdited = true;
                }
                if (annotation.nextComment && annotation.commentType === 'next') {
                    this.addReplyComments(annotation, annotation.nextComment, annotation.commentType);
                    this.isEdited = true;
                }
                if (ej2_base_1.isNullOrUndefined(annotation.commentId) && annotation.commentType === 'delete') {
                    var repliesDiv = document.querySelectorAll('.e-pv-more-options-button');
                    for (var i = 0; i < repliesDiv.length; i++) {
                        if (repliesDiv[parseInt(i.toString(), 10)].style.visibility === 'visible') {
                            var activeReplyDiv = repliesDiv[parseInt(i.toString(), 10)].parentElement.nextSibling;
                            var isLocked = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.
                                checkIslockProperty(activeReplyDiv);
                            if (activeReplyDiv && !isLocked) {
                                this.deletComment(activeReplyDiv.parentElement);
                                this.isEdited = true;
                            }
                            break;
                        }
                    }
                }
                if (annotation.comments && annotation.commentType === 'delete') {
                    var repliesDiv = document.querySelectorAll('.e-pv-more-options-button');
                    if (repliesDiv && annotation.commentId) {
                        for (var i = 0; i < annotation.comments.length; i++) {
                            if (annotation.comments[parseInt(i.toString(), 10)].annotName === annotation.commentId) {
                                var activeReplyDiv = repliesDiv[parseInt((i + 1).toString(), 10)].parentElement.parentElement;
                                var isLocked = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.
                                    checkIslockProperty(activeReplyDiv);
                                if (activeReplyDiv && !isLocked) {
                                    this.pdfViewer.annotationModule.stickyNotesAnnotationModule
                                        .modifyCommentDeleteProperty(activeReplyDiv.parentElement, activeReplyDiv);
                                    this.isEdited = true;
                                }
                                break;
                            }
                        }
                    }
                }
                if (annotation.type === 'TextMarkup' || annotation.shapeAnnotationType === 'textMarkup') {
                    if (currentAnnotation.annotationSettings && annotation.annotationSettings) {
                        if (currentAnnotation.annotationSettings.isLock !== annotation.annotationSettings.isLock) {
                            var pageAnnotations = this.textMarkupAnnotationModule.modifyAnnotationProperty('AnnotationSettings', annotation.annotationSettings.isLock, null);
                            this.isEdited = true;
                            this.textMarkupAnnotationModule.manageAnnotations(pageAnnotations, this.textMarkupAnnotationModule.selectTextMarkupCurrentPage);
                        }
                    }
                    if (annotation && JSON.stringify(currentAnnotation.annotationSelectorSettings) !==
                        JSON.stringify(annotation.annotationSelectorSettings)) {
                        var pageAnnotations = this.textMarkupAnnotationModule.modifyAnnotationProperty('AnnotationSelectorSettings', annotation.annotationSelectorSettings, null);
                        this.isEdited = true;
                        this.textMarkupAnnotationModule.manageAnnotations(pageAnnotations, this.textMarkupAnnotationModule.selectTextMarkupCurrentPage);
                    }
                    if (currentAnnotation.opacity !== annotation.opacity) {
                        this.pdfViewer.annotationModule.textMarkupAnnotationModule.modifyOpacityProperty(null, annotation.opacity);
                        this.isEdited = true;
                    }
                    if (currentAnnotation.color !== annotation.color) {
                        this.pdfViewer.annotationModule.textMarkupAnnotationModule.modifyColorProperty(annotation.color);
                        this.isEdited = true;
                    }
                    if (JSON.stringify(currentAnnotation.bounds) !== JSON.stringify(annotation.bounds)) {
                        this.pdfViewer.annotationModule.textMarkupAnnotationModule.modifyBoundsProperty(annotation.bounds);
                        this.isEdited = true;
                    }
                    annotationType = 'textMarkup';
                    if (isTextMarkupUpdate) {
                        this.textMarkupAnnotationModule.selectTextMarkupCurrentPage = null;
                    }
                }
                else if (annotation && annotation.stampAnnotationType === 'image' && annotation.shapeAnnotationType === 'stamp' && annotation.stampAnnotationPath) {
                    annotationType = 'stamp';
                    if (currentAnnotation.data !== annotation.stampAnnotationPath) {
                        currentAnnotation.data = annotation.stampAnnotationPath;
                        currentAnnotation.wrapper.children[0].imageSource = annotation.stampAnnotationPath;
                        this.pdfViewer.renderDrawing(null, pageNumber);
                        this.isEdited = true;
                    }
                    if (!(ej2_base_1.isNullOrUndefined(annotation.opacity)) && currentAnnotation.opacity !== annotation.opacity) {
                        redoClonedObject.opacity = annotation.opacity;
                        this.annotationPropertyChange(currentAnnotation, annotation.opacity, 'Shape Opacity', clonedObject, redoClonedObject);
                        this.isEdited = true;
                    }
                    this.calculateAnnotationBounds(currentAnnotation, annotation);
                }
                else if (annotation.type === 'StickyNotes' || annotation.type === 'Stamp' || annotation.shapeAnnotationType === 'sticky' || annotation.shapeAnnotationType === 'stamp') {
                    if (!(ej2_base_1.isNullOrUndefined(annotation.opacity)) && currentAnnotation.opacity !== annotation.opacity) {
                        redoClonedObject.opacity = annotation.opacity;
                        this.annotationPropertyChange(currentAnnotation, annotation.opacity, 'Shape Opacity', clonedObject, redoClonedObject);
                        this.isEdited = true;
                    }
                    this.calculateAnnotationBounds(currentAnnotation, annotation);
                    if (annotation.type === 'StickyNotes' || annotation.shapeAnnotationType === 'sticky') {
                        annotationType = 'sticky';
                    }
                    else {
                        annotationType = 'stamp';
                    }
                }
                else if (annotation.type === 'Ink' || annotation.type === 'Shape' || annotation.type === 'Measure' || annotation.shapeAnnotationType === 'Line' || annotation.shapeAnnotationType === 'Square' || annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Polygon' || annotation.shapeAnnotationType === 'Polyline' || annotation.shapeAnnotationType === 'Ink') {
                    if (annotation.shapeAnnotationType === 'Square' || annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Radius' || annotation.shapeAnnotationType === 'Ink') {
                        this.calculateAnnotationBounds(currentAnnotation, annotation);
                        if (annotation.indent === 'PolygonRadius') {
                            this.updateCalibrateValues(currentAnnotation);
                            annotation.note = currentAnnotation.notes;
                        }
                    }
                    if (!(ej2_base_1.isNullOrUndefined(annotation.opacity)) && currentAnnotation.opacity !== annotation.opacity) {
                        redoClonedObject.opacity = annotation.opacity;
                        this.annotationPropertyChange(currentAnnotation, annotation.opacity, 'Shape Opacity', clonedObject, redoClonedObject);
                        this.isEdited = true;
                    }
                    if (annotation.fillColor && currentAnnotation.fillColor !== annotation.fillColor) {
                        redoClonedObject.fillColor = annotation.fillColor;
                        this.isEdited = true;
                        if (annotation.labelSettings && annotation.labelSettings.fillColor) {
                            annotation.labelSettings.fillColor = annotation.fillColor;
                        }
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { fillColor: annotation.fillColor });
                        this.triggerAnnotationPropChange(currentAnnotation, true, false, false, false);
                        this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Fill', '', clonedObject, redoClonedObject);
                    }
                    if (annotation.strokeColor && currentAnnotation.strokeColor !== annotation.strokeColor) {
                        redoClonedObject.strokeColor = annotation.strokeColor;
                        this.isEdited = true;
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { strokeColor: annotation.strokeColor });
                        this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);
                        this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Stroke', '', clonedObject, redoClonedObject);
                    }
                    if (annotation.leaderLength && currentAnnotation.leaderHeight !== annotation.leaderLength) {
                        redoClonedObject.leaderHeight = annotation.leaderLength;
                        this.isEdited = true;
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { leaderHeight: annotation.leaderLength });
                    }
                    if (annotation.thickness && currentAnnotation.thickness !== annotation.thickness) {
                        redoClonedObject.thickness = annotation.thickness;
                        this.isEdited = true;
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { thickness: annotation.thickness });
                        this.triggerAnnotationPropChange(currentAnnotation, false, false, true, false);
                        this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Thickness', '', clonedObject, redoClonedObject);
                    }
                    if (currentAnnotation.subject !== annotation.subject) {
                        redoClonedObject.subject = annotation.subject;
                        this.isEdited = true;
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { subject: annotation.subject });
                        this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);
                    }
                    if (currentAnnotation.modifiedDate !== annotation.modifiedDate) {
                        redoClonedObject.modifiedDate = annotation.modifiedDate;
                        if (!this.isUndoRedoAction || annotationType !== 'redaction') {
                            this.isEdited = true;
                        }
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { modifiedDate: annotation.modifiedDate });
                    }
                    if (currentAnnotation.subject !== annotation.subject) {
                        redoClonedObject.subject = annotation.subject;
                        this.isEdited = true;
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { subject: annotation.subject });
                        this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);
                        this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Stroke', '', clonedObject, redoClonedObject);
                    }
                    if (this.pdfViewer.enableShapeLabel && currentAnnotation.fontColor !== annotation.fontColor) {
                        redoClonedObject.fontColor = annotation.fontColor;
                        this.isEdited = true;
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { fontColor: annotation.fontColor });
                    }
                    if (this.pdfViewer.enableShapeLabel && annotation.labelSettings && annotation.labelSettings.fillColor) {
                        if (currentAnnotation.labelFillColor !== annotation.labelSettings.fillColor) {
                            redoClonedObject.labelFillColor = annotation.labelSettings.fillColor;
                            this.isEdited = true;
                            this.pdfViewer.nodePropertyChange(currentAnnotation, { labelFillColor: annotation.labelSettings.fillColor });
                        }
                        if (currentAnnotation.labelContent !== annotation.labelSettings.labelContent) {
                            redoClonedObject.labelContent = annotation.labelSettings.labelContent;
                            this.isEdited = true;
                            this.pdfViewer.nodePropertyChange(currentAnnotation, { labelContent: annotation.labelSettings.labelContent });
                        }
                    }
                    if (annotation.shapeAnnotationType === 'Line' || annotation.shapeAnnotationType === 'Polyline' || annotation.shapeAnnotationType === 'Polygon') {
                        if (JSON.stringify(currentAnnotation.vertexPoints) !== JSON.stringify(annotation.vertexPoints)) {
                            currentAnnotation.vertexPoints = annotation.vertexPoints;
                            this.isEdited = true;
                            this.pdfViewer.nodePropertyChange(currentAnnotation, { vertexPoints: annotation.vertexPoints });
                            if (annotation.indent === 'LineDimension' || annotation.indent === 'PolyLineDimension' || annotation.indent === 'PolygonDimension' || annotation.indent === 'PolygonVolume') {
                                this.updateCalibrateValues(currentAnnotation);
                                annotation.note = currentAnnotation.notes;
                            }
                            this.pdfViewer.renderSelector(currentAnnotation.pageIndex, this.pdfViewer.annotationSelectorSettings);
                        }
                    }
                    if (annotation.subType === 'Line' || annotation.subType === 'Arrow' || annotation.subType === 'Distance' || annotation.subType === 'Perimeter') {
                        var isSourceDecoraterShapesChanged = false;
                        var isTargetDecoraterShapesChanged = false;
                        var isBorderDashArrayChanged = false;
                        clonedObject.lineHeadStart = currentAnnotation.sourceDecoraterShapes;
                        clonedObject.lineHeadEnd = currentAnnotation.taregetDecoraterShapes;
                        redoClonedObject.lineHeadStart = annotation.lineHeadStartStyle;
                        redoClonedObject.lineHeadEnd = annotation.lineHeadEndStyle;
                        redoClonedObject.borderDashArray = annotation.borderDashArray;
                        this.isEdited = true;
                        if (currentAnnotation.taregetDecoraterShapes !== annotation.lineHeadEndStyle) {
                            isTargetDecoraterShapesChanged = true;
                        }
                        if (currentAnnotation.sourceDecoraterShapes !== annotation.lineHeadStartStyle) {
                            isSourceDecoraterShapesChanged = true;
                        }
                        if (currentAnnotation.borderDashArray !== annotation.borderDashArray) {
                            isBorderDashArrayChanged = true;
                        }
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { sourceDecoraterShapes: annotation.lineHeadStartStyle,
                            taregetDecoraterShapes: annotation.lineHeadEndStyle, borderDashArray: annotation.borderDashArray });
                        this.triggerAnnotationPropChange(currentAnnotation, false, false, false, false, isSourceDecoraterShapesChanged, isTargetDecoraterShapesChanged, isBorderDashArrayChanged);
                        this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Line properties change', '', clonedObject, redoClonedObject);
                    }
                    if (annotation.type === 'Shape' || annotation.shapeAnnotationType === 'Line' || annotation.shapeAnnotationType === 'Square' || annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Polygon') {
                        annotationType = 'shape';
                    }
                    if (annotation.type === 'Ink' || annotation.shapeAnnotationType === 'Ink') {
                        annotationType = 'ink';
                    }
                    if (annotation.type === 'Measure' || annotation.indent === 'LineDimension' || annotation.indent === 'PolyLineDimension' || annotation.indent === 'PolygonDimension' || annotation.indent === 'PolygonRadius' || annotation.indent === 'PolygonVolume') {
                        annotationType = 'shape_measure';
                    }
                    if (annotation.labelSettings && this.pdfViewer.enableShapeLabel) {
                        this.updateFreeTextProperties(currentAnnotation);
                        this.pdfViewer.nodePropertyChange(currentAnnotation, {
                            labelOpacity: annotation.labelSettings.opacity, fontColor: annotation.labelSettings.fontColor,
                            fontSize: annotation.labelSettings.fontSize, fontFamily: annotation.labelSettings.fontFamily,
                            labelContent: currentAnnotation.notes, labelFillColor: annotation.labelSettings.fillColor
                        });
                        this.isEdited = true;
                    }
                    if (this.pdfViewer.enableShapeLabel && annotation.calibrate && annotation.calibrate.depth) {
                        if (this.pdfViewer.annotationModule.measureAnnotationModule.volumeDepth !== annotation.calibrate.depth) {
                            this.pdfViewer.annotationModule.measureAnnotationModule.volumeDepth = annotation.calibrate.depth;
                            currentAnnotation.notes = this.pdfViewer.annotationModule.measureAnnotationModule.
                                calculateVolume(currentAnnotation.vertexPoints, currentAnnotation.id, currentAnnotation.pageIndex);
                            currentAnnotation.labelContent = currentAnnotation.notes;
                            this.isEdited = true;
                            if (annotation.labelSettings && annotation.labelSettings.labelContent) {
                                annotation.labelSettings.labelContent = currentAnnotation.notes;
                            }
                            this.pdfViewer.nodePropertyChange(currentAnnotation, { labelContent: currentAnnotation.labelContent });
                            this.pdfViewer.annotationModule.stickyNotesAnnotationModule.
                                addTextToComments(currentAnnotation.annotName, currentAnnotation.notes);
                        }
                    }
                }
                else if (annotation.type === 'Redaction' || annotation.shapeAnnotationType === 'Redaction') {
                    annotationType = 'redaction';
                    this.calculateAnnotationBounds(currentAnnotation, annotation);
                    if (this.boundsChanged) {
                        this.pdfViewer.drawing.select([annotation.uniqueKey], this.pdfViewer.annotationSelectorSettings);
                        this.modifyInCollections(currentAnnotation, 'bounds');
                        this.boundsChanged = false;
                    }
                    if (annotation.fillColor && currentAnnotation.fillColor !== annotation.fillColor) {
                        redoClonedObject.fillColor = annotation.fillColor;
                        currentAnnotation.fillColor = annotation.fillColor;
                        this.modifyInCollections(currentAnnotation, 'fillColor');
                        this.triggerAnnotationPropChange(currentAnnotation, true, false, false, false);
                    }
                    if (annotation.markerFillColor && currentAnnotation.markerFillColor !== annotation.markerFillColor) {
                        redoClonedObject.markerFillColor = annotation.markerFillColor;
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { markerFillColor: annotation.markerFillColor });
                        this.modifyInCollections(currentAnnotation, 'fill');
                        this.triggerAnnotationPropChange(currentAnnotation, true, false, false, false);
                    }
                    if (annotation.markerBorderColor && currentAnnotation.markerBorderColor !== annotation.markerBorderColor) {
                        redoClonedObject.markerBorderColor = annotation.markerBorderColor;
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { markerBorderColor: annotation.markerBorderColor });
                        this.modifyInCollections(currentAnnotation, 'stroke');
                        this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);
                    }
                    if (!ej2_base_1.isNullOrUndefined(annotation.markerOpacity) && currentAnnotation.markerOpacity !== annotation.markerOpacity) {
                        redoClonedObject.markerOpacity = annotation.markerOpacity;
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { markerOpacity: annotation.markerOpacity });
                        this.modifyInCollections(currentAnnotation, 'opacity');
                        this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);
                    }
                    if (!ej2_base_1.isNullOrUndefined(annotation.overlayText) && currentAnnotation.overlayText !== annotation.overlayText) {
                        redoClonedObject.overlayText = annotation.overlayText;
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { overlayText: annotation.overlayText });
                        this.modifyInCollections(currentAnnotation, 'overlayText');
                        this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);
                    }
                    if (annotation.fontColor && currentAnnotation.fontColor !== annotation.fontColor) {
                        currentAnnotation.fontColor = annotation.fontColor;
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { fontColor: annotation.fontColor });
                        this.modifyInCollections(currentAnnotation, 'fontColor');
                    }
                    if (!ej2_base_1.isNullOrUndefined(annotation.fontSize) && currentAnnotation.fontSize !== annotation.fontSize) {
                        currentAnnotation.fontSize = annotation.fontSize;
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { fontSize: annotation.fontSize });
                        this.modifyInCollections(currentAnnotation, 'fontSize');
                    }
                    if (annotation.fontFamily && currentAnnotation.fontFamily !== annotation.fontFamily) {
                        currentAnnotation.fontFamily = annotation.fontFamily;
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { fontFamily: annotation.fontFamily });
                        this.modifyInCollections(currentAnnotation, 'fontFamily');
                    }
                    if (annotation.textAlign && currentAnnotation.textAlign !== annotation.textAlign) {
                        currentAnnotation.textAlign = annotation.textAlign;
                        this.pdfViewer.nodePropertyChange(currentAnnotation, { textAlign: annotation.textAlign });
                        this.modifyInCollections(currentAnnotation, 'textAlign');
                    }
                    if (!ej2_base_1.isNullOrUndefined(annotation.isRepeat) && currentAnnotation.isRepeat !== annotation.isRepeat) {
                        currentAnnotation.isRepeat = annotation.isRepeat;
                        this.modifyInCollections(currentAnnotation, 'isRepeat');
                    }
                    if (!ej2_base_1.isNullOrUndefined(annotation.useOverlayText) && currentAnnotation.useOverlayText !== annotation.useOverlayText) {
                        currentAnnotation.useOverlayText = annotation.useOverlayText;
                        this.modifyInCollections(currentAnnotation, 'useOverlayText');
                    }
                    if (currentAnnotation.isPrint !== annotation.isPrint) {
                        currentAnnotation.isPrint = annotation.isPrint;
                        this.modifyInCollections(currentAnnotation, 'isPrint');
                    }
                    if (currentAnnotation.isLock !== annotation.isLock) {
                        currentAnnotation.isLock = annotation.isLock;
                        currentAnnotation.annotationSettings.isLock = annotation.isLock;
                        this.modifyInCollections(currentAnnotation, 'isLock');
                    }
                }
                else if (annotation.type === 'FreeText' || annotation.shapeAnnotationType === 'FreeText') {
                    annotationType = 'freetext';
                    if (this.pdfViewer.freeTextSettings.enableAutoFit && currentAnnotation.dynamicText !== annotation.content) {
                        var canvas = this.pdfViewerBase.getAnnotationCanvas('_annotationCanvas_', currentAnnotation.pageIndex);
                        var context = canvas.getContext('2d');
                        var fontSize = annotation.fontSize;
                        var font = void 0;
                        var fontFamily = annotation.fontFamily;
                        var zoomFactor = this.pdfViewerBase.getZoomFactor();
                        if (annotation.font.isBold) {
                            font = 'bold' + ' ' + fontSize + 'px' + ' ' + fontFamily;
                        }
                        else {
                            font = fontSize + 'px' + ' ' + fontFamily;
                        }
                        context.font = font;
                        var characterLength = 8;
                        var highestTextNode = '';
                        var textNodes = [];
                        var textboxValue = annotation.content ? annotation.content : annotation.dynamicText;
                        if (textboxValue.indexOf('\n') > -1) {
                            textNodes = textboxValue.split('\n');
                            for (var j = 0; j < textNodes.length; j++) {
                                var textNodeData = context.measureText(textNodes[parseInt(j.toString(), 10)]);
                                var highestTextNodeData = context.measureText(highestTextNode);
                                if (textNodeData.width > highestTextNodeData.width) {
                                    highestTextNode = textNodes[parseInt(j.toString(), 10)];
                                }
                            }
                        }
                        else {
                            highestTextNode = textboxValue;
                        }
                        var textwidth = context.measureText(highestTextNode);
                        annotation.bounds.width = Math.ceil(textwidth.width + ((characterLength + 1) * 2));
                        var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + (annotation.pageIndex));
                        var maxWidth = pageDiv.clientWidth - (annotation.bounds.left * zoomFactor);
                        if (annotation.bounds.width > maxWidth) {
                            annotation.bounds.width = maxWidth / zoomFactor;
                        }
                        var height = annotation.bounds.height;
                        annotation.bounds.height = height >= currentAnnotation.bounds.height ? height : currentAnnotation.bounds.height;
                    }
                    this.calculateAnnotationBounds(currentAnnotation, annotation);
                    if (annotation.opacity && currentAnnotation.opacity !== annotation.opacity) {
                        this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);
                    }
                    if (annotation.fillColor && currentAnnotation.fillColor !== annotation.fillColor) {
                        redoClonedObject.fillColor = annotation.fillColor;
                        this.isEdited = true;
                        this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Fill', '', clonedObject, redoClonedObject);
                        this.triggerAnnotationPropChange(currentAnnotation, true, false, false, false);
                    }
                    if (annotation.fontColor && currentAnnotation.fontColor !== annotation.fontColor) {
                        redoClonedObject.fontColor = annotation.fontColor;
                        this.isEdited = true;
                        this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'fontColor', '', clonedObject, redoClonedObject);
                        this.triggerAnnotationPropChange(currentAnnotation, false, false, false, false);
                    }
                    if (annotation.strokeColor && currentAnnotation.strokeColor !== annotation.strokeColor) {
                        this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);
                    }
                    if (annotation.thickness && currentAnnotation.thickness !== annotation.thickness) {
                        this.triggerAnnotationPropChange(currentAnnotation, false, false, true, false);
                    }
                    var isCurrentAnnotationLock = currentAnnotation.isLock;
                    if (!ej2_base_1.isNullOrUndefined(annotation.isLock)) {
                        isCurrentAnnotationLock = annotation.isLock;
                        this.isEdited = true;
                    }
                    else if (!ej2_base_1.isNullOrUndefined(annotation.annotationSettings.isLock)) {
                        isCurrentAnnotationLock = annotation.annotationSettings.isLock;
                        this.isEdited = true;
                    }
                    currentAnnotation.annotationSettings.isLock = isCurrentAnnotationLock;
                    currentAnnotation.isLock = isCurrentAnnotationLock;
                    annotation.content = (annotation.content && annotation.content === annotation.dynamicText) ?
                        annotation.content : annotation.dynamicText;
                    if (annotation.content && currentAnnotation.dynamicText !== annotation.content) {
                        this.triggerAnnotationPropChange(currentAnnotation, false, false, false, false, false, false, false, true, currentAnnotation.dynamicText, annotation.content);
                    }
                    if (!ej2_base_1.isNullOrUndefined(annotation.fontSize) && currentAnnotation.fontSize !== annotation.fontSize) {
                        this.modifyFontSize(annotation.fontSize, true, currentAnnotation);
                        annotation.bounds.width = currentAnnotation.bounds.width;
                        annotation.bounds.height = currentAnnotation.bounds.height;
                    }
                    this.isFreeTextFontsizeChanged = true;
                    this.pdfViewer.nodePropertyChange(currentAnnotation, {
                        opacity: annotation.opacity, fontColor: annotation.fontColor, fontSize: annotation.fontSize,
                        fontFamily: annotation.fontFamily,
                        dynamicText: annotation.content, fillColor: annotation.fillColor, textAlign: annotation.textAlign,
                        strokeColor: annotation.strokeColor, thickness: annotation.thickness,
                        font: annotation.fontStyle ? this.setFreeTextFontStyle(annotation.fontStyle) :
                            this.setFreeTextFontStyle(annotation.font),
                        isReadonly: annotation.isReadonly
                    });
                    if (annotation.content && currentAnnotation) {
                        this.updateAnnotationComments(currentAnnotation.annotName, annotation.content);
                    }
                    var newCommentDiv = document.getElementById(this.pdfViewer.element.id + '_commenttextbox_editor');
                    var commentObj = new ej2_inplace_editor_1.InPlaceEditor({
                        value: annotation.content
                    });
                    commentObj.appendTo(newCommentDiv);
                }
                currentAnnotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();
                if (currentAnnotation.customData !== annotation.customData) {
                    currentAnnotation.customData = annotation.customData;
                    this.isEdited = true;
                }
                if (currentAnnotation.isPrint !== annotation.isPrint) {
                    currentAnnotation.isPrint = annotation.isPrint;
                    this.isEdited = true;
                }
                if (annotation.type !== 'TextMarkup' && annotation.shapeAnnotationType !== 'textMarkup') {
                    this.pdfViewer.renderDrawing();
                }
                if (currentAnnotation.author !== annotation.author) {
                    redoClonedObject.author = annotation.author;
                    currentAnnotation.author = annotation.author;
                    this.isEdited = true;
                    this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);
                    var commentDiv = document.getElementById(annotation.annotationId).firstChild.firstChild.childNodes[1];
                    if (commentDiv instanceof Element && commentDiv.classList.contains('e-pv-comment-title')) {
                        commentDiv.children[0].textContent = annotation.author;
                        commentDiv.children[1].textContent = ' - ' + this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();
                    }
                }
                if (!ej2_base_1.isNullOrUndefined(annotation.setState) && (currentAnnotation.review.state !== annotation.setState)) {
                    currentAnnotation.review.state = annotation.setState;
                    annotation.review.state = annotation.setState;
                    this.isEdited = true;
                    this.selectAnnotation(annotation.annotationId);
                    var args = { item: { text: annotation.setState } };
                    this.pdfViewer.annotationModule.stickyNotesAnnotationModule.commentMenuItemSelect(args);
                }
                for (var j = 0; j < annotation.comments.length; j++) {
                    var annotComment = annotation.comments[parseInt(j.toString(), 10)];
                    if (!ej2_base_1.isNullOrUndefined(annotComment) && currentAnnotation.comments[parseInt(j.toString(), 10)].annotName
                        === annotation.commentId && annotation.commentId) {
                        if (currentAnnotation.comments[parseInt(j.toString(), 10)].author !== annotComment.author) {
                            var replyDiv = document.getElementById(annotation.commentId).firstChild.childNodes[0];
                            replyDiv.textContent = annotComment.author + ' - ' + this.pdfViewer.annotationModule.
                                stickyNotesAnnotationModule.getDateAndTime();
                            currentAnnotation.comments[parseInt(j.toString(), 10)].author = annotComment.author;
                            annotation.comments[parseInt(j.toString(), 10)].review.author = annotComment.author;
                            this.isEdited = true;
                            break;
                        }
                        if (currentAnnotation.comments[parseInt(j.toString(), 10)].review.state !== annotComment.review.state) {
                            currentAnnotation.comments[parseInt(j.toString(), 10)].review.state = annotComment.review.state;
                            var args = { item: { text: annotComment.review.state } };
                            this.pdfViewer.annotationModule.stickyNotesAnnotationModule.commentMenuItemSelect(args);
                            this.isEdited = true;
                            break;
                        }
                    }
                }
                this.updateCollection(annotationId, pageNumber, annotation, annotationType);
                if (this.isEdited) {
                    this.pdfViewerBase.updateDocumentEditedProperty(true);
                }
            }
            else {
                var updated = this.updateNonRenderedStates(annotation);
                if (updated) {
                    this.pdfViewerBase.updateDocumentEditedProperty(true);
                }
            }
            this.isEdited = false;
        };
        Annotation.prototype.updateNonRenderedStates = function (annotation) {
            var pageIndex = !ej2_base_1.isNullOrUndefined(annotation.pageNumber) ? annotation.pageNumber : annotation.pageIndex;
            var pages = this.pdfViewerBase.documentAnnotationCollections;
            if (!pages || ej2_base_1.isNullOrUndefined(pages[pageIndex])) {
                return false;
            }
            var pageStore = pages[pageIndex];
            var key = (function () {
                var t = String(annotation.shapeAnnotationType || annotation.type || '').toLowerCase();
                if (t === 'freetext') {
                    return 'freeTextAnnotation';
                }
                if (t === 'textmarkup') {
                    return 'textMarkupAnnotation';
                }
                if (t === 'ink') {
                    return 'signatureInkAnnotation';
                }
                if (t === 'stamp' || t === 'image') {
                    return 'stampAnnotations';
                }
                if (t === 'sticky') {
                    return 'stickyNotesAnnotation';
                }
                if (annotation.subject === 'Volume calculation' || annotation.subject === 'Radius calculation' ||
                    annotation.subject === 'Area calculation' || annotation.subject === 'Perimeter calculation' ||
                    annotation.subject === 'Distance calculation') {
                    return 'measureShapeAnnotation';
                }
                return 'shapeAnnotation';
            })();
            var list = pageStore[key];
            if (!list || !list.length) {
                return false;
            }
            var targetAnnotName = annotation.annotationId || annotation.annotName;
            for (var i = 0; i < list.length; i++) {
                var annoatations = list[i];
                if (!annoatations) {
                    continue;
                }
                if (annoatations.AnnotName === targetAnnotName) {
                    if (annoatations.IsLocked !== annotation.annotationSettings.isLock) {
                        annoatations.IsLocked = annotation.annotationSettings.isLock;
                        if (annoatations.AnnotationSettings) {
                            annoatations.AnnotationSettings.isLock = annotation.annotationSettings.isLock;
                        }
                    }
                    if (annoatations.IsCommentLock !== annotation.isCommentLock) {
                        annoatations.IsCommentLock = annotation.isCommentLock;
                    }
                    return true;
                }
            }
            return false;
        };
        Annotation.prototype.annotationPropertyChange = function (currentAnnotation, opacity, actionString, clonedObject, redoClonedObject) {
            this.pdfViewer.nodePropertyChange(currentAnnotation, { opacity: opacity });
            this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);
            this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, actionString, '', clonedObject, redoClonedObject);
        };
        Annotation.prototype.calculateAnnotationBounds = function (currentAnnotation, annotation) {
            var bounds = this.pdfViewerBase.convertBounds(currentAnnotation.wrapper.bounds);
            var annotBounds = this.pdfViewerBase.convertBounds(annotation.bounds);
            if (bounds && annotBounds) {
                if (JSON.stringify(bounds) !== JSON.stringify(annotBounds) && (Math.abs(bounds.Y -
                    annotBounds.Y) > 2) ||
                    (Math.abs(bounds.X - annotBounds.X) > 2) ||
                    (Math.abs(bounds.Width - annotBounds.Width) > 2) ||
                    (Math.abs(bounds.Height - annotBounds.Height) > 2)) {
                    var annotationBounds = { x: annotBounds.X + (annotBounds.Width / 2),
                        y: annotBounds.Y + (annotBounds.Height / 2),
                        width: annotBounds.Width, height: annotBounds.Height };
                    this.pdfViewer.nodePropertyChange(currentAnnotation, { bounds: annotationBounds });
                    if (currentAnnotation.shapeAnnotationType === 'HandWrittenSignature' || currentAnnotation.shapeAnnotationType === 'SignatureText' || currentAnnotation.shapeAnnotationType === 'SignatureImage') {
                        this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, false, false, false, currentAnnotation.wrapper.bounds, annotation.bounds);
                    }
                    else {
                        this.triggerAnnotationPropChange(currentAnnotation, false, false, false, false);
                    }
                    this.pdfViewer.renderSelector(currentAnnotation.pageIndex, this.pdfViewer.annotationSelectorSettings);
                    this.isEdited = true;
                    this.boundsChanged = true;
                }
            }
        };
        Annotation.prototype.updateFreeTextProperties = function (annotation) {
            if (annotation.labelSettings) {
                if (annotation.labelSettings.fillColor) {
                    annotation.labelFillColor = annotation.labelSettings.fillColor;
                }
                if (annotation.labelSettings.fontColor) {
                    annotation.fontColor = annotation.labelSettings.fontColor;
                }
                if (annotation.labelSettings.fontSize) {
                    annotation.fontSize = annotation.labelSettings.fontSize;
                }
                if (annotation.labelSettings.fontFamily) {
                    annotation.fontFamily = annotation.labelSettings.fontFamily;
                }
                if (annotation.labelSettings.opacity) {
                    annotation.labelOpacity = annotation.labelSettings.opacity;
                }
                if (annotation.labelSettings.labelContent) {
                    annotation.labelContent = annotation.labelSettings.labelContent;
                }
            }
        };
        Annotation.prototype.updateAnnotationComments = function (annotationId, noteContent) {
            var commentsDiv = document.getElementById(annotationId);
            if (commentsDiv && commentsDiv.childNodes) {
                if (commentsDiv.childNodes[0].ej2_instances) {
                    commentsDiv.childNodes[0].ej2_instances[0].value = noteContent;
                }
                else if (commentsDiv.childNodes[0].childNodes && commentsDiv.childNodes[0].childNodes[1].ej2_instances) {
                    commentsDiv.childNodes[0].childNodes[1].ej2_instances[0].value = noteContent;
                }
            }
        };
        Annotation.prototype.addFreeTextProperties = function (annotation, currentAnnotation) {
            if (this.pdfViewer.enableShapeLabel && annotation && currentAnnotation) {
                currentAnnotation.labelSettings = {
                    fontColor: annotation.fontColor, fontSize: annotation.fontSize, fontFamily: annotation.fontFamily,
                    opacity: annotation.labelOpacity, labelContent: annotation.labelContent, fillColor: annotation.labelFillColor
                };
            }
        };
        Annotation.prototype.updateMeasurementSettings = function () {
            if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableMeasureAnnotation) {
                var ratioString = '1 ' + this.pdfViewer.measurementSettings.conversionUnit + ' = ' + this.pdfViewer.measurementSettings.scaleRatio + ' ' + this.pdfViewer.measurementSettings.displayUnit;
                this.measureAnnotationModule.updateMeasureValues(ratioString, this.pdfViewer.measurementSettings.displayUnit, this.pdfViewer.measurementSettings.conversionUnit, this.pdfViewer.measurementSettings.depth);
            }
        };
        Annotation.prototype.updateCollection = function (annotationId, pageNumber, annotation, annotationType) {
            var annotationCollection;
            var storeObject = this.pdfViewer.annotationsCollection.get(this.pdfViewerBase.documentId + '_annotations_' + annotationType);
            if (storeObject) {
                var annotObject = JSON.parse(JSON.stringify(storeObject));
                var index = this.getPageCollection(annotObject, pageNumber);
                if (index != null && annotObject[parseInt(index.toString(), 10)]) {
                    annotationCollection = annotObject[parseInt(index.toString(), 10)].annotations;
                    if (annotationCollection !== null) {
                        for (var i = 0; i < annotationCollection.length; i++) {
                            if (annotationCollection[parseInt(i.toString(), 10)].annotName === annotationId) {
                                var newAnnot = this.modifyAnnotationProperties(annotationCollection[parseInt(i.toString(), 10)], annotation, annotationType);
                                annotationCollection[parseInt(i.toString(), 10)] = newAnnot;
                                this.storeAnnotationCollections(newAnnot, pageNumber);
                            }
                        }
                        this.pdfViewer.annotationsCollection.delete(this.pdfViewerBase.documentId + '_annotations_' + annotationType);
                        if (annotObject[parseInt(index.toString(), 10)]) {
                            annotObject[parseInt(index.toString(), 10)].annotations = annotationCollection;
                        }
                        this.pdfViewer.annotationsCollection.set(this.pdfViewerBase.documentId + '_annotations_' + annotationType, annotObject);
                    }
                }
                annotObject = null;
            }
        };
        Annotation.prototype.modifyAnnotationProperties = function (newAnnotation, annotation, annotationType) {
            var isModifyStatus = false;
            if (annotation && annotation.isCommentLock === true) {
                newAnnotation.isCommentLock = annotation.isCommentLock;
            }
            if (!ej2_base_1.isNullOrUndefined(annotation) && !ej2_base_1.isNullOrUndefined(annotation.annotationSettings) &&
                annotation.annotationSettings.isLock === true && annotation.isCommentLock === true) {
                isModifyStatus = true;
            }
            if (annotation.comments) {
                for (var j = 0; j < annotation.comments.length; j++) {
                    if (!ej2_base_1.isNullOrUndefined(annotation.comments[parseInt(j.toString(), 10)].isLock) &&
                        !ej2_base_1.isNullOrUndefined(newAnnotation.comments[parseInt(j.toString(), 10)])) {
                        newAnnotation.comments[parseInt(j.toString(), 10)].isLock = annotation.comments[parseInt(j.toString(), 10)].isLock;
                    }
                }
            }
            if (annotation && annotation.note !== '' && annotation.note !== undefined) {
                newAnnotation.note = annotation.note;
            }
            if (annotation.review) {
                newAnnotation.review = annotation.review;
            }
            if (annotation.commentId && annotation.editComment && annotation.commentType === 'edit') {
                var commentDiv = document.getElementById(annotation.commentId);
                if (annotation.annotationId === annotation.commentId) {
                    newAnnotation.note = commentDiv.childNodes[1].ej2_instances[0].value;
                }
                for (var j = 0; j < annotation.comments.length; j++) {
                    if (annotation.comments[parseInt(j.toString(), 10)].annotName === annotation.commentId) {
                        newAnnotation.comments[parseInt(j.toString(), 10)].note = commentDiv.childNodes[1].ej2_instances[0].value;
                    }
                }
            }
            for (var j = 0; j < annotation.comments.length; j++) {
                var annotComment = annotation.comments[parseInt(j.toString(), 10)];
                if (!ej2_base_1.isNullOrUndefined(annotComment) && annotation.commentId && annotComment.annotName === annotation.commentId) {
                    newAnnotation.comments[parseInt(j.toString(), 10)].author = annotComment.author;
                    newAnnotation.comments[parseInt(j.toString(), 10)].review.author = annotComment.author;
                    newAnnotation.comments[parseInt(j.toString(), 10)].review.state = annotComment.review.state;
                    break;
                }
            }
            if (annotationType === 'textMarkup') {
                newAnnotation.opacity = annotation.opacity;
                newAnnotation.color = annotation.color;
                newAnnotation.allowedInteractions = annotation.allowedInteractions;
                newAnnotation.annotationSettings = annotation.annotationSettings;
            }
            else if (annotationType === 'sticky' || annotationType === 'stamp') {
                if (annotation.bounds) {
                    newAnnotation.bounds = annotation.bounds;
                }
                newAnnotation.opacity = annotation.opacity;
                newAnnotation.annotationSettings = annotation.annotationSettings;
                newAnnotation.allowedInteractions = annotation.allowedInteractions;
                if (annotation.stampAnnotationPath && newAnnotation.stampAnnotationPath !== annotation.stampAnnotationPath) {
                    newAnnotation.stampAnnotationPath = annotation.stampAnnotationPath;
                    newAnnotation.template = '';
                }
            }
            else if (annotationType === 'ink') {
                if (annotation.bounds) {
                    newAnnotation.bounds = annotation.bounds;
                }
                newAnnotation.opacity = annotation.opacity;
                newAnnotation.strokeColor = annotation.strokeColor;
                newAnnotation.thickness = annotation.thickness;
                newAnnotation.annotationSettings = annotation.annotationSettings;
                newAnnotation.allowedInteractions = annotation.allowedInteractions;
            }
            else if (annotationType === 'shape' || annotationType === 'shape_measure') {
                if (annotation.subType === 'Line' || annotation.subType === 'Arrow' || annotation.subType === 'Distance' ||
                    annotation.subType === 'Perimeter') {
                    if (annotation.bounds) {
                        newAnnotation.bounds = annotation.bounds;
                    }
                    if (annotation.vertexPoints) {
                        newAnnotation.vertexPoints = annotation.vertexPoints;
                    }
                    newAnnotation.opacity = annotation.opacity;
                    newAnnotation.fillColor = annotation.fillColor;
                    newAnnotation.strokeColor = annotation.strokeColor;
                    newAnnotation.thickness = annotation.thickness;
                    newAnnotation.borderDashArray = annotation.borderDashArray;
                    newAnnotation.lineHeadStart = this.getArrowTypeForCollection(annotation.lineHeadStartStyle);
                    newAnnotation.lineHeadEnd = this.getArrowTypeForCollection(annotation.lineHeadEndStyle);
                    newAnnotation.annotationSettings = annotation.annotationSettings;
                    newAnnotation.allowedInteractions = annotation.allowedInteractions;
                }
                else {
                    if (annotation.bounds) {
                        newAnnotation.bounds = annotation.bounds;
                    }
                    if (annotation.vertexPoints) {
                        newAnnotation.vertexPoints = annotation.vertexPoints;
                    }
                    newAnnotation.opacity = annotation.opacity;
                    newAnnotation.fillColor = annotation.fillColor;
                    newAnnotation.strokeColor = annotation.strokeColor;
                    newAnnotation.thickness = annotation.thickness;
                    newAnnotation.annotationSettings = annotation.annotationSettings;
                    newAnnotation.allowedInteractions = annotation.allowedInteractions;
                    if (annotation.calibrate) {
                        if (newAnnotation.annotName === annotation.annotationId) {
                            if (newAnnotation.calibrate.depth !== annotation.calibrate.depth) {
                                newAnnotation.calibrate.depth = annotation.calibrate.depth;
                                this.pdfViewer.annotationModule.measureAnnotationModule.volumeDepth = annotation.calibrate.depth;
                                newAnnotation.note = this.pdfViewer.annotationModule.measureAnnotationModule.
                                    calculateVolume(newAnnotation.vertexPoints);
                            }
                        }
                    }
                }
                if (this.pdfViewer.enableShapeLabel && annotation.labelSettings) {
                    var text = annotation.labelSettings.labelContent;
                    newAnnotation.note = text;
                    newAnnotation.fontSize = annotation.labelSettings.fontSize;
                    newAnnotation.labelFillColor = annotation.labelSettings.fillColor;
                    if (newAnnotation.labelContent) {
                        newAnnotation.labelContent = text;
                    }
                    if (newAnnotation.labelSettings) {
                        newAnnotation.labelSettings = annotation.labelSettings;
                    }
                    this.updateAnnotationComments(newAnnotation.annotName, text);
                }
            }
            else if (annotationType === 'redaction') {
                if (annotation.bounds) {
                    newAnnotation.bounds.left = annotation.bounds.x ? annotation.bounds.x : annotation.bounds.left;
                    newAnnotation.bounds.top = annotation.bounds.y ? annotation.bounds.y : annotation.bounds.top;
                    newAnnotation.bounds.width = annotation.bounds.width;
                    newAnnotation.bounds.height = annotation.bounds.height;
                }
                newAnnotation.markerOpacity = annotation.markerOpacity;
                newAnnotation.markerBorderColor = annotation.markerBorderColor;
                newAnnotation.markerFillColor = annotation.markerFillColor;
                newAnnotation.fontFamily = annotation.fontFamily;
                newAnnotation.fontSize = annotation.fontSize;
                newAnnotation.fontColor = annotation.fontColor;
                newAnnotation.fillColor = annotation.fillColor;
                newAnnotation.font = annotation.font ? annotation.font : annotation.fontStyle;
                newAnnotation.textAlign = annotation.textAlign;
                newAnnotation.annotationSettings = annotation.annotationSettings;
                newAnnotation.allowedInteractions = annotation.allowedInteractions;
                newAnnotation.isRepeat = annotation.isRepeat;
                newAnnotation.overlayText = annotation.overlayText;
            }
            else if (annotationType === 'freetext') {
                if (annotation.bounds) {
                    newAnnotation.bounds = annotation.bounds;
                }
                newAnnotation.opacity = annotation.opacity;
                newAnnotation.strokeColor = annotation.strokeColor;
                newAnnotation.thickness = annotation.thickness;
                if (annotation.content) {
                    newAnnotation.dynamicText = annotation.content;
                }
                newAnnotation.fontFamily = annotation.fontFamily;
                newAnnotation.fontSize = annotation.fontSize;
                newAnnotation.fontColor = annotation.fontColor;
                newAnnotation.fillColor = annotation.fillColor;
                newAnnotation.font = annotation.font ? annotation.font : annotation.fontStyle;
                newAnnotation.textAlign = annotation.textAlign;
                newAnnotation.annotationSettings = annotation.annotationSettings;
                newAnnotation.allowedInteractions = annotation.allowedInteractions;
                newAnnotation.isReadonly = annotation.isReadonly;
            }
            newAnnotation.author = annotation.author;
            newAnnotation.customData = annotation.customData;
            newAnnotation.subject = annotation.subject;
            if (isModifyStatus) {
                newAnnotation.modifiedDate = annotation.modifiedDate;
            }
            else {
                newAnnotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();
            }
            newAnnotation.isPrint = annotation.isPrint;
            if (annotation.annotationSettings && !ej2_base_1.isNullOrUndefined(annotation.annotationSettings.isLock)) {
                newAnnotation.isLocked = annotation.annotationSettings.isLock;
            }
            if (!ej2_base_1.isNullOrUndefined(annotation.annotationSelectorSettings) && (newAnnotation.annotationSelectorSettings !==
                annotation.annotationSelectorSettings)) {
                newAnnotation.annotationSelectorSettings = annotation.annotationSelectorSettings;
            }
            return newAnnotation;
        };
        Annotation.prototype.updateAnnotationAuthor = function (annotationType, annotationSubType, annotation) {
            var annotationAuthor;
            if (annotationType === 'sticky') {
                annotationAuthor = (this.pdfViewer.stickyNotesSettings.author !== 'Guest') ? this.pdfViewer.stickyNotesSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                    annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                }
            }
            else if (annotationType === 'stamp') {
                annotationAuthor = (this.pdfViewer.stampSettings.author !== 'Guest') ? this.pdfViewer.stampSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                    annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                }
            }
            else if (annotationType === 'shape') {
                if (annotationSubType === 'Line') {
                    annotationAuthor = (this.pdfViewer.lineSettings.author !== 'Guest') ? this.pdfViewer.lineSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                    if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                        annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                    }
                }
                else if (annotationSubType === 'LineWidthArrowHead' || annotationSubType === 'Arrow') {
                    annotationAuthor = (this.pdfViewer.arrowSettings.author !== 'Guest') ? this.pdfViewer.arrowSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                    if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                        annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                    }
                }
                else if (annotationSubType === 'Circle' || annotationSubType === 'Ellipse' || annotationSubType === 'Oval') {
                    annotationAuthor = (this.pdfViewer.circleSettings.author !== 'Guest') ? this.pdfViewer.circleSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                    if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                        annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                    }
                }
                else if (annotationSubType === 'Rectangle' || annotationSubType === 'Square') {
                    annotationAuthor = (this.pdfViewer.rectangleSettings.author !== 'Guest') ? this.pdfViewer.rectangleSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                    if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                        annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                    }
                }
                else if (annotationSubType === 'Polygon') {
                    annotationAuthor = (this.pdfViewer.polygonSettings.author !== 'Guest') ? this.pdfViewer.polygonSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                    if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                        annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                    }
                }
            }
            else if (annotationType === 'measure') {
                if (annotationSubType === 'Distance' || annotationSubType === 'Distance calculation') {
                    annotationAuthor = (this.pdfViewer.distanceSettings.author !== 'Guest') ? this.pdfViewer.distanceSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                    if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                        annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                    }
                }
                else if (annotationSubType === 'Perimeter' || annotationSubType === 'Perimeter calculation') {
                    annotationAuthor = (this.pdfViewer.perimeterSettings.author !== 'Guest') ? this.pdfViewer.perimeterSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                    if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                        annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                    }
                }
                else if (annotationSubType === 'Radius' || annotationSubType === 'Radius calculation') {
                    annotationAuthor = (this.pdfViewer.radiusSettings.author !== 'Guest') ? this.pdfViewer.radiusSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                    if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                        annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                    }
                }
                else if (annotationSubType === 'Area' || annotationSubType === 'Area calculation') {
                    annotationAuthor = (this.pdfViewer.areaSettings.author !== 'Guest') ? this.pdfViewer.areaSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                    if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                        annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                    }
                }
                else if (annotationSubType === 'Volume' || annotationSubType === 'Volume calculation') {
                    annotationAuthor = (this.pdfViewer.volumeSettings.author !== 'Guest') ? this.pdfViewer.volumeSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                    if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                        annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                    }
                }
            }
            else if (annotationType === 'textMarkup') {
                if (annotationSubType === 'Highlight') {
                    annotationAuthor = (this.pdfViewer.highlightSettings.author !== 'Guest') ? this.pdfViewer.highlightSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                    if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                        annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                    }
                }
                else if (annotationSubType === 'Underline') {
                    annotationAuthor = (this.pdfViewer.underlineSettings.author !== 'Guest') ? this.pdfViewer.underlineSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                    if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                        annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                    }
                }
                else if (annotationSubType === 'Strikethrough') {
                    annotationAuthor = (this.pdfViewer.strikethroughSettings.author !== 'Guest') ? this.pdfViewer.strikethroughSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                    if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                        annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                    }
                }
                else if (annotationSubType === 'Squiggly') {
                    annotationAuthor = (this.pdfViewer.squigglySettings.author !== 'Guest') ? this.pdfViewer.squigglySettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                    if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                        annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                    }
                }
                else {
                    annotationAuthor = this.pdfViewer.annotationSettings.author;
                }
            }
            else if (annotationType === 'freeText') {
                annotationAuthor = (this.pdfViewer.freeTextSettings.author !== 'Guest') ? this.pdfViewer.freeTextSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                    annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                }
            }
            else if (annotationType === 'ink') {
                annotationAuthor = (this.pdfViewer.inkAnnotationSettings.author !== 'Guest') ? this.pdfViewer.inkAnnotationSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';
                if (annotationAuthor !== 'Guest' && this.pdfViewer.enableHtmlSanitizer) {
                    annotationAuthor = ej2_base_1.SanitizeHtmlHelper.sanitize(annotationAuthor);
                }
            }
            if (annotation && annotation.Author !== annotationAuthor) {
                annotationAuthor = annotation.Author;
            }
            if (!annotationAuthor) {
                annotationAuthor = this.pdfViewer.annotationSettings.author;
            }
            return annotationAuthor;
        };
        Annotation.prototype.nameToHash = function (colour) {
            var colours = {
                'aliceblue': '#f0f8ff', 'antiquewhite': '#faebd7', 'aqua': '#00ffff', 'aquamarine': '#7fffd4', 'azure': '#f0ffff',
                'beige': '#f5f5dc', 'bisque': '#ffe4c4', 'black': '#000000', 'blanchedalmond': '#ffebcd', 'blue': '#0000ff',
                'blueviolet': '#8a2be2', 'brown': '#a52a2a', 'burlywood': '#deb887', 'yellow': '#ffff00', 'yellowgreen': '#9acd32',
                'cadetblue': '#5f9ea0', 'chartreuse': '#7fff00', 'chocolate': '#d2691e', 'coral': '#ff7f50',
                'cornflowerblue': '#6495ed', 'cornsilk': '#fff8dc', 'crimson': '#dc143c',
                'cyan': '#00ffff', 'darkblue': '#00008b', 'darkcyan': '#008b8b', 'darkgoldenrod': '#b8860b', 'darkgray': '#a9a9a9',
                'darkred': '#8b0000', 'darksalmon': '#e9967a', 'darkgreen': '#006400', 'darkkhaki': '#bdb76b',
                'darkmagenta': '#8b008b', 'darkolivegreen': '#556b2f', 'darkorange': '#ff8c00', 'darkorchid': '#9932cc',
                'darkseagreen': '#8fbc8f', 'darkslateblue': '#483d8b', 'darkslategray': '#2f4f4f', 'darkturquoise': '#00ced1',
                'darkviolet': '#9400d3', 'deeppink': '#ff1493', 'deepskyblue': '#00bfff', 'dimgray': '#696969',
                'dodgerblue': '#1e90ff', 'firebrick': '#b22222', 'floralwhite': '#fffaf0',
                'forestgreen': '#228b22', 'fuchsia': '#ff00ff', 'gainsboro': '#dcdcdc', 'ghostwhite': '#f8f8ff',
                'gold': '#ffd700', 'goldenrod': '#daa520', 'gray': '#808080', 'green': '#008000',
                'greenyellow': '#adff2f', 'honeydew': '#f0fff0', 'hotpink': '#ff69b4', 'indianred ': '#cd5c5c',
                'mediumorchid': '#ba55d3', 'mediumpurple': '#9370d8', 'indigo': '#4b0082', 'ivory': '#fffff0',
                'navy': '#000080', 'oldlace': '#fdf5e6', 'olive': '#808000', 'khaki': '#f0e68c',
                'lavender': '#e6e6fa', 'lavenderblush': '#fff0f5', 'lawngreen': '#7cfc00', 'lemonchiffon': '#fffacd',
                'lightblue': '#add8e6', 'lightcoral': '#f08080', 'lightcyan': '#e0ffff',
                'lightgoldenrodyellow': '#fafad2', 'lightgrey': '#d3d3d3', 'lightgreen': '#90ee90',
                'lightpink': '#ffb6c1', 'lightsalmon': '#ffa07a', 'lightseagreen': '#20b2aa',
                'lightskyblue': '#87cefa', 'lightslategray': '#778899', 'lightsteelblue': '#b0c4de',
                'lightyellow': '#ffffe0', 'lime': '#00ff00', 'limegreen': '#32cd32', 'linen': '#faf0e6',
                'magenta': '#ff00ff', 'maroon': '#800000', 'mediumaquamarine': '#66cdaa', 'mediumblue': '#0000cd',
                'mediumseagreen': '#3cb371', 'mediumslateblue': '#7b68ee', 'mediumspringgreen': '#00fa9a',
                'mediumturquoise': '#48d1cc', 'mediumvioletred': '#c71585', 'midnightblue': '#191970',
                'mintcream': '#f5fffa', 'mistyrose': '#ffe4e1', 'moccasin': '#ffe4b5', 'navajowhite': '#ffdead',
                'rebeccapurple': '#663399', 'red': '#ff0000', 'rosybrown': '#bc8f8f', 'royalblue': '#4169e1',
                'olivedrab': '#6b8e23', 'orange': '#ffa500', 'orangered': '#ff4500', 'orchid': '#da70d6',
                'palegoldenrod': '#eee8aa', 'palegreen': '#98fb98', 'paleturquoise': '#afeeee',
                'palevioletred': '#d87093', 'papayawhip': '#ffefd5', 'peachpuff': '#ffdab9', 'peru': '#cd853f',
                'wheat': '#f5deb3', 'white': '#ffffff', 'whitesmoke': '#f5f5f5', 'pink': '#ffc0cb', 'plum': '#dda0dd',
                'steelblue': '#4682b4', 'violet': '#ee82ee', 'powderblue': '#b0e0e6', 'purple': '#800080',
                'saddlebrown': '#8b4513', 'salmon': '#fa8072', 'sandybrown': '#f4a460', 'seagreen': '#2e8b57',
                'seashell': '#fff5ee', 'sienna': '#a0522d', 'silver': '#c0c0c0', 'skyblue': '#87ceeb',
                'slateblue': '#6a5acd', 'slategray': '#708090', 'snow': '#fffafa', 'springgreen': '#00ff7f',
                'tan': '#d2b48c', 'teal': '#008080', 'thistle': '#d8bfd8', 'tomato': '#ff6347', 'turquoise': '#40e0d0'
            };
            if (typeof colours[colour.toLowerCase()] !== 'undefined') {
                return colours[colour.toLowerCase()];
            }
            return '';
        };
        Annotation.prototype.updateFreeTextFontStyle = function (font) {
            var fontStyle = 0;
            if (font.isBold === 1) {
                fontStyle = 1;
            }
            else if (font.isItalic === 2) {
                fontStyle = 2;
            }
            else if (font.isUnderline === 4) {
                fontStyle = 4;
            }
            else if (font.isStrikeout === 8) {
                fontStyle = 8;
            }
            else {
                fontStyle = { isBold: font.isBold, isItalic: font.isItalic, isUnderline: font.isUnderline, isStrikeout: font.isStrikeout };
            }
            return fontStyle;
        };
        Annotation.prototype.setFreeTextFontStyle = function (fontStyle) {
            if (fontStyle === 1) {
                return { isBold: true };
            }
            else if (fontStyle === 2) {
                return { isItalic: true };
            }
            else if (fontStyle === 4) {
                return { isUnderline: true };
            }
            else if (fontStyle === 8) {
                return { isStrikeout: true };
            }
            else {
                return { isBold: fontStyle.isBold, isItalic: fontStyle.isItalic, isUnderline: fontStyle.isUnderline,
                    isStrikeout: fontStyle.isStrikeout };
            }
        };
        Annotation.prototype.findAnnotationSettings = function (annotation, isSettings) {
            var annotSettings = this.pdfViewer.annotationSettings;
            if (annotation) {
                var shapeType = annotation.shapeAnnotationType;
                if (shapeType === 'StickyNotes' && this.pdfViewer.stickyNotesSettings) {
                    annotSettings = this.pdfViewer.stickyNotesSettings;
                }
                else if (shapeType === 'Stamp' || shapeType === 'Image') {
                    annotSettings = this.pdfViewer.stampSettings;
                    if ((shapeType === 'Image')) {
                        annotSettings = this.pdfViewer.customStampSettings;
                    }
                }
                else if (shapeType === 'FreeText') {
                    annotSettings = this.pdfViewer.freeTextSettings;
                }
                else if (annotation.measureType === '') {
                    if (shapeType === 'Line') {
                        annotSettings = this.pdfViewer.lineSettings;
                    }
                    else if ((shapeType === 'Arrow' || shapeType === 'LineWidthArrowHead')) {
                        annotSettings = this.pdfViewer.arrowSettings;
                    }
                    else if (shapeType === 'Rectangle') {
                        annotSettings = this.pdfViewer.rectangleSettings;
                    }
                    else if ((shapeType === 'Circle' || shapeType === 'Ellipse')) {
                        annotSettings = this.pdfViewer.circleSettings;
                    }
                    else if (shapeType === 'Polygon' && this.pdfViewer.polygonSettings) {
                        annotSettings = this.pdfViewer.polygonSettings;
                    }
                }
                else if (annotation.measureType !== '') {
                    if (annotation.measureType === 'Distance') {
                        annotSettings = this.pdfViewer.distanceSettings;
                    }
                    else if (annotation.measureType === 'Perimeter') {
                        annotSettings = this.pdfViewer.perimeterSettings;
                    }
                    else if (annotation.measureType === 'Area') {
                        annotSettings = this.pdfViewer.areaSettings;
                    }
                    else if (annotation.measureType === 'Radius') {
                        annotSettings = this.pdfViewer.radiusSettings;
                    }
                    else if (annotation.measureType === 'Volume') {
                        annotSettings = this.pdfViewer.volumeSettings;
                    }
                }
            }
            var settings = annotation ? annotation.annotationSettings : {};
            if (settings && (settings.minWidth || settings.maxWidth || settings.minHeight || settings.maxHeight)) {
                return this.updateSettings(settings);
            }
            else if (isSettings) {
                return this.updateSettings(annotSettings);
            }
            else {
                return annotSettings;
            }
        };
        Annotation.prototype.updateAnnotationSettings = function (annotation) {
            var annotSettings = this.pdfViewer.annotationSettings;
            if (annotation.AnnotType === 'sticky') {
                annotSettings = this.pdfViewer.stickyNotesSettings;
            }
            else if (annotation.AnnotType === 'stamp' || annotation.AnnotType === 'image' || annotation.AnnotType === 'Image') {
                annotSettings = this.pdfViewer.stampSettings;
                if ((annotation.Subject === 'image' || annotation.Subject === 'Image')) {
                    annotSettings = this.pdfViewer.customStampSettings;
                }
            }
            else if (annotation.AnnotType === 'freeText') {
                annotSettings = this.pdfViewer.freeTextSettings;
            }
            else if (annotation.AnnotType === 'ink' || annotation.AnnotationType === 'Ink') {
                annotSettings = this.pdfViewer.inkAnnotationSettings;
            }
            else if (annotation.AnnotType === 'shape') {
                if (annotation.Subject === 'Line') {
                    annotSettings = this.pdfViewer.lineSettings;
                }
                else if ((annotation.Subject === 'Arrow' || annotation.Subject === 'LineWidthArrowHead')) {
                    annotSettings = this.pdfViewer.arrowSettings;
                }
                else if ((annotation.Subject === 'Rectangle' || annotation.Subject === 'Square')) {
                    annotSettings = this.pdfViewer.rectangleSettings;
                }
                else if ((annotation.Subject === 'Circle' || annotation.Subject === 'Ellipse' || annotation.Subject === 'Oval')) {
                    annotSettings = this.pdfViewer.circleSettings;
                }
                else if (annotation.Subject === 'Polygon') {
                    annotSettings = this.pdfViewer.polygonSettings;
                }
            }
            else if (annotation.AnnotType === 'shape_measure') {
                if ((annotation.Subject === 'Distance' || annotation.Subject === 'Distance calculation')) {
                    annotSettings = this.pdfViewer.distanceSettings;
                }
                else if ((annotation.Subject === 'Perimeter' || annotation.Subject === 'Perimeter calculation')) {
                    annotSettings = this.pdfViewer.perimeterSettings;
                }
                else if ((annotation.Subject === 'Area' || annotation.Subject === 'Area calculation')) {
                    annotSettings = this.pdfViewer.areaSettings;
                }
                else if ((annotation.Subject === 'Radius' || annotation.Subject === 'Radius calculation')) {
                    annotSettings = this.pdfViewer.radiusSettings;
                }
                else if ((annotation.Subject === 'Volume' || annotation.Subject === 'Volume calculation')) {
                    annotSettings = this.pdfViewer.volumeSettings;
                }
            }
            else if (annotation.shapeAnnotationType === 'textMarkup') {
                if (annotation.subject === 'Highlight') {
                    annotSettings = this.pdfViewer.highlightSettings;
                }
                else if (annotation.subject === 'Underline') {
                    annotSettings = this.pdfViewer.underlineSettings;
                }
                else if (annotation.subject === 'Strikethrough') {
                    annotSettings = this.pdfViewer.strikethroughSettings;
                }
                else if (annotation.subject === 'Squiggly') {
                    annotSettings = this.pdfViewer.squigglySettings;
                }
            }
            return this.updateSettings(annotSettings);
        };
        Annotation.prototype.updateSettings = function (annotationSettings) {
            var maxHeight = 0;
            var maxWidth = 0;
            var minHeight = 0;
            var minWidth = 0;
            var isLock = false;
            var isPrint = true;
            var settings = this.pdfViewer.annotationSettings;
            if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {
                maxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;
                maxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;
                minHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;
                minWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;
            }
            else if (settings.minWidth || settings.maxWidth || settings.minHeight || settings.maxHeight) {
                maxHeight = settings.maxHeight ? settings.maxHeight : 2000;
                maxWidth = settings.maxWidth ? settings.maxWidth : 2000;
                minHeight = settings.minHeight ? settings.minHeight : 0;
                minWidth = settings.minWidth ? settings.minWidth : 0;
            }
            isLock = annotationSettings.isLock ? annotationSettings.isLock : settings.isLock ? settings.isLock : false;
            isPrint = annotationSettings.isPrint;
            return { minWidth: minWidth, maxWidth: maxWidth, minHeight: minHeight, maxHeight: maxHeight, isLock: isLock, isPrint: isPrint };
        };
        Annotation.prototype.getOverlappedAnnotations = function (annotation, pageNumber) {
            var pageCollections = this.getPageShapeAnnotations(pageNumber);
            var selectedAnnotation;
            for (var i = 0; i < pageCollections.length; i++) {
                if (annotation.annotName === pageCollections[parseInt(i.toString(), 10)].annotName) {
                    selectedAnnotation = pageCollections[parseInt(i.toString(), 10)];
                    break;
                }
            }
            var annotationCollection = this.findOverlappedAnnotations(selectedAnnotation, pageCollections);
            return annotationCollection;
        };
        Annotation.prototype.getPageShapeAnnotations = function (pageNumber) {
            var pageCollections = [];
            var inkAnnotObject = this.pdfViewer.annotationsCollection.get(this.pdfViewerBase.documentId + '_annotations_ink');
            if (inkAnnotObject) {
                var index = this.getPageCollection(inkAnnotObject, pageNumber);
                if (index != null && inkAnnotObject[parseInt(index.toString(), 10)]) {
                    var inkAnnotations = inkAnnotObject[parseInt(index.toString(), 10)].annotations;
                    if (inkAnnotations && inkAnnotations.length > 0) {
                        for (var i = 0; i < inkAnnotations.length; i++) {
                            pageCollections.push(inkAnnotations[parseInt(i.toString(), 10)]);
                        }
                    }
                }
            }
            var shapeAnnotObject = this.pdfViewer.annotationsCollection.get(this.pdfViewerBase.documentId + '_annotations_shape');
            if (shapeAnnotObject) {
                var index = this.getPageCollection(shapeAnnotObject, pageNumber);
                if (index != null && shapeAnnotObject[parseInt(index.toString(), 10)]) {
                    var shapeAnnotations = shapeAnnotObject[parseInt(index.toString(), 10)].annotations;
                    if (shapeAnnotations && shapeAnnotations.length > 0) {
                        for (var i = 0; i < shapeAnnotations.length; i++) {
                            pageCollections.push(shapeAnnotations[parseInt(i.toString(), 10)]);
                        }
                    }
                }
            }
            var redactionObject = this.pdfViewer.annotationsCollection.get(this.pdfViewerBase.documentId + '_annotations_redaction');
            if (redactionObject) {
                var index = this.getPageCollection(redactionObject, pageNumber);
                if (index != null && redactionObject[index]) {
                    var redactionAnnotations = redactionObject[index].annotations;
                    if (redactionAnnotations && redactionAnnotations.length > 0) {
                        for (var i = 0; i < redactionAnnotations.length; i++) {
                            pageCollections.push(redactionAnnotations[i]);
                        }
                    }
                }
            }
            var measureAnnotationObject = this.pdfViewer.annotationsCollection.get(this.pdfViewerBase.documentId + '_annotations_shape_measure');
            if (measureAnnotationObject) {
                var index = this.getPageCollection(measureAnnotationObject, pageNumber);
                if (index != null && measureAnnotationObject[parseInt(index.toString(), 10)]) {
                    var measureAnnotations = measureAnnotationObject[parseInt(index.toString(), 10)].annotations;
                    if (measureAnnotations && measureAnnotations.length > 0) {
                        for (var i = 0; i < measureAnnotations.length; i++) {
                            pageCollections.push(measureAnnotations[parseInt(i.toString(), 10)]);
                        }
                    }
                }
            }
            var stampAnnotationObject = this.pdfViewer.annotationsCollection.get(this.pdfViewerBase.documentId + '_annotations_stamp');
            if (stampAnnotationObject) {
                var index = this.getPageCollection(stampAnnotationObject, pageNumber);
                if (index != null && stampAnnotationObject[parseInt(index.toString(), 10)]) {
                    var stampAnnotations = stampAnnotationObject[parseInt(index.toString(), 10)].annotations;
                    if (stampAnnotations && stampAnnotations.length > 0) {
                        for (var i = 0; i < stampAnnotations.length; i++) {
                            pageCollections.push(stampAnnotations[parseInt(i.toString(), 10)]);
                        }
                    }
                }
            }
            var freeTextAnnotationObject = this.pdfViewer.annotationsCollection.get(this.pdfViewerBase.documentId + '_annotations_freetext');
            if (freeTextAnnotationObject) {
                var index = this.getPageCollection(freeTextAnnotationObject, pageNumber);
                if (index != null && freeTextAnnotationObject[parseInt(index.toString(), 10)]) {
                    var freeTextAnnotations = freeTextAnnotationObject[parseInt(index.toString(), 10)].annotations;
                    if (freeTextAnnotations && freeTextAnnotations.length > 0) {
                        for (var i = 0; i < freeTextAnnotations.length; i++) {
                            pageCollections.push(freeTextAnnotations[parseInt(i.toString(), 10)]);
                        }
                    }
                }
            }
            var stickyNotesAnnotationObject = this.pdfViewer.annotationsCollection.get(this.pdfViewerBase.documentId + '_annotations_sticky');
            if (stickyNotesAnnotationObject) {
                var index = this.getPageCollection(stickyNotesAnnotationObject, pageNumber);
                if (index != null && stickyNotesAnnotationObject[parseInt(index.toString(), 10)]) {
                    var stickyNotesAnnotations = stickyNotesAnnotationObject[parseInt(index.toString(), 10)].annotations;
                    if (stickyNotesAnnotations && stickyNotesAnnotations.length > 0) {
                        for (var i = 0; i < stickyNotesAnnotations.length; i++) {
                            pageCollections.push(stickyNotesAnnotations[parseInt(i.toString(), 10)]);
                        }
                    }
                }
            }
            var textMarkupAnnotationObject = this.pdfViewer.annotationsCollection.get(this.pdfViewerBase.documentId + '_annotations_textMarkup');
            if (textMarkupAnnotationObject) {
                var index = this.getPageCollection(textMarkupAnnotationObject, pageNumber);
                if (index != null && textMarkupAnnotationObject[parseInt(index.toString(), 10)]) {
                    var textMarkupAnnotations = textMarkupAnnotationObject[parseInt(index.toString(), 10)].annotations;
                    if (textMarkupAnnotations && textMarkupAnnotations.length > 0) {
                        for (var i = 0; i < textMarkupAnnotations.length; i++) {
                            pageCollections.push(textMarkupAnnotations[parseInt(i.toString(), 10)]);
                        }
                    }
                }
            }
            return pageCollections;
        };
        Annotation.prototype.findOverlappedAnnotations = function (annotation, pageCollections) {
            this.overlappedAnnotations = [];
            if (annotation && annotation.bounds) {
                if (annotation.shapeAnnotationType === 'textMarkup') {
                    for (var i = 0; i < annotation.bounds.length; i++) {
                        var bounds = this.orderTextMarkupBounds(annotation.bounds[parseInt(i.toString(), 10)]);
                        this.calculateOverlappedAnnotationBounds(annotation, bounds, pageCollections);
                    }
                }
                else {
                    this.calculateOverlappedAnnotationBounds(annotation, annotation.bounds, pageCollections);
                }
            }
            return this.overlappedAnnotations;
        };
        Annotation.prototype.calculateOverlappedAnnotationBounds = function (annotation, bounds, pageCollections) {
            var selectBounds = bounds;
            if (annotation.shapeAnnotationType === 'Ink') {
                selectBounds = { left: bounds.x, top: bounds.y, height: bounds.height, width: bounds.width };
            }
            var left = parseInt(selectBounds.left, 10);
            var top = parseInt(selectBounds.top, 10);
            var totalHeight = parseInt(selectBounds.top + selectBounds.height, 10);
            var totalWidth = parseInt(selectBounds.left + selectBounds.width, 10);
            for (var i = 0; i < pageCollections.length; i++) {
                if (annotation.annotName === pageCollections[parseInt(i.toString(), 10)].annotName) {
                    this.checkOverlappedCollections(pageCollections[parseInt(i.toString(), 10)], this.overlappedAnnotations);
                }
                else {
                    var boundsCount = 1;
                    if (pageCollections[parseInt(i.toString(), 10)].shapeAnnotationType === 'textMarkup') {
                        boundsCount = pageCollections[parseInt(i.toString(), 10)].bounds.length;
                    }
                    for (var j = 0; j < boundsCount; j++) {
                        var annotationBounds = void 0;
                        var annotationBoundsCollection = pageCollections[parseInt(i.toString(), 10)].bounds;
                        if (pageCollections[parseInt(i.toString(), 10)].shapeAnnotationType === 'Ink') {
                            annotationBoundsCollection = { left: annotationBoundsCollection.x, top: annotationBoundsCollection.y,
                                height: annotationBoundsCollection.height, width: annotationBoundsCollection.width };
                        }
                        if (pageCollections[parseInt(i.toString(), 10)].shapeAnnotationType !== 'textMarkup' && boundsCount === 1) {
                            annotationBounds = annotationBoundsCollection;
                        }
                        else {
                            annotationBounds = this.orderTextMarkupBounds(annotationBoundsCollection[parseInt(j.toString(), 10)]);
                        }
                        if (annotationBounds) {
                            var isOverlapped = false;
                            if (((left <= parseInt(annotationBounds.left, 10)) && (totalWidth >= parseInt(annotationBounds.left, 10))) ||
                                ((left <= parseInt(annotationBounds.left + annotationBounds.width, 10)) &&
                                    (totalWidth >= parseInt(annotationBounds.left + annotationBounds.width, 10)))) {
                                isOverlapped = true;
                            }
                            if (isOverlapped) {
                                if (((top <= parseInt(annotationBounds.top, 10)) && (totalHeight >= parseInt(annotationBounds.top, 10))) ||
                                    ((top <= parseInt(annotationBounds.top + annotationBounds.height, 10)) &&
                                        (totalHeight >= parseInt(annotationBounds.top + annotationBounds.height, 10)))) {
                                    isOverlapped = true;
                                }
                                else {
                                    isOverlapped = false;
                                }
                            }
                            if (isOverlapped) {
                                this.checkOverlappedCollections(pageCollections[parseInt(i.toString(), 10)], this.overlappedAnnotations);
                            }
                            else {
                                if (((parseInt(annotationBounds.left, 10) <= left) &&
                                    (parseInt(annotationBounds.left + annotationBounds.width, 10) >= left)) ||
                                    ((totalWidth >= parseInt(annotationBounds.left, 10)) &&
                                        (totalWidth <= parseInt(annotationBounds.left + annotationBounds.width, 10)))) {
                                    isOverlapped = true;
                                }
                                if (isOverlapped) {
                                    if (((parseInt(annotationBounds.top, 10) <= top) &&
                                        parseInt(annotationBounds.top + annotationBounds.height, 10) >= top) ||
                                        ((totalHeight >= parseInt(annotationBounds.top, 10)) &&
                                            (totalHeight <= parseInt(annotationBounds.top + annotationBounds.height, 10)))) {
                                        isOverlapped = true;
                                    }
                                    else {
                                        isOverlapped = false;
                                    }
                                }
                                if (isOverlapped) {
                                    this.checkOverlappedCollections(pageCollections[parseInt(i.toString(), 10)], this.overlappedAnnotations);
                                }
                                else {
                                    if (((left <= parseInt(annotationBounds.left, 10)) &&
                                        (totalWidth >= parseInt(annotationBounds.left, 10))) ||
                                        ((left <= parseInt(annotationBounds.left + annotationBounds.width, 10)) &&
                                            (totalWidth >= parseInt(annotationBounds.left + annotationBounds.width, 10)))) {
                                        isOverlapped = true;
                                    }
                                    if (isOverlapped) {
                                        if (((parseInt(annotationBounds.top, 10) <= top) &&
                                            parseInt(annotationBounds.top + annotationBounds.height, 10) >= top) ||
                                            ((totalHeight >= parseInt(annotationBounds.top, 10)) &&
                                                (totalHeight <= parseInt(annotationBounds.top + annotationBounds.height, 10)))) {
                                            isOverlapped = true;
                                        }
                                        else {
                                            isOverlapped = false;
                                        }
                                    }
                                    if (isOverlapped) {
                                        this.checkOverlappedCollections(pageCollections[parseInt(i.toString(), 10)], this.overlappedAnnotations);
                                    }
                                    else {
                                        if (((parseInt(annotationBounds.left, 10) <= left) &&
                                            (parseInt(annotationBounds.left + annotationBounds.width, 10) >= left)) ||
                                            ((totalWidth >= parseInt(annotationBounds.left, 10)) &&
                                                (totalWidth <= parseInt(annotationBounds.left + annotationBounds.width, 10)))) {
                                            isOverlapped = true;
                                        }
                                        if (isOverlapped) {
                                            if (((top <= parseInt(annotationBounds.top, 10)) &&
                                                (totalHeight >= parseInt(annotationBounds.top, 10))) ||
                                                ((top <= parseInt(annotationBounds.top + annotationBounds.height, 10)) &&
                                                    (totalHeight >= parseInt(annotationBounds.top + annotationBounds.height, 10)))) {
                                                isOverlapped = true;
                                            }
                                            else {
                                                isOverlapped = false;
                                            }
                                        }
                                        if (isOverlapped) {
                                            this.checkOverlappedCollections(pageCollections[parseInt(i.toString(), 10)], this.overlappedAnnotations);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        };
        Annotation.prototype.findAnnotationMode = function (annotation, pageNumber, type) {
            var importCollection = this.pdfViewer.viewerBase.importedAnnotation[parseInt(pageNumber.toString(), 10)];
            if (importCollection) {
                var collection = void 0;
                if (type === 'shape') {
                    collection = importCollection.shapeAnnotation;
                }
                else if (type === 'shape_measure') {
                    collection = importCollection.measureShapeAnnotation;
                }
                else if (type === 'freeText') {
                    collection = importCollection.freeTextAnnotation;
                }
                else if (type === 'stamp') {
                    collection = importCollection.stampAnnotations;
                }
                else if (type === 'sticky') {
                    collection = importCollection.stickyNotesAnnotation;
                }
                else if (type === 'textMarkup') {
                    collection = importCollection.textMarkupAnnotation;
                }
                if (collection) {
                    for (var i = 0; i < collection.length; i++) {
                        if (collection[parseInt(i.toString(), 10)].AnnotName === annotation.AnnotName) {
                            return 'Imported Annotation';
                        }
                    }
                }
            }
            return 'Existing Annotation';
        };
        Annotation.prototype.checkOverlappedCollections = function (annotation, overlappedCollections) {
            if (overlappedCollections.length > 0) {
                var isAdded = false;
                for (var i = 0; i < overlappedCollections.length; i++) {
                    if (annotation.annotName === overlappedCollections[parseInt(i.toString(), 10)].annotName &&
                        annotation.bounds === overlappedCollections[parseInt(i.toString(), 10)].bounds) {
                        isAdded = true;
                        break;
                    }
                }
                if (!isAdded) {
                    overlappedCollections.push(annotation);
                }
            }
            else {
                overlappedCollections.push(annotation);
            }
        };
        Annotation.prototype.orderTextMarkupBounds = function (bounds) {
            if (bounds.Left || bounds.Width) {
                return { left: bounds.Left, top: bounds.Top, height: bounds.Height, width: bounds.Width };
            }
            else {
                return { left: bounds.left, top: bounds.top, height: bounds.height, width: bounds.width };
            }
        };
        Annotation.prototype.updateModifiedDate = function (annotation) {
            if (annotation.modifiedDate) {
                annotation.modifiedDate = this.setAnnotationModifiedDate(annotation.modifiedDate);
            }
            if (annotation.comments && annotation.comments.length > 0) {
                for (var i = 0; i < annotation.comments.length; i++) {
                    if (annotation.comments[parseInt(i.toString(), 10)].modifiedDate) {
                        annotation.comments[parseInt(i.toString(), 10)].modifiedDate =
                            this.setAnnotationModifiedDate(annotation.comments[parseInt(i.toString(), 10)].modifiedDate);
                        if (annotation.comments[parseInt(i.toString(), 10)].review &&
                            annotation.comments[parseInt(i.toString(), 10)].review.modifiedDate) {
                            annotation.comments[parseInt(i.toString(), 10)].review.modifiedDate =
                                this.setAnnotationModifiedDate(annotation.comments[parseInt(i.toString(), 10)].review.modifiedDate);
                        }
                    }
                }
            }
            if (annotation.review && annotation.review.modifiedDate) {
                annotation.review.modifiedDate = this.setAnnotationModifiedDate(annotation.review.modifiedDate);
            }
        };
        Annotation.prototype.setAnnotationModifiedDate = function (date) {
            var modifiedTime;
            var modifiedDateTime;
            if (date !== '') {
                var time = parseInt(date.split(' ')[1].split(':')[0], 10);
                if (date.split(' ').length === 3) {
                    modifiedTime = time + ':' + date.split(' ')[1].split(':')[1] + ':' + date.split(' ')[1].split(':')[2] + ' ' + date.split(' ')[2];
                }
                else {
                    if (time >= 12) {
                        if (time === 12) {
                            modifiedTime = time + ':' + date.split(' ')[1].split(':')[1] + ':' + date.split(' ')[1].split(':')[2] + ' PM';
                        }
                        else {
                            modifiedTime = (time - 12) + ':' + date.split(' ')[1].split(':')[1] + ':' + date.split(' ')[1].split(':')[2] + ' PM';
                        }
                    }
                    else {
                        modifiedTime = time + ':' + date.split(' ')[1].split(':')[1] + ':' + date.split(' ')[1].split(':')[2] + ' AM';
                    }
                }
                var dateString = date.split(' ')[0];
                var dateStringSpilt = date.split(',');
                if (dateStringSpilt.length > 1) {
                    modifiedDateTime = dateString + (' ') + modifiedTime;
                }
                else {
                    modifiedDateTime = dateString + (', ') + modifiedTime;
                }
            }
            else {
                return date;
            }
            var isTwelveHourFormat = /\u0041\u004D|\u0050\u004D/i.test(modifiedDateTime);
            if (isTwelveHourFormat) {
                var modifiedDateToUTC = new Date(modifiedDateTime);
                modifiedDateTime = modifiedDateToUTC.toISOString();
            }
            return modifiedDateTime;
        };
        Annotation.prototype.clear = function () {
            if (this.shapeAnnotationModule) {
                this.shapeAnnotationModule.shapeCount = 0;
            }
            if (this.measureAnnotationModule) {
                this.measureAnnotationModule.measureShapeCount = 0;
            }
            if (this.textMarkupAnnotationModule) {
                this.textMarkupAnnotationModule.clear();
            }
            if (this.stickyNotesAnnotationModule) {
                this.stickyNotesAnnotationModule.clear();
            }
            this.pdfViewer.refresh();
            this.undoCommentsElement = [];
            this.redoCommentsElement = [];
            this.overlappedAnnotations = [];
            this.previousIndex = null;
            if (this.pdfViewer.annotation && this.pdfViewer.annotation.stampAnnotationModule) {
                this.pdfViewer.annotation.stampAnnotationModule.stampPageNumber = [];
            }
            if (this.pdfViewer.annotation && this.pdfViewer.annotation.redactionAnnotationModule) {
                this.pdfViewer.annotation.redactionAnnotationModule.redactionPageNumbers = [];
            }
            if (this.pdfViewer.annotation && this.pdfViewer.annotation.freeTextAnnotationModule) {
                this.pdfViewer.annotation.freeTextAnnotationModule.freeTextPageNumbers = [];
                this.freeTextAnnotationModule.previousText = 'Type Here';
            }
            if (this.pdfViewer.annotation && this.pdfViewer.annotation.inkAnnotationModule) {
                this.pdfViewer.annotation.inkAnnotationModule.inkAnnotationindex = [];
            }
            this.pdfViewer.annotationsCollection.delete(this.pdfViewerBase.documentId + '_annotations_shape');
            this.pdfViewer.annotationsCollection.delete(this.pdfViewerBase.documentId + '_annotations_shape_measure');
            this.pdfViewer.annotationsCollection.delete(this.pdfViewerBase.documentId + '_annotations_stamp');
            this.pdfViewer.annotationsCollection.delete(this.pdfViewerBase.documentId + '_annotations_sticky');
        };
        Annotation.prototype.retrieveAnnotationCollection = function () {
            return this.pdfViewer.annotationCollection;
        };
        Annotation.prototype.checkAllowedInteractions = function (interaction, annotation) {
            var annotationInteraction = this.updateAnnotationAllowedInteractions(annotation);
            if (annotationInteraction && annotationInteraction.length > 0) {
                for (var i = 0; i < annotationInteraction.length; i++) {
                    if (interaction === 'Select') {
                        if (annotationInteraction[parseInt(i.toString(), 10)] === 'Move' || annotationInteraction[parseInt(i.toString(), 10)] === 'Resize' || annotationInteraction[parseInt(i.toString(), 10)] === 'Delete' || annotationInteraction[parseInt(i.toString(), 10)] === 'PropertyChange' || annotationInteraction[parseInt(i.toString(), 10)] === 'Select') {
                            return true;
                        }
                    }
                    else {
                        if (annotationInteraction[parseInt(i.toString(), 10)] === interaction) {
                            return true;
                        }
                    }
                }
            }
            return false;
        };
        Annotation.prototype.checkContextMenuDeleteItem = function (menuObj) {
            var annotation = this.findCurrentAnnotation();
            if (annotation && annotation.annotationSettings) {
                if (annotation.annotationSettings.isLock) {
                    if (this.checkAllowedInteractions('Delete', annotation)) {
                        menuObj.enableItems([this.pdfViewer.localeObj.getConstant('Delete Context')], true);
                    }
                    else {
                        menuObj.enableItems([this.pdfViewer.localeObj.getConstant('Delete Context')], false);
                    }
                }
                else {
                    menuObj.enableItems([this.pdfViewer.localeObj.getConstant('Delete Context')], true);
                }
            }
        };
        Annotation.prototype.isEnableDelete = function () {
            var annotation = this.findCurrentAnnotation();
            if (annotation && annotation.annotationSettings) {
                if (annotation.annotationSettings.isLock) {
                    if (this.checkAllowedInteractions('Delete', annotation)) {
                        return true;
                    }
                    else {
                        return false;
                    }
                }
                else {
                    return true;
                }
            }
            return false;
        };
        Annotation.prototype.findCurrentAnnotation = function () {
            if (this.textMarkupAnnotationModule && this.textMarkupAnnotationModule.currentTextMarkupAnnotation) {
                return this.textMarkupAnnotationModule.currentTextMarkupAnnotation;
            }
            if (this.pdfViewer.selectedItems.annotations && this.pdfViewer.selectedItems.annotations[0]) {
                return this.pdfViewer.selectedItems.annotations[0];
            }
            return null;
        };
        Annotation.prototype.updateAnnotationAllowedInteractions = function (annotation) {
            var annotationInteraction = ['None'];
            if (annotation) {
                if (annotation.shapeAnnotationType === 'FreeText' && this.pdfViewer.freeTextSettings.allowedInteractions) {
                    annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.freeTextSettings.allowedInteractions, annotation.allowedInteractions);
                }
                else if (annotation.shapeAnnotationType === 'Ink' && this.pdfViewer.inkAnnotationSettings.allowedInteractions) {
                    annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.inkAnnotationSettings.allowedInteractions, annotation.allowedInteractions);
                }
                else if (annotation.shapeAnnotationType === 'StickyNotes' && this.pdfViewer.stickyNotesSettings.allowedInteractions) {
                    annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.stickyNotesSettings.allowedInteractions, annotation.allowedInteractions);
                }
                else if (annotation.shapeAnnotationType === 'Stamp' && this.pdfViewer.stampSettings.allowedInteractions) {
                    annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.stampSettings.allowedInteractions, annotation.allowedInteractions);
                }
                else if (annotation.shapeAnnotationType === 'Image' && this.pdfViewer.customStampSettings.allowedInteractions) {
                    annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.customStampSettings.allowedInteractions, annotation.allowedInteractions);
                }
                else if (annotation.shapeAnnotationType === 'textMarkup') {
                    if (annotation.textMarkupAnnotationType === 'Highlight' && this.pdfViewer.highlightSettings.allowedInteractions) {
                        annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.highlightSettings.allowedInteractions, annotation.allowedInteractions);
                    }
                    else if (annotation.textMarkupAnnotationType === 'Underline' && this.pdfViewer.underlineSettings.allowedInteractions) {
                        annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.underlineSettings.allowedInteractions, annotation.allowedInteractions);
                    }
                    else if (annotation.textMarkupAnnotationType === 'Strikethrough' && this.pdfViewer.strikethroughSettings.allowedInteractions) {
                        annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.strikethroughSettings.allowedInteractions, annotation.allowedInteractions);
                    }
                    else if (annotation.textMarkupAnnotationType === 'Squiggly' && this.pdfViewer.squigglySettings.allowedInteractions) {
                        annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.squigglySettings.allowedInteractions, annotation.allowedInteractions);
                    }
                }
                else {
                    if (annotation.measureType !== '') {
                        if (annotation.measureType === 'Distance' && this.pdfViewer.distanceSettings.allowedInteractions) {
                            annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.distanceSettings.
                                allowedInteractions, annotation.allowedInteractions);
                        }
                        else if (annotation.measureType === 'Perimeter' && this.pdfViewer.perimeterSettings.allowedInteractions) {
                            annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.perimeterSettings.
                                allowedInteractions, annotation.allowedInteractions);
                        }
                        else if (annotation.measureType === 'Radius' && this.pdfViewer.radiusSettings.allowedInteractions) {
                            annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.radiusSettings.
                                allowedInteractions, annotation.allowedInteractions);
                        }
                        else if (annotation.measureType === 'Area' && this.pdfViewer.areaSettings.allowedInteractions) {
                            annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.areaSettings.
                                allowedInteractions, annotation.allowedInteractions);
                        }
                        else if (annotation.measureType === 'Volume' && this.pdfViewer.volumeSettings.allowedInteractions) {
                            annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.volumeSettings.
                                allowedInteractions, annotation.allowedInteractions);
                        }
                    }
                    else {
                        if (annotation.shapeAnnotationType === 'Line' && this.pdfViewer.lineSettings.allowedInteractions) {
                            annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.lineSettings.
                                allowedInteractions, annotation.allowedInteractions);
                        }
                        else if ((annotation.shapeAnnotationType === 'Arrow' || annotation.shapeAnnotationType === 'LineWidthArrowHead') && this.pdfViewer.arrowSettings.allowedInteractions) {
                            annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.arrowSettings.
                                allowedInteractions, annotation.allowedInteractions);
                        }
                        else if ((annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Ellipse' || annotation.shapeAnnotationType === 'Oval') && this.pdfViewer.circleSettings.allowedInteractions) {
                            annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.circleSettings.
                                allowedInteractions, annotation.allowedInteractions);
                        }
                        else if ((annotation.shapeAnnotationType === 'Rectangle' || annotation.shapeAnnotationType === 'Square') && this.pdfViewer.rectangleSettings.allowedInteractions) {
                            annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.rectangleSettings.
                                allowedInteractions, annotation.allowedInteractions);
                        }
                        else if (annotation.shapeAnnotationType === 'Polygon' && this.pdfViewer.polygonSettings.allowedInteractions) {
                            annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.polygonSettings.
                                allowedInteractions, annotation.allowedInteractions);
                        }
                    }
                }
            }
            return annotationInteraction;
        };
        Annotation.prototype.checkIsLockSettings = function (annotation) {
            var isLocked = false;
            if (annotation) {
                if (annotation.shapeAnnotationType === 'FreeText') {
                    isLocked = this.checkLockSettings(this.pdfViewer.freeTextSettings.isLock);
                }
                else if (annotation.shapeAnnotationType === 'Ink') {
                    isLocked = this.checkLockSettings(this.pdfViewer.inkAnnotationSettings.isLock);
                }
                else if (annotation.shapeAnnotationType === 'StickyNotes') {
                    isLocked = this.checkLockSettings(this.pdfViewer.stickyNotesSettings.isLock);
                }
                else if (annotation.shapeAnnotationType === 'Stamp') {
                    isLocked = this.checkLockSettings(this.pdfViewer.stampSettings.isLock);
                }
                else if (annotation.shapeAnnotationType === 'Image') {
                    isLocked = this.checkLockSettings(this.pdfViewer.customStampSettings.isLock);
                }
                else if (annotation.shapeAnnotationType === 'textMarkup') {
                    if (annotation.textMarkupAnnotationType === 'Highlight') {
                        isLocked = this.checkLockSettings(this.pdfViewer.highlightSettings.isLock);
                    }
                    else if (annotation.textMarkupAnnotationType === 'Underline') {
                        isLocked = this.checkLockSettings(this.pdfViewer.underlineSettings.isLock);
                    }
                    else if (annotation.textMarkupAnnotationType === 'Strikethrough') {
                        isLocked = this.checkLockSettings(this.pdfViewer.strikethroughSettings.isLock);
                    }
                    else if (annotation.textMarkupAnnotationType === 'Squiggly') {
                        isLocked = this.checkLockSettings(this.pdfViewer.squigglySettings.isLock);
                    }
                }
                else {
                    if (annotation.measureType !== '') {
                        if (annotation.measureType === 'Distance') {
                            isLocked = this.checkLockSettings(this.pdfViewer.distanceSettings.isLock);
                        }
                        else if (annotation.measureType === 'Perimeter') {
                            isLocked = this.checkLockSettings(this.pdfViewer.perimeterSettings.isLock);
                        }
                        else if (annotation.measureType === 'Radius') {
                            isLocked = this.checkLockSettings(this.pdfViewer.radiusSettings.isLock);
                        }
                        else if (annotation.measureType === 'Area') {
                            isLocked = this.checkLockSettings(this.pdfViewer.areaSettings.isLock);
                        }
                        else if (annotation.measureType === 'Volume') {
                            isLocked = this.checkLockSettings(this.pdfViewer.volumeSettings.isLock);
                        }
                    }
                    else {
                        if (annotation.shapeAnnotationType === 'Line') {
                            isLocked = this.checkLockSettings(this.pdfViewer.lineSettings.isLock);
                        }
                        else if ((annotation.shapeAnnotationType === 'Arrow' || annotation.shapeAnnotationType === 'LineWidthArrowHead')) {
                            isLocked = this.checkLockSettings(this.pdfViewer.arrowSettings.isLock);
                        }
                        else if ((annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Ellipse' || annotation.shapeAnnotationType === 'Oval')) {
                            isLocked = this.checkLockSettings(this.pdfViewer.circleSettings.isLock);
                        }
                        else if ((annotation.shapeAnnotationType === 'Rectangle' || annotation.shapeAnnotationType === 'Square')) {
                            isLocked = this.checkLockSettings(this.pdfViewer.rectangleSettings.isLock);
                        }
                        else if (annotation.shapeAnnotationType === 'Polygon') {
                            isLocked = this.checkLockSettings(this.pdfViewer.polygonSettings.isLock);
                        }
                    }
                }
            }
            return isLocked;
        };
        Annotation.prototype.checkLockSettings = function (locked) {
            var islock = false;
            if (locked || this.pdfViewer.annotationSettings.isLock) {
                islock = true;
            }
            return islock;
        };
        Annotation.prototype.restrictContextMenu = function () {
            var isRestrict = false;
            var annotation = this.findCurrentAnnotation();
            if (annotation && this.checkIsLockSettings(annotation) && this.checkAllowedInteractions('Select', annotation)) {
                isRestrict = true;
            }
            return isRestrict;
        };
        Annotation.prototype.checkAllowedInteractionSettings = function (annotationInteraction, annotationAllowedInteraction) {
            if (annotationAllowedInteraction) {
                if (annotationAllowedInteraction.length === 1) {
                    if (annotationAllowedInteraction[0] !== 'None') {
                        return annotationAllowedInteraction;
                    }
                }
                else {
                    return annotationAllowedInteraction;
                }
            }
            if (annotationInteraction) {
                if (annotationInteraction.length === 1) {
                    if (annotationInteraction[0] !== 'None') {
                        return annotationInteraction;
                    }
                }
                else {
                    return annotationInteraction;
                }
            }
            if (this.pdfViewer.annotationSettings.allowedInteractions) {
                return this.pdfViewer.annotationSettings.allowedInteractions;
            }
            return ['None'];
        };
        Annotation.prototype.getValue = function (value, type) {
            type = !type ? 'hex' : type.toLowerCase();
            if (value[0] === 'r') {
                var cValue = this.convertRgbToNumberArray(value);
                if (type === 'hex' || type === 'hexa') {
                    var hex = this.rgbToHex(cValue);
                    return type === 'hex' ? hex.slice(0, 7) : hex;
                }
                else {
                    if (type === 'hsv') {
                        return this.convertToHsvString(this.rgbToHsv.apply(this, cValue.slice(0, 3)));
                    }
                    else {
                        if (type === 'hsva') {
                            return this.convertToHsvString(this.rgbToHsv.apply(this, cValue));
                        }
                        else {
                            return 'null';
                        }
                    }
                }
            }
            else {
                if (value[0] === 'h') {
                    var cValue = this.hsvToRgb.apply(this, this.convertRgbToNumberArray(value));
                    if (type === 'rgba') {
                        return this.convertToRgbString(cValue);
                    }
                    else {
                        if (type === 'hex' || type === 'hexa') {
                            var hex = this.rgbToHex(cValue);
                            return type === 'hex' ? hex.slice(0, 7) : hex;
                        }
                        else {
                            if (type === 'rgb') {
                                return this.convertToRgbString(cValue.slice(0, 3));
                            }
                            else {
                                return 'null';
                            }
                        }
                    }
                }
                else {
                    value = this.roundValue(value);
                    var rgb = this.hexToRgb(value);
                    if (type === 'rgb' || type === 'hsv') {
                        rgb = rgb.slice(0, 3);
                    }
                    if (type === 'rgba' || type === 'rgb') {
                        return this.convertToRgbString(rgb);
                    }
                    else {
                        if (type === 'hsva' || type === 'hsv') {
                            return this.convertToHsvString(this.rgbToHsv.apply(this, rgb));
                        }
                        else {
                            if (type === 'hex') {
                                return value.slice(0, 7);
                            }
                            else {
                                if (type === 'a') {
                                    return rgb[3].toString();
                                }
                                else {
                                    return 'null';
                                }
                            }
                        }
                    }
                }
            }
        };
        Annotation.prototype.convertRgbToNumberArray = function (value) {
            return (value.slice(value.indexOf('(') + 1, value.indexOf(')'))).split(',').map(function (n, i) {
                return (i !== 3) ? parseInt(n, 10) : parseFloat(n);
            });
        };
        Annotation.prototype.convertToRgbString = function (rgb) {
            return rgb.length ? rgb.length === 4 ? 'rgba(' + rgb.join() + ')' : 'rgb(' + rgb.join() + ')' : '';
        };
        Annotation.prototype.convertToHsvString = function (hsv) {
            return hsv.length === 4 ? 'hsva(' + hsv.join() + ')' : 'hsv(' + hsv.join() + ')';
        };
        Annotation.prototype.roundValue = function (value) {
            if (!value) {
                return '';
            }
            if (value[0] !== '#') {
                value = '#' + value;
            }
            var len = value.length;
            if (len === 4) {
                value += 'f';
                len = 5;
            }
            if (len === 5) {
                var tempValue = '';
                for (var i = 1, len_1 = value.length; i < len_1; i++) {
                    tempValue += (value.charAt(i) + value.charAt(i));
                }
                value = '#' + tempValue;
                len = 9;
            }
            if (len === 7) {
                value += 'ff';
            }
            return value;
        };
        Annotation.prototype.hexToRgb = function (hex) {
            if (!hex) {
                return [];
            }
            hex = hex.trim();
            if (hex.length !== 9) {
                hex = this.roundValue(hex);
            }
            var opacity = Number((parseInt(hex.slice(-2), 16) / 255).toFixed(2));
            hex = hex.slice(1, 7);
            var bigInt = parseInt(hex, 16);
            var h = [];
            h.push((bigInt >> 16) & 255);
            h.push((bigInt >> 8) & 255);
            h.push(bigInt & 255);
            h.push(opacity);
            return h;
        };
        Annotation.prototype.rgbToHsv = function (r, g, b, opacity) {
            r /= 255;
            g /= 255;
            b /= 255;
            var max = Math.max(r, g, b);
            var min = Math.min(r, g, b);
            var h;
            var v = max;
            var d = max - min;
            var s = max === 0 ? 0 : d / max;
            if (max === min) {
                h = 0;
            }
            else {
                switch (max) {
                    case r:
                        h = (g - b) / d + (g < b ? 6 : 0);
                        break;
                    case g:
                        h = (b - r) / d + 2;
                        break;
                    case b:
                        h = (r - g) / d + 4;
                        break;
                }
                h /= 6;
            }
            var hsv = [Math.round(h * 360), Math.round(s * 1000) / 10, Math.round(v * 1000) / 10];
            if (!ej2_base_1.isNullOrUndefined(opacity)) {
                hsv.push(opacity);
            }
            return hsv;
        };
        Annotation.prototype.hsvToRgb = function (h, s, v, opacity) {
            var r;
            var g;
            var b;
            s /= 100;
            v /= 100;
            if (s === 0) {
                r = g = b = v;
                return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), opacity];
            }
            h /= 60;
            var i = Math.floor(h);
            var f = h - i;
            var p = v * (1 - s);
            var q = v * (1 - s * f);
            var t = v * (1 - s * (1 - f));
            switch (i) {
                case 0:
                    r = v;
                    g = t;
                    b = p;
                    break;
                case 1:
                    r = q;
                    g = v;
                    b = p;
                    break;
                case 2:
                    r = p;
                    g = v;
                    b = t;
                    break;
                case 3:
                    r = p;
                    g = q;
                    b = v;
                    break;
                case 4:
                    r = t;
                    g = p;
                    b = v;
                    break;
                default:
                    r = v;
                    g = p;
                    b = q;
            }
            var rgb = [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
            if (!ej2_base_1.isNullOrUndefined(opacity)) {
                rgb.push(opacity);
            }
            return rgb;
        };
        Annotation.prototype.rgbToHex = function (rgb) {
            return rgb.length ? ('#' + this.hex(rgb[0]) + this.hex(rgb[1]) + this.hex(rgb[2]) +
                (!ej2_base_1.isNullOrUndefined(rgb[3]) ? (rgb[3] !== 0 ? (Math.round(rgb[3] * 255) + 0x10000).toString(16).slice(-2) : '00') : '')) : '';
        };
        Annotation.prototype.exportAnnotationsAsStream = function (dataFormat) {
            var _this = this;
            if (this.pdfViewer.annotationModule) {
                var isAnnotations = this.pdfViewer.viewerBase.updateExportItem();
                if (isAnnotations) {
                    return new Promise(function (resolve, reject) {
                        _this.pdfViewer.viewerBase.createRequestForExportAnnotations(true, dataFormat, true).then(function (value) {
                            resolve(value);
                        });
                    });
                }
            }
            return null;
        };
        Annotation.prototype.hex = function (x) {
            if (!ej2_base_1.isNullOrUndefined(x)) {
                return ('0' + x.toString(16)).slice(-2);
            }
            else {
                return '0';
            }
        };
        Annotation.prototype.cloneObject = function (obj) {
            return JSON.parse(JSON.stringify(obj));
        };
        Annotation.prototype.destroy = function () {
            var _this = this;
            var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + (this.pdfViewerBase.currentPageNumber - 1));
            if (pageDiv) {
                pageDiv.removeEventListener('mousedown', this.pdfViewer.annotationModule.stickyNotesAnnotationModule.drawIcons.bind(this));
            }
            var closeBtn = document.getElementById(this.pdfViewer.element.id + '_popup_close');
            if (closeBtn) {
                closeBtn.removeEventListener('click', this.saveClosePopupMenu.bind(this));
                closeBtn.removeEventListener('touchend', this.saveClosePopupMenu.bind(this));
            }
            if (this.popupElement) {
                this.popupElement.removeEventListener('mousedown', this.onPopupElementMoveStart.bind(this));
                this.popupElement.removeEventListener('mousemove', this.onPopupElementMove.bind(this));
                this.popupElement.removeEventListener('touchstart', this.onPopupElementMoveStart.bind(this));
                this.popupElement.removeEventListener('touchmove', this.onPopupElementMove.bind(this));
            }
            if (this.noteContentElement) {
                this.noteContentElement.removeEventListener('mousedown', function () {
                    _this.noteContentElement.focus();
                });
            }
            window.removeEventListener('mouseup', this.onPopupElementMoveEnd.bind(this));
            window.removeEventListener('touchend', this.onPopupElementMoveEnd.bind(this));
            this.destroyPropertiesWindow();
            if (this.textMarkupAnnotationModule) {
                this.textMarkupAnnotationModule.clear();
            }
            this.textMarkupAnnotationModule = null;
            this.redactionAnnotationModule = null;
            this.shapeAnnotationModule = null;
            this.measureAnnotationModule = null;
            this.stampAnnotationModule = null;
            this.freeTextAnnotationModule = null;
            this.inputElementModule = null;
            this.inkAnnotationModule = null;
            this.stickyNotesAnnotationModule = null;
            this.popupNote = null;
            this.popupNoteAuthor = null;
            this.popupNoteContent = null;
            this.popupElement = null;
            this.authorPopupElement = null;
            this.noteContentElement = null;
            this.modifiedDateElement = null;
            this.opacityIndicator = null;
            this.startArrowDropDown = null;
            this.endArrowDropDown = null;
            this.lineStyleDropDown = null;
            this.thicknessBox = null;
            this.leaderLengthBox = null;
            this.fillColorPicker = null;
            this.strokeColorPicker = null;
            this.fillDropDown = null;
            this.strokeDropDown = null;
            this.opacitySlider = null;
            this.propertiesDialog = null;
            this.currentAnnotPageNumber = null;
            this.clientX = null;
            this.clientY = null;
            this.isPopupMenuMoved = null;
            this.selectedLineStyle = null;
            this.selectedLineDashArray = null;
            this.isUndoRedoAction = null;
            this.isFreeTextFontsizeChanged = null;
            this.isUndoAction = null;
            this.annotationSelected = null;
            this.isAnnotDeletionApiCall = null;
            this.removedDocumentAnnotationCollection = null;
            this.nonRenderSelectedAnnotation = null;
            this.isShapeCopied = null;
            this.actionCollection = null;
            this.redoCollection = null;
            this.isPopupNoteVisible = null;
            this.undoCommentsElement = null;
            this.redoCommentsElement = null;
            this.selectAnnotationId = null;
            this.isAnnotationSelected = null;
            this.annotationPageIndex = null;
            this.previousIndex = null;
            this.annotationType = null;
            this.overlappedAnnotations = null;
            this.overlappedCollections = null;
            this.isFormFieldShape = null;
            this.removedAnnotationCollection = null;
            this.isEdited = null;
        };
        Annotation.prototype.getModuleName = function () {
            return 'Annotation';
        };
        Annotation.prototype.getVertexPointsXY = function (points) {
            var vertexPoints = [];
            for (var j = 0; j < points.length; j++) {
                vertexPoints[parseInt(j.toString(), 10)] = { X: points[parseInt(j.toString(), 10)].x, Y: points[parseInt(j.toString(), 10)].y };
            }
            return vertexPoints;
        };
        Annotation.prototype.addPageRedactions = function (pages) {
            if (pages.length > 0 && this.pdfViewerBase.clientSideRendering) {
                var updatedPageCollection = [];
                for (var i = 0; i < pages.length; i++) {
                    updatedPageCollection.push(pages[i] - 1);
                }
                this.pdfViewerBase.redactPages(updatedPageCollection);
                updatedPageCollection = [];
            }
        };
        Annotation.prototype.redact = function () {
            if (this.pdfViewerBase.clientSideRendering) {
                this.handleRedact();
            }
        };
        Annotation.prototype.handleRedact = function (args) {
            var _this = this;
            var pdfBlob;
            this.pdfViewerBase.isDocumentModified = true;
            this.pdfViewerBase.canRedact = true;
            this.pdfViewer.saveAsBlob().then(function (blob) {
                pdfBlob = blob;
                _this.pdfViewerBase.blobToBase64(pdfBlob).then(function (base64) {
                    if (!ej2_base_1.isNullOrUndefined(base64) && base64 !== '') {
                        var fileName = _this.pdfViewer.fileName;
                        var downloadFileName = _this.pdfViewer.downloadFileName;
                        var jsonDocumentId = _this.pdfViewerBase.jsonDocumentId;
                        _this.pdfViewer.loadDocInternally(base64, null, false);
                        _this.pdfViewerBase.updateDocumentEditedProperty(true);
                        _this.pdfViewer.fileName = fileName;
                        if (!ej2_base_1.isNullOrUndefined(downloadFileName)) {
                            _this.pdfViewer.downloadFileName = downloadFileName;
                        }
                        else {
                            _this.pdfViewer.downloadFileName = fileName;
                        }
                        _this.pdfViewerBase.jsonDocumentId = jsonDocumentId;
                    }
                    _this.pdfViewerBase.canRedact = false;
                });
                if (_this.pdfViewer.toolbarModule && _this.pdfViewer.toolbarModule.redactionToolbarModule) {
                    _this.pdfViewer.toolbarModule.redactionToolbarModule.showHideRedactIcon(false);
                    _this.pdfViewer.toolbarModule.redactionToolbarModule.showHideDeleteIcon(false);
                }
            });
            if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.redactionToolbarModule &&
                this.pdfViewer.toolbarModule.redactionToolbarModule.redactDialogObj) {
                this.pdfViewer.toolbarModule.redactionToolbarModule.redactDialogObj.hide();
            }
        };
        Annotation.prototype.addAnnotation = function (annotationType, options, dynamicStampItem, signStampItem, standardBusinessStampItem) {
            var offset = { x: 1, y: 1 };
            var pageNumber = 0;
            if (options) {
                if (options.pageNumber && options.pageNumber > 0) {
                    pageNumber = options.pageNumber ? options.pageNumber - 1 : 0;
                }
            }
            var annotationObject = null;
            var pdfAnnotation = [];
            this.pdfViewer.annotation.triggerAnnotationUnselectEvent();
            if (annotationType === 'FreeText') {
                pdfAnnotation[parseInt(pageNumber.toString(), 10)] =
                    this.pdfViewer.annotation.freeTextAnnotationModule.updateAddAnnotationDetails(options, offset);
                this.pdfViewer.annotation.freeTextAnnotationModule.isAddAnnotationProgramatically = true;
            }
            else if (annotationType === 'StickyNotes') {
                pdfAnnotation[parseInt(pageNumber.toString(), 10)] =
                    this.pdfViewer.annotation.stickyNotesAnnotationModule.updateAddAnnotationDetails(options, offset);
                this.pdfViewer.annotation.stickyNotesAnnotationModule.isAddAnnotationProgramatically = true;
            }
            else if (annotationType === 'Highlight' || annotationType === 'Underline' || annotationType === 'Strikethrough' || annotationType === 'Squiggly') {
                if (annotationType === 'Highlight') {
                    annotationObject = options;
                }
                else if (annotationType === 'Underline') {
                    annotationObject = options;
                }
                else if (annotationType === 'Strikethrough') {
                    annotationObject = options;
                }
                else if (annotationType === 'Squiggly') {
                    annotationObject = options;
                }
                pdfAnnotation[parseInt(pageNumber.toString(), 10)] =
                    this.pdfViewer.annotation.textMarkupAnnotationModule.updateAddAnnotationDetails(annotationType, annotationObject);
                this.pdfViewer.annotation.textMarkupAnnotationModule.isAddAnnotationProgramatically = true;
            }
            else if (annotationType === 'Line' || annotationType === 'Arrow' || annotationType === 'Rectangle' || annotationType === 'Circle' || annotationType === 'Polygon') {
                if (annotationType === 'Line') {
                    annotationObject = options;
                }
                else if (annotationType === 'Arrow') {
                    annotationObject = options;
                }
                else if (annotationType === 'Rectangle') {
                    annotationObject = options;
                }
                else if (annotationType === 'Circle') {
                    annotationObject = options;
                }
                else if (annotationType === 'Polygon') {
                    annotationObject = options;
                }
                pdfAnnotation[parseInt(pageNumber.toString(), 10)] =
                    this.pdfViewer.annotation.shapeAnnotationModule.updateAddAnnotationDetails(annotationType, annotationObject, offset);
                this.pdfViewerBase.updateFreeTextProperties(pdfAnnotation[parseInt(pageNumber.toString(), 10)]);
                this.pdfViewer.annotation.shapeAnnotationModule.isAddAnnotationProgramatically = true;
            }
            else if (annotationType === 'Distance' || annotationType === 'Perimeter' || annotationType === 'Area' || annotationType === 'Radius' || annotationType === 'Volume') {
                if (annotationType === 'Distance') {
                    annotationObject = options;
                }
                else if (annotationType === 'Perimeter') {
                    annotationObject = options;
                }
                else if (annotationType === 'Area') {
                    annotationObject = options;
                }
                else if (annotationType === 'Radius') {
                    annotationObject = options;
                }
                else if (annotationType === 'Volume') {
                    annotationObject = options;
                }
                pdfAnnotation[parseInt(pageNumber.toString(), 10)] =
                    this.pdfViewer.annotation.measureAnnotationModule.updateAddAnnotationDetails(annotationType, annotationObject, offset);
                this.pdfViewer.annotation.measureAnnotationModule.isAddAnnotationProgramatically = true;
            }
            else if (annotationType === 'Stamp') {
                if (options && options.customStamps) {
                    pdfAnnotation[parseInt(pageNumber.toString(), 10)] =
                        this.pdfViewer.annotation.stampAnnotationModule.updateAddAnnotationDetails(options, offset, pageNumber, dynamicStampItem, signStampItem, standardBusinessStampItem);
                }
                else {
                    pdfAnnotation[parseInt(pageNumber.toString(), 10)] = this.pdfViewer.annotation.
                        stampAnnotationModule.updateAddAnnotationDetails(options, offset, pageNumber, dynamicStampItem, signStampItem, standardBusinessStampItem);
                }
                this.pdfViewer.annotation.stampAnnotationModule.isAddAnnotationProgramatically = true;
            }
            else if (annotationType === 'Ink') {
                pdfAnnotation[parseInt(pageNumber.toString(), 10)] = this.pdfViewer.annotation.inkAnnotationModule.
                    updateAddAnnotationDetails(options, offset, pageNumber);
                this.pdfViewer.annotation.inkAnnotationModule.isAddAnnotationProgramatically = true;
            }
            else if (annotationType === 'Redaction') {
                if (this.pdfViewerBase.clientSideRendering) {
                    pdfAnnotation[pageNumber] = this.pdfViewer.annotation.redactionAnnotationModule.updateAddAnnotationDetails(options, offset);
                    this.pdfViewer.annotation.redactionAnnotationModule.isAddAnnotationProgramatically = true;
                }
            }
            else if (annotationType === 'HandWrittenSignature' || annotationType === 'Initial') {
                pdfAnnotation[parseInt(pageNumber.toString(), 10)] = this.pdfViewerBase.signatureModule.
                    updateSignatureDetails(options, offset, pageNumber);
                this.pdfViewerBase.signatureModule.isAddAnnotationProgramatically = true;
            }
            var pdf = { pdfAnnotation: pdfAnnotation };
            this.pdfViewerBase.isAddAnnotation = true;
            this.pdfViewerBase.importAnnotations(pdf);
            this.pdfViewerBase.isAddAnnotation = false;
        };
        Annotation.prototype.triggerAnnotationAddEvent = function (annotation) {
            var annotationType = annotation.shapeAnnotationType;
            if (annotationType === 'Stamp' || annotationType === 'Image' || annotationType === 'Path' || annotationType === 'FreeText' || annotationType === 'StickyNotes' || annotationType === 'Ink') {
                var settings = void 0;
                if (annotationType === 'FreeText') {
                    settings = {
                        opacity: annotation.opacity, borderColor: annotation.strokeColor, borderWidth: annotation.thickness,
                        author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate,
                        fillColor: annotation.fillColor, fontSize: annotation.fontSize, width: annotation.bounds.width,
                        height: annotation.bounds.height, fontColor: annotation.fontColor, fontFamily: annotation.fontFamily,
                        defaultText: annotation.dynamicText, fontStyle: annotation.font, textAlignment: annotation.textAlign
                    };
                }
                else {
                    settings = {
                        opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor,
                        thickness: annotation.thickness, author: annotation.author, subject: annotation.subject,
                        modifiedDate: annotation.modifiedDate, data: annotation.data
                    };
                }
                var bounds = { left: annotation.bounds.x, top: annotation.bounds.y, width: annotation.bounds.width,
                    height: annotation.bounds.height };
                var type = this.getAnnotationType(annotation.shapeAnnotationType, annotation.measureType);
                this.pdfViewer.fireAnnotationAdd(annotation.pageIndex, annotation.annotName, type, bounds, settings);
            }
            else if (annotationType === 'SignatureText' || annotationType === 'SignatureImage' || annotationType === 'HandWrittenSignature') {
                var bounds = { left: annotation.bounds.x, top: annotation.bounds.y, width: annotation.bounds.width,
                    height: annotation.bounds.height };
                this.pdfViewer.fireSignatureAdd(annotation.pageIndex, annotation.signatureName, annotation.shapeAnnotationType, bounds, annotation.opacity, annotation.strokeColor, annotation.thickness, annotation.data);
            }
            else {
                var setting = {
                    opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor,
                    thickness: annotation.thickness, author: annotation.author, subject: annotation.subject,
                    modifiedDate: annotation.modifiedDate
                };
                var bounds = { left: annotation.bounds.x, top: annotation.bounds.y, width: annotation.bounds.width,
                    height: annotation.bounds.height };
                var type = this.getAnnotationType(annotation.shapeAnnotationType, annotation.measureType);
                if (type === 'Line' || type === 'Arrow' || type === 'Distance' || type === 'Perimeter') {
                    setting.lineHeadStartStyle = this.getArrowString(annotation.sourceDecoraterShapes);
                    setting.lineHeadEndStyle = this.getArrowString(annotation.taregetDecoraterShapes);
                    setting.borderDashArray = annotation.borderDashArray;
                }
                var labelSettings = void 0;
                if (this.pdfViewer.enableShapeLabel) {
                    labelSettings = {
                        fontColor: annotation.fontColor, fontSize: annotation.fontSize, fontFamily: annotation.fontFamily,
                        opacity: annotation.labelOpacity, labelContent: annotation.labelContent, fillColor: annotation.labelFillColor
                    };
                    this.pdfViewer.fireAnnotationAdd(annotation.pageIndex, annotation.annotName, type, bounds, setting, null, null, null, labelSettings);
                }
                else {
                    this.pdfViewer.fireAnnotationAdd(annotation.pageIndex, annotation.annotName, type, bounds, setting);
                }
            }
        };
        Annotation.prototype.triggerAnnotationUnselectEvent = function () {
            if (this.pdfViewer.selectedItems.annotations && this.pdfViewer.selectedItems.annotations[0]) {
                var annotation = this.pdfViewer.selectedItems.annotations[0];
                if (annotation.shapeAnnotationType !== 'HandWrittenSignature' && annotation.shapeAnnotationType !== 'SignatureText' && annotation.shapeAnnotationType !== 'SignatureImage' && annotation.shapeAnnotationType !== 'Path') {
                    this.pdfViewer.fireAnnotationUnSelect(annotation.annotName, annotation.pageIndex, annotation);
                    this.pdfViewer.clearSelection(annotation.pageIndex);
                }
            }
        };
        Annotation.prototype.triggerSignatureUnselectEvent = function () {
            if (this.pdfViewer.selectedItems.annotations && this.pdfViewer.selectedItems.annotations[0]) {
                var selectorModel = this.pdfViewer.selectedItems;
                if (selectorModel.annotations.length) {
                    for (var j = 0; j < selectorModel.annotations.length; j++) {
                        var node = selectorModel.annotations[parseInt(j.toString(), 10)];
                        this.pdfViewer.annotationModule.unselectSignature(node.signatureName, node.pageIndex, node);
                        this.pdfViewer.clearSelection(node.pageIndex);
                    }
                }
            }
        };
        Annotation.prototype.updateFontFamilyRenderSize = function (currentAnnotation, currentValue) {
            var freeTextAnnotation = this.freeTextAnnotationModule;
            freeTextAnnotation.inputBoxElement.style.fontFamily = currentValue;
            freeTextAnnotation.autoFitFreeText();
            var zoomFactor = this.pdfViewerBase.getZoomFactor();
            var padding = parseFloat(freeTextAnnotation.inputBoxElement.style.paddingLeft);
            var inputEleHeight = currentAnnotation.bounds.height * zoomFactor;
            var characterLength = 8;
            var inputEleWidth = parseFloat(freeTextAnnotation.inputBoxElement.style.width) - characterLength;
            inputEleWidth = ((inputEleWidth) / zoomFactor);
            inputEleHeight = ((inputEleHeight) / zoomFactor);
            var heightDiff = (inputEleHeight - currentAnnotation.bounds.height);
            var y = undefined;
            if (heightDiff > 0) {
                y = currentAnnotation.wrapper.offsetY + (heightDiff / 2);
                y = y > 0 ? y : undefined;
            }
            else {
                heightDiff = Math.abs(heightDiff);
                y = currentAnnotation.wrapper.offsetY - (heightDiff / 2);
                y = y > 0 ? y : undefined;
            }
            var widthDiff = (inputEleWidth - currentAnnotation.bounds.width);
            var x = undefined;
            if (widthDiff > 0) {
                x = currentAnnotation.wrapper.offsetX + (widthDiff / 2);
                x = x > 0 ? x : undefined;
            }
            else {
                widthDiff = Math.abs(widthDiff);
                x = currentAnnotation.wrapper.offsetX - (widthDiff / 2);
            }
            currentAnnotation.bounds.width = inputEleWidth;
            currentAnnotation.bounds.height = inputEleHeight;
            this.pdfViewer.nodePropertyChange(currentAnnotation, { fontFamily: currentValue,
                bounds: { width: currentAnnotation.bounds.width, height: currentAnnotation.bounds.height, y: y, x: x } });
            this.pdfViewer.renderSelector(currentAnnotation.pageIndex, this.pdfViewer.annotationSelectorSettings);
            this.modifyInCollections(currentAnnotation, 'bounds');
        };
        Annotation.prototype.calculateFontSize = function (text, rectangle, isDynamic) {
            var canvasElement = document.createElement('canvas');
            var context = canvasElement.getContext('2d');
            var fontSize = 0;
            var contextWidth = 0;
            var rectangleWidth = rectangle.width;
            if (isDynamic === true) {
                if (text === 'REVISED' || text === 'REVIEWED' || text === 'RECEIVED' || text === 'APPROVED') {
                    rectangleWidth = rectangleWidth / 2;
                }
                else if (text === 'CONFIDENTIAL' || text === 'NOT APPROVED') {
                    rectangleWidth = rectangleWidth * (3 / 4);
                }
            }
            while (rectangleWidth > contextWidth) {
                context.font = fontSize + 'px' + ' ' + 'Helvetica';
                contextWidth = context.measureText(text).width;
                fontSize += 0.1;
            }
            return fontSize;
        };
        return Annotation;
    }());
    exports.Annotation = Annotation;
    var AnnotationBaseSettings = (function () {
        function AnnotationBaseSettings() {
        }
        return AnnotationBaseSettings;
    }());
    exports.AnnotationBaseSettings = AnnotationBaseSettings;
    var AnnotBoundsRect = (function () {
        function AnnotBoundsRect() {
        }
        return AnnotBoundsRect;
    }());
    exports.AnnotBoundsRect = AnnotBoundsRect;
    var AnnotBoundsBase = (function () {
        function AnnotBoundsBase() {
        }
        return AnnotBoundsBase;
    }());
    exports.AnnotBoundsBase = AnnotBoundsBase;
    var AnnotRectBase = (function () {
        function AnnotRectBase() {
        }
        return AnnotRectBase;
    }());
    exports.AnnotRectBase = AnnotRectBase;
    var AnnotFontBase = (function () {
        function AnnotFontBase() {
        }
        return AnnotFontBase;
    }());
    exports.AnnotFontBase = AnnotFontBase;
    var IBounds = (function () {
        function IBounds() {
        }
        return IBounds;
    }());
    exports.IBounds = IBounds;
    var AnnotationsInternal = (function () {
        function AnnotationsInternal() {
        }
        return AnnotationsInternal;
    }());
    exports.AnnotationsInternal = AnnotationsInternal;
    var AnnotationsBase = (function () {
        function AnnotationsBase() {
        }
        return AnnotationsBase;
    }());
    exports.AnnotationsBase = AnnotationsBase;
});